|
Message
From: Justin Young<fuzz22@i...>
Date: Thu Jul 15 11:03:35 CEST 2004
Subject: [oc] Why open processors are so much slower than commercial ones?
Hi guys,I think you have answered your own question there Mikhail. We don't have access to the source code, which very much suggests that they have compiled it very specifically for that Spartan series.
Similar to if you try to compile a matrix multiple program (for example) with the C compiler GCC, compared to by hand, you'll find that you get a HUGE markup in execution time doing it by your self. Compilers aren't very smart!!
So I suggest that maybe they have closed to hand compiled the core, making sure all the blocks are laid out very cleverly to reduce clock delay and skew. Even though FPGA clock distribution is very intelligent these days, a compiler will never really beat a human taking the time do it.
Also, if the source code was available, it really isn't uncommon for them to put a check in their compiler to look for the source code of the Microblaze and just output the standard fully optimized output.
I've seen a similar thing done in standard software code also, many companies do bench marks on their processors using modified compilers that just output really really optimized code for their machines. Making their performance look better :-)
Look fwd to hearing a response - Justin
-----Original Message----- From: Mikhail Matusov [mailto:misoma@r...] Sent: Thursday, 15 July 2004 3:43 AM To: Michael Ayton; Discussion list about free open source IP cores Subject: Re: [oc] Why open processors are so much slower than commercial ones?
On Wed, 14 Jul 2004 09:51:48 -0700 "Michael Ayton" <mike_ayton@d...> wrote:
MA> MA> Microblaze was talor made for Xinilx FPGA devices.... try targeting the MA> Microblaze to say an Altera device (probably not all that trivial) and see MA> if there is a difference :)
Unfortunately, I can't try your experiment since I don't believe the MicroBlaze is available in source code.
I understand the sarcasm, but let's try to be more specific, what are those architecture specific details used in MicroBlaze that make it run at least 2 times faster than anything in the open domain (probably 3-5 times faster than most of the stuff )?
I could understand if let's say multiplication in a CPU not targeted to a specific architecture was slower, since Xilinx has hardware multipliers, but what are the other features? Any FPGA has plenty of LUTs and FFs and I think these days we can count on having dual port memories as well...
/Mikhail
|
 |