[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [microblaze-uclinux] why such idiv latency of 34 cycles?
Hi,
Division is a serial algorithm which can not easily be parallelized like multiplication.
32 bit division requires 32 cycles, the 2 extra cycles are added for handling the result sign and the sign of the operands.
Just creating 2 bit of result per clock cycle is a large increase in the complexity of the implementation.
There exists a number of different algorithm for doing division but non is as small as this single-bit implementation.
Göran
-----Original Message-----
From: owner-microblaze-uclinux@itee.uq.edu.au [mailto:owner-microblaze-uclinux@itee.uq.edu.au] On Behalf Of Brettschneider Falk
Sent: Tuesday, August 23, 2005 11:40
To: microblaze-uclinux@itee.uq.edu.au
Subject: [microblaze-uclinux] why such idiv latency of 34 cycles?
Hi,
please, look at
XilinxEDK6.3i\doc\mb_ref_guide.pdf, Chapter 4 "MicroBlaze Instruction Set
Architecture" where it says:
idiv Integer Divide
Latency
2 cycles if (rA) = 0, otherwise 34 cycles
Why is division that slow?
(Most other instructions have latency around 2)
Such slow division gives us big headaches in the algorithm code.
Cheers
Falk
___________________________________
Falk Brettschneider
Software Developer
http://www.baumeroptronic.de
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/