CN1697425A - Method for reading data and relevant computer system - Google Patents

Method for reading data and relevant computer system Download PDF

Info

Publication number
CN1697425A
CN1697425A CNA2005100779331A CN200510077933A CN1697425A CN 1697425 A CN1697425 A CN 1697425A CN A2005100779331 A CNA2005100779331 A CN A2005100779331A CN 200510077933 A CN200510077933 A CN 200510077933A CN 1697425 A CN1697425 A CN 1697425A
Authority
CN
China
Prior art keywords
data
mentioned
length
bus
reading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2005100779331A
Other languages
Chinese (zh)
Inventor
王惟林
李瑞钊
苏耀群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Priority to CNA2005100779331A priority Critical patent/CN1697425A/en
Publication of CN1697425A publication Critical patent/CN1697425A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The method is applicable to a computer system accorded with PCI - Express protocol. The computer system includes a bus coupled to a terminal device. The method for reading data includes following steps: based on a reading request from the said terminal device, obtaining a first data; then, in a transfer waiting cycle, fetching out data accorded with length of first data from first data, packing data accorded with length of first data to a data packet in transmission layer; length of data packet in transmission layer is changed to length of first data from a prearranged length, where the length of first data is larger than the prearranged length; the transfer waiting cycle is happened when bus is involved, sequence of feedback data generated in disorder, or data packet of other virtual channel transferred on the bus at present.

Description

Method for reading data and relevant computer system
Technical field
The present invention relates to a kind of method for reading data, particularly a kind ofly avoid too much packet header to improve the method for reading data of efficiency of transmission.
Background technology
In general, in a computer system or between the computer system, can transmit data, in some system, data acquisition system be got up to be used as packet transmit by different modes.For example, peripheral assembly interconnect (Peripheral Component Interconnect Express, PCI Express) is exactly a kind of agreement that data packetization can be transmitted again, but no matter use which kind of agreement, the transmission of packet all needs added burden (overhead) to a certain degree.
For instance, the packets need header (header) of some kind is put down in writing the information relevant with the claimer of content and/or packet.With regard to PCI Express, a reading requirement packet from PCI Express end-point devices is divided into many processing requirements (8QW or 4QW alignmenttransactions), detects (shoop) CPU and/or by reading of data in the system storage (DRAM).By each data segments D1~DN that CPU or system storage returned, the capital is packaged into the transport layer data bag PKT1~PKTN of a passback, again via linking layer (data link layer) and physical layer (physical layer), be sent to PCI Expres s end-point devices, as shown in fig. 1.Yet this kind method will produce too much packet header H1~HN, and the usefulness that makes data transmit reduces, and the delay (Non-Posted round-trip Latency) that packet returns increases.
Summary of the invention
In view of this, primary and foremost purpose of the present invention is the packet header of avoiding too much, to improve efficiency of transmission.
For achieving the above object, the invention provides a kind of method for reading data, be applied to a computer system of accord with PCI-Express agreement, computer system has a bus and is coupled to an end-point devices (endpoint), this method comprises according to the reading requirement from end-point devices, obtains one first data.Then, when one transmits latent period, in first data, taking-up meets the data of one first data length, packing meets in data to the transport layer data bag of first data length again, and the length of transport layer data bag is revised as first data length by a preset length, wherein first data length is greater than preset length, and when when transmitting data that latent period system betides bus when occupied, passback and producing entanglement in proper order or at present positive transmission belongs to the packet of other tunnel on the bus.
According to above-mentioned purpose, the present invention also provides a kind of machine readable to get storage medium, in order to store a computer program, this computer program is in order to carry out a method for reading data, be applied to a computer system of accord with PCI-Express agreement, computer system has a bus and is coupled to an end-point devices, and its method for reading data comprises the following steps, comprise according to a reading requirement, obtain one first data from above-mentioned end-point devices.Then, when one transmits latent period, in first data, taking-up meets the data of one first data length, packing meets in data to the transport layer data bag of first data length again, and change the length of transport layer data bag into first data length by a preset length, wherein first data length is greater than preset length, and when when transmitting data that latent period betides bus when occupied, passback and producing entanglement in proper order or at present positive transmission belongs to the packet of other tunnel on the bus.
According to above-mentioned purpose, the present invention also provides a kind of computer system, and accord with PCI-Express agreement, this computer system comprise a PCI-Express bus; One end-point devices couples the PCI-Express bus; One bridge-jointing unit, be coupled to end-point devices by the PCI-Express bus, in order to the reading requirement of basis from end-point devices, obtain one first data, and when one transmits latent period, in first data, obtain data that meet one first data length, packing meets in data to the transport layer data bag of first data length again, and change the length of transport layer data bag into first data length by a preset length, again the transport layer data bag is sent to end-point devices, wherein first data length is greater than preset length, and transmits latent period system and betide the PCI-Express bus when occupied, when positive transmission belongs to the packet of other tunnel when the data of passback produce entanglement (out of order) in proper order or on the present bus.
For above and other objects of the present invention, feature and advantage can be become apparent, a preferred embodiment cited below particularly, and be described with reference to the accompanying drawings as follows.
Description of drawings
Fig. 1 one known transmission layer data bag.
Fig. 2 A is an embodiment of computer system of the present invention.
Fig. 2 B is the another embodiment of computer system of the present invention.
Fig. 2 C is an embodiment again of computer system of the present invention.
Fig. 3 is a flow chart of method for reading data of the present invention.
Fig. 4 is a transport layer data bag of the present invention.
Fig. 5 represents the computer readable storage media schematic diagram according to the method for reading data of the embodiment of the invention.
The reference numeral explanation
PKT0~PKTN, PKT1a, PKT1b: transport layer data bag;
H1~HN, HD1, HD1a, HD1b: header;
D1~DN, D10~D1n, D20~D2n: data segments;
200A~200C: computer system;
210: CPU;
220: bridge-jointing unit;
230: system storage;
241,243: end-point devices;
250:PCI Express bus;
261~263: bus;
270: chipset;
Q1, Q2: formation;
500: storage medium;
520: computer program.
Embodiment
Fig. 2 A is an embodiment of computer system of the present invention.As shown in the figure, computer system 200A comprises a CPU (CPU) 210, a bridge-jointing unit 220, a system storage 230, two end-point devices (endpoint) 241 and 243 and one PCI Express bus 250.CPU 210 is coupled to bridge-jointing unit 220 by a bus 261, and system storage 230 is coupled to bridge-jointing unit 220 by a bus 263.
For instance, bridge-jointing unit 220 can be the root device (root device) of a PCI Express, and end- point devices 241 and 243 can be PCI Express peripheral unit, for example contains the I/O device of Ethernet (Gigabit Ethernet) or graphics acceleration card (Accelerated Graphics Port).In present embodiment, bridge-jointing unit 220 is a north bridge chipset, and system storage 230 can be a dynamic random access memory (DRAM), but non-in order to limit the present invention.
Figure 3 shows that the flow chart of steps of method for reading data of the present invention.At first, receive transport layer data bag (transaction layer packet when bridge-jointing unit 220 from end- point devices 241 or 243; TLP) time, then the transport layer data bag that receives is put into one and required formation (TLP request queue) Q1, as step S300.For instance, bridge-jointing unit 220 transport layer data bag that end- point devices 241 or 243 is sent is put into formation Q1 in regular turn; In present embodiment, packet TLP1 is sent by end-point devices 241, and packet TLP1 contains a reading requirement.
Then, in step S302, bridge-jointing unit 220 proposes (pop) transport layer data bag, for example packet TLP1 by requiring among the formation Q1.So bridge-jointing unit 220 can be according to the reading requirement among the packet TLP1, produce many processing requirements (8QW or 4QW alignment transactions) and detect (snoop) central processing unit 210 and/or read a system storage 230 obtaining the desired data of a TLP1, and the data that obtain are put into a formation (TLP tracking queue) Q2.For instance, if packet TLP1 requires to read the data of one section 16QW data length, 220 of bridge-jointing units produce one first processing requirements in order to obtaining the data of 8QW data length, and one second processing requirements reach the data of all the other 8QW data lengths.Or say that bridge-jointing unit 220 can produce four processing requirements, respectively in order to obtain the data of 4QW data length.
In general, each processing requirements all can go to detect (snoop) CPU 210, if CPU 210 stores required data segments, then directly obtains required data segments, no longer removes reading system memory 230; If CPU 210 does not have required data segments, then again by obtaining required data segments in the system storage 230.
For example, bridge-jointing unit 220 is according to the reading requirement among the packet TLP1, produce many processing requirements, obtain corresponding data segments D10~D1n and put into formation (TLP tracking queue) Q2 by central processing unit 210 or system storage 230, and the desired data of TLP1 system is made up of data segments D10~D1n.Wherein each data segments D10~D1n has a preset length, for example the data length of 8QW (quad word).In addition, bridge-jointing unit 220 can be again according to the reading requirement among the packet TLP2, is obtained by the data segments (data of D20~D2n) formed, and put into formation Q2 by central processing unit 210 or system storage 230.Similarly, bridge-jointing unit 220 can be obtained the required data of being made up of multiple data sector by central processing unit 210 or system storage 230, and put into formation Q2 again according to other packet TLP3~TLPn.
Moreover, in step S304, if bridge-jointing unit 210 produces the passback packet to end-point devices 241 according to data segments D10 desire, and PCI Express bus is when idle, 210 of bridge-jointing units are directly with data slot D10, be packaged into a transport layer data bag PKT0 (as shown in Figure 4) of accord with PCI Express agreement, and be sent to end-point devices 241.In general, transport layer data bag PKT0 also includes a header HD1 and numbers (requestor ID) in order to data length (length), message pattern (message type), data demand person in the record packet except real data D10 ... etc. information.Because transport layer data bag PKT0 only comprises data segment D10, so the data length of being put down in writing among the header HD1 is exactly the data length of data segments D10, i.e. preset length.
Moreover, among the step S306, if bridge-jointing unit 210 is according to data segments D10, desire in a transmission latent period, when producing the passback packet to end-point devices 241, bridge-jointing unit 210 is by among first data D10~D1n, taking-up meets the data of one first data length, packing meets in data to the transport layer data bag of first data length again, and length of data package is revised as first data length by a preset length, and this transport layer data bag is sent to end-point devices 241.In general, transmit latent period and betide bus 250 by downlink data packet (downstream TLP) or linking layer packet (data linklayer package; When DLLP) taking, when producing entanglement in proper order or the packet that is positioned at bus 250 at present when belonging to other pseudo channel (different) with channel under first data by the data of CPU 210 passback, for example first data belong to one first pseudo channel, and the packet that present bus 250 is transmitting does not belong to first tunnel.
For instance, bridge-jointing unit 210 is packaged to data segments D10~D12 among the one transport layer data bag PKT1a (as shown in Figure 4), and the data length that the header HDa of transport layer data bag PKT1a is put down in writing is modified as the total length of data segments D10~D12, then packet is passed PKT1a and be sent to end-point devices 241.Or say that bridge-jointing unit 210 is packaged to data segments D10~D14 among the one transport layer data bag PKT1b and the data length that the header HDb of transport layer data bag PKT1b is put down in writing is changed into the total length of data segments D10~D14.
That is to say, whether bridge-jointing unit 210 bases transmit latent period in the present invention, repeating step S304 and S306, data segments D10 that will be obtained~D1n according to same reading requirement, be packaged into many transport layer datas bag PKT0, PKT1a or PKT1b, and these packets are sent to end-point devices 241.
Be noted that, data length system among transport layer data bag PKT1a or the transport layer data bag PKT1b is greater than preset length (being the data length of transport layer data bag PKT0), but the data volume among transport layer data bag PKT1a or the transport layer data bag PKT1b can not be greater than the maximum load capacity (Maximum Payload Size) of PCI-Express agreement.
In present embodiment, bridge-jointing unit 210 is with 3 data sections or 5 data sections, be packaged among transport layer data bag PKT1a or the transport layer data bag PKT1b, but be not in order to limit the present invention, under the situation of the maximum load capacity that is no more than PCI Express agreement, transport layer data bag PKT1a or transport layer data bag PKT1b can comprise the more data section.
In the known technology,, all can be packaged into a transport layer data bag with header by each data segments that CPU or system storage (DRAM) are returned.And in method for reading data of the present invention, several data segments can be packed in the packet, and use same header (header), therefore can avoid too much packet header, to improve the efficiency of transmission of bus.
Fig. 2 B is another embodiment according to computer system of the present invention.Computer system 200B shown in Fig. 2 B is similar to the computer system 200A shown in Fig. 2 A, is not bridge-jointing unit 220 except system storage 230 is coupled to CPU 210 by bus 263.
The also practicable aforesaid method for reading data of computer system 200B shown in Fig. 2 B, be bridge-jointing unit 210 in bus 250 by downlink data packet (downstream TLP) or linking layer packet (DLLP) when taking, when producing mistake in proper order or when being positioned at other tunnel at present (different) with channel under first data by the data of CPU 210 passbacks, data segments that will be obtained according to same reading requirement, be packaged into the transport layer data bag of many different sizes, and these packets are sent to same end-point devices, be not repeated in this.
Fig. 2 C is the another embodiment of computer system of the present invention.Computer system 200C shown in Fig. 2 C is similar to the computer system 200A shown in Fig. 2 A.Wherein CPU 210 is coupled to chipset 270 by bus 261, north bridge chipset for example, and system storage 230 is coupled to chipset 270 by bus 262, and bridge-jointing unit 220 is coupled to chipset 270 by bus 263.
In this embodiment, bridge-jointing unit 220 is a PCI Express bridger (PCI Expressswitch).Similarly, the also practicable aforesaid method for reading data of computer system 200C shown in Fig. 2 C, be bridge-jointing unit 220 in bus 250 by downlink data packet (downstream TLP) or linking layer packet (DLLP) when taking, when producing mistake in proper order or when being positioned at other tunnel at present (different) with channel under first data by the data of CPU 210 passbacks, data segments that will be obtained according to same reading requirement, be packaged into the transport layer data bag of many different sizes, and these packets are sent to same end-point devices, be not repeated in this.
Fig. 5 represents the computer readable storage media schematic diagram according to the method for reading data of the embodiment of the invention.This storage medium 500 is in order to store a computer program 520, in order to realize the aforementioned data read method.
Therefore,, can solve the shortcoming that packet transmits, in order to reduce the header number of packet, the more effectively utilization rate of improving data transmission efficiency and bus by method for reading data provided by the present invention.
Though the present invention discloses as above with preferred embodiment; right its is not in order to limit the present invention; those skilled in the art can do some changes and retouching under the premise without departing from the spirit and scope of the present invention, so protection scope of the present invention is as the criterion with claim of the present invention.

Claims (14)

1. method for reading data is applied to a computer system of accord with PCI-Express agreement, and aforementioned calculation machine system has a bus and is coupled to an end-point devices, and its method for reading data comprises the following steps, comprising:
According to a reading requirement, obtain one first data from above-mentioned end-point devices;
When one transmits latent period, in above-mentioned first data, taking-up meets the data of one first data length, packing meets in above-mentioned data to the transport layer data bag of above-mentioned first data length again, and change the length of above-mentioned transport layer data bag into above-mentioned first data length by a preset length, wherein above-mentioned first data length is greater than above-mentioned preset length.
2. method for reading data as claimed in claim 1, in the wherein above-mentioned method for reading data, the above-mentioned transport layer data bag that contains above-mentioned first data transmits by one first tunnel of above-mentioned bus, and above-mentioned transmission latent period is that the data that betide above-mentioned bus when occupied, passback are when producing entanglement in proper order or the packet that is positioned at above-mentioned bus at present when not belonging to above-mentioned first tunnel.
3. method for reading data as claimed in claim 1, wherein above-mentioned method for reading data also comprises:
According to a reading requirement, produce many processing requirements and detect a central processing unit and/or read a system storage, to obtain above-mentioned first data from above-mentioned end-point devices; And
Above-mentioned first data are put into a formation.
4. method for reading data as claimed in claim 1, the wherein above-mentioned data that meet first data length are not more than the maximum load capacity of PCI-Express agreement.
5. method for reading data as claimed in claim 1, wherein above-mentioned method for reading data also comprise above-mentioned transport layer data bag are sent to above-mentioned end-point devices.
6. method for reading data as claimed in claim 1, wherein above-mentioned method for reading data also is included in above-mentioned bus when unoccupied, in above-mentioned first data, obtain a data slot that meets above-mentioned preset length, be packaged into a transport layer data bag and be sent to above-mentioned end-point devices.
7. method for reading data as claimed in claim 6, the above-mentioned data that wherein meet above-mentioned first data length are made up of the multidata fragment that meets above-mentioned preset length.
8. computer system, accord with PCI-Express agreement comprises:
One PCI-Express bus;
One end-point devices couples above-mentioned PCI-Express bus;
One bridge-jointing unit, be coupled to above-mentioned end-point devices by above-mentioned PCI-Express bus, and according to a reading requirement from above-mentioned end-point devices, obtain one first data, and when one transmits latent period, in above-mentioned first data, obtain data that meet one first data length, pack again in above-mentioned data to the transport layer data bag that meets first data length, and change the length of above-mentioned transport layer data bag into above-mentioned first data length by a preset length, again above-mentioned transport layer data bag is sent to above-mentioned end-point devices, wherein above-mentioned first data length is greater than preset length.
9. computer system as claimed in claim 8, the above-mentioned transport layer data bag that wherein contains above-mentioned first data transmits by one first tunnel of above-mentioned bus, and above-mentioned transmission latent period betides above-mentioned PCI-Express bus when occupied, when the data that returned produce entanglement in proper order or the packet that is positioned at above-mentioned bus at present when not belonging to above-mentioned first tunnel.
10. computer system as claimed in claim 9, wherein above-mentioned bridge-jointing unit is according to the reading requirement from above-mentioned end-point devices, produce many processing requirements and detect a central processing unit and/or read a system storage obtaining above-mentioned first data, and above-mentioned first data are put into a formation.
11. computer system as claimed in claim 9, the wherein above-mentioned data that meet first data length are not more than the maximum load capacity of PCI-Express agreement.
12. computer system as claimed in claim 9, wherein above-mentioned bridge-jointing unit is also when above-mentioned bus is unoccupied, in above-mentioned first data, obtain a data slot that meets above-mentioned preset length, be packaged into a transport layer data bag and be sent to above-mentioned end-point devices.
13. computer system as claimed in claim 9, the wherein above-mentioned data that meet above-mentioned data length are made up of the multidata fragment that meets above-mentioned preset length.
14. a machine readable is got storage medium, in order to store a computer program, this computer program is in order to carry out as the described method for reading data of claim 1-7.
CNA2005100779331A 2005-06-15 2005-06-15 Method for reading data and relevant computer system Pending CN1697425A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2005100779331A CN1697425A (en) 2005-06-15 2005-06-15 Method for reading data and relevant computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2005100779331A CN1697425A (en) 2005-06-15 2005-06-15 Method for reading data and relevant computer system

Publications (1)

Publication Number Publication Date
CN1697425A true CN1697425A (en) 2005-11-16

Family

ID=35349957

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005100779331A Pending CN1697425A (en) 2005-06-15 2005-06-15 Method for reading data and relevant computer system

Country Status (1)

Country Link
CN (1) CN1697425A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635662B (en) * 2008-08-14 2012-06-27 威盛电子股份有限公司 High-speed peripheral component interconnect transmitter capable of selecting transmission priority and control method
CN103514125A (en) * 2012-06-25 2014-01-15 宏碁股份有限公司 Main control electronic device and main control end operating method
WO2015090088A1 (en) * 2013-12-20 2015-06-25 华为技术有限公司 Data transmission method, core forwarding device and end point forwarding device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635662B (en) * 2008-08-14 2012-06-27 威盛电子股份有限公司 High-speed peripheral component interconnect transmitter capable of selecting transmission priority and control method
CN103514125A (en) * 2012-06-25 2014-01-15 宏碁股份有限公司 Main control electronic device and main control end operating method
CN103514125B (en) * 2012-06-25 2016-06-08 宏碁股份有限公司 Main control electronic device and main control end operational approach
WO2015090088A1 (en) * 2013-12-20 2015-06-25 华为技术有限公司 Data transmission method, core forwarding device and end point forwarding device
US9967201B2 (en) 2013-12-20 2018-05-08 Huawei Technologies Co., Ltd. Data transmission method, core forwarding device, and endpoint forwarding device

Similar Documents

Publication Publication Date Title
US9792235B2 (en) Optimized credit return mechanism for packet sends
CN102195874B (en) The preextraction of packet
US20060095621A1 (en) Methods and apparatuses for generating a single request for block transactions over a communication fabric
US7277975B2 (en) Methods and apparatuses for decoupling a request from one or more solicited responses
CN108366111B (en) Data packet low-delay buffer device and method for switching equipment
WO2021209051A1 (en) On-chip cache device, on-chip cache read/write method, and computer readable medium
WO2003058470A1 (en) Communicating message request transaction types between agents in a computer system using multiple message groups
US20050144402A1 (en) Method, system, and program for managing virtual memory
US8402180B2 (en) Autonomous multi-packet transfer for universal serial bus
WO2021208734A1 (en) Data transmission method of serial bus and communication device
CN1685321A (en) Method and apparatus for reducing overhead in a data processing system with a cache
CN1295633C (en) Method for multiple CPU communication
CN1788261A (en) Usb host controller with memory for transfer descriptors
CN1697425A (en) Method for reading data and relevant computer system
CN101056316A (en) A method for the PCI Ethernet media to access the controller transmission data
US9137167B2 (en) Host ethernet adapter frame forwarding
CN1324499C (en) Method for handling unexpected completion packets and completion packets with a non-successful completion status
US20060271714A1 (en) Data retrieving methods
US20220358059A1 (en) Data access method for direct memory access (dma), and processor
GB2527409A (en) Metadata based data alignment in data storage systems
CN1407467A (en) Bus-bus quick transmission devices
Larsen et al. Platform io dma transaction acceleration
CN111694777B (en) DMA transmission method based on PCIe interface
CN1213546C (en) Method for increasing bandwidth utilization rate in data transmission process
CN102184150A (en) High-function circular buffer and cache system and control method thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication