[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Merging of two 32-bits to form one 64-bit data
Not only is this allowed, the PCI 2.2 specification actually recommends it
(Section 3.2.6 -- Combining Merging and Collapsing).
You just need to pay attention to the starting and ending address of the
burst, not whether the number of data phases is odd or even. If the
starting and/or ending address has AD(2)=1, then you'll have just 32 bits
to transfer at the beginning and/or end.
I believe you have two options which are described in two examples below:
Example 1: Assume an incoming 32-bit burst starts at address 0x1004 and
bursts 8 DWORDs. You could perform a single burst as follows:
You begin a burst at address 0x1000, but only assert the byte enables
corresponding to address 0x1004 (CBE(7:4)).
In the next three data phases, all 8 byte enables would be asserted.
On the last data phase, only the byte enables corresponding to address
0x1020 would be asserted (CBE(3:0)).
Example 2: Assume an incoming 32-bit burst starts at address 0x1004 and
bursts 8 DWORDs. You could perform three separate bursts as follows:
Your first access on the other side of the bridge would be a 32-bit cycle
at address 0x1004.
You could then perform a new burst of three 64-bit data phases starting at
address 0x1008.
Your last access would be a 32 bit cycle at address 0x1020.
In example 1, if the eventual target of the transfer is not a 64-bit
target, then your first data phase would not have any byte enables
asserted.
Good luck,
Craig C.
Ajit Khaparde <akhaparde@platysindia.com> on 11/17/2000 02:24:43 AM
Please respond to akhaparde@platysindia.com
To: pci-com-request@znyx.com
cc: "PCI_group COM" <pci-com@znyx.com>, "PCI_group SIG"
<pci-sig@znyx.com>
Subject: Merging of two 32-bits to form one 64-bit data
PCI Designers,
I have come across a situation during the design of a 66MHz 64-bit
PCi-to-PCI Bridge and it goes this way....
Case:
The Initiator on the Primary/originating bus could be a 32-bit master and
the Target on the Secondary/Destination bus could be a 64-bit device. Then
is it possible to latch the data from the initiator as it is being
sent(32-bit) and merge two such 32-bits of data into one to form one 64-bit
of data and send it to the target, for it can accept a 64-bit transaction.
I would like someone to comment on this and inform me whether this can be
done?
If yes, then I have come across one difficulty.
If the Initiator on the primary side has sent an odd number of Double words
then my idea of merging the two 32-bits of data to one single 64-bit could
result in merging the last odd 32-bit of data with a null or stale data.
Can someone suggest me a solution for this situation?
Thanks in advance.
Regards,
Waiting for your reply,
Ajit Khaparde
Platys communications (India) Pvt. Ltd.
Design Engineer,
#501, Arien Apartments,
Punjagutta,
Hyderabad-500082,
India
Ph:+91-40-6507141
_____________________________________________________________
email for free ---> http://www.platysindia.com