Read 64-bit value over PLB

Hi,

My question is straight'n'simple: what's the *most efficient* way of reading a 64-bit value from a slave PLB peripheral in software? Is there any *weird* behaviour I should be made aware of when I read 32- bit value instead?

In principle, PLB should be able to handle 64-bit transaction but not PPC software of course. Is there anyway to map this transaction to a consecutive pair of PPC software registers?

Thanks in advance,

Regards,

-Manny

Reply to
Manny
Loading thread data ...

ppc always reads 64 bits. It uses the byte enables to mask the upper or lower 32 bits.

The most efficient way is to read it into the cache. This reads a line of four 64 bit words in a burst.

But if you only have one 32 bit word to read, I don't think you can do much except make it zero wait state.

I don't think so.

Alan Nishioka snipped-for-privacy@nishioka.com

Reply to
Alan Nishioka

Hi Manny,

Others have pointed out already that you can either have each 32bit word read separately, or you can have the PPC do a line read.

A line read means that 256 bits are read, although you will use only

64 of them. If the PLB slave returns "target word first", this will be a low-latency read. Total bandwidth may be sub-optimal though, when you repeatedly discard 3/4 of the data.

Doing two 32-bit transactions (mark memory as non-cachable, possibly guarded, and disable LWL) might be faster in some special scenarios, depending on the slave behaviour.

Regards, Marc

Reply to
jetmarc

Thanks a lot all. Just got back from Switzerland. I'll dig into this matter further using the suggested pointers.

Cheers,

-Manny

Reply to
Manny

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.