[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] Big endian contra Little endian



	If the CPU instructions were reversible, then the exception handler
could work in parallel with the continuing CPU until it handled the
exception as you describe, "rewind" the CPU back to the exception point,
and either "replay" the rewound CPU (net) results or restart execution
dependent against the results of the handled exception. A partly
reversible CPU can cache frames of reversible results before flushing to
a committed state, within which window exception handling can
rewind/replay/discard caches with less cost.

	That architecture is very complex, and expensive to design, configure
and deploy in gates. But is an excellent architecture to bring the
performance of reversible computing and exception handling to the
backwards compatibility of a soft CPU, in FPGA. uCL/MB could be the
platform to bring some of the fruits of reversible computing research to
practical benefit.


On Fri, 2006-09-01 at 20:42 +1000, John Williams wrote:
> Antti Lukats wrote:
> > Thanks,
> > 
> > good to know - I would assume there could be real performance increase
> 
> Not really, exceptions are expensive.  You have to interrupt the CPU,
> examine the exception reason and address registers, check the opcode
> that was being attempted, and then simulate it.  And all of that
> achieves the result of one single instruction.
> 
> Testing with the ethernet driver proved that in practice.  Before the
> data realignment engine (DRE) was added to the opb_emac, the original
> version of the driver did an alignment copy of each incoming ethernet
> frame, to make it conform to the kernel's expections about alignment of
> IP headers.
> 
> I had hoped to see a performance improvement by implementing the
> unaligned exception, but in fact it was no better, or perhaps slightly
> worse.  The cost of memcpy'ing the entire packet was about the same as
> the hit on unaligned accesses by the kernel into the IP header portion
> of the packet.
> 
> Cheers,
> 
> John
> 
> ___________________________
> microblaze-uclinux mailing list
> microblaze-uclinux@xxxxxxxxxxxxxx
> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
> Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
> 
-- 

(C) Matthew Rubenstein

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/