Go Down

Topic: Instruction Cycle Time? (Read 7139 times) previous topic - next topic

hsadan

I have an Arduino Diecimila. I'm trying to figure out how long one instruction cycle takes.

I've tried looking through the datasheet, but all I've found is that it has a throughput of about 10MIPS per 1MHz, and I'm not sure how to go from here.

Anyone know how I can find the instruction cycle time?

Thanks.

kg4wsv

ATmega168 datasheet section 30 is the instruction set summary, including the number of cycles for each instruction.  Most are 1 or 2, a few are 3, function calls and returns are 4 clocks.

The standard Arduino executes at 16MHz, so that's max 16MIPS.  Not sure what the typical instruction mix is, so I don't have an average CPI, which is a more accurate measure of performance.

-j


kg4wsv

Hmm, not sure I actually answered that last part: the instruction cycle time is one clock tick, so 16MHz for the standard arduinos, 8MHz for the lilypad varieties.

-j


mem

#3
Dec 03, 2008, 03:25 am Last Edit: Dec 03, 2008, 03:27 am by mem Reason: 1
>"the instruction cycle time is one clock tick, so 16MHz for the standard arduinos..."

means that a single cycle instruction takes 1 divided by 16MHz -  which is 62.5 nanoseconds

hsadan

great, thanks a lot!

the datasheet said 10~40Mhz, so I wasn't sure what the typical clock speed was.

Go Up