Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: rickman <gnuarm@xxxxxxxxx>
- Date: Tue, 24 Jul 2007 06:18:18 -0700
On Jul 24, 4:43 am, Joseph <joseph....@xxxxxxxxxxxxxxxxxxxx> wrote:
rickman wrote:
Nope it isn't, the AVR32 running at 66 MHz will run mostly
at zero waitstates due to its interleaved flash controller design.
Each flash access done by the memory controller
will have 1 waitstate, but since the memory controller can do
two accesses in parallel, the CPU will only see waitstates
during jumps, and no waitstates during non jump instructions.
If you do jumps 20% of the time, then the average number of waitstates is
0,2.
On top of that you will be able to perform dataaccesses to the flash
while eating from the instruction queue wihout any performance penalty.
That is pointless. It does not matter how large the FIFO is, if you
are pulling data out at a given rate and you can only put data in at
that same rate, as soon as you have to stop instruction reads to do a
data read, you will not be filling the FIFO as fast as it is being
emptied and performance will suffer. Run through a simulation and see
if that is not true. Based on the info you provided, this is the
result.
On Cortex-M3 (and possibly AVR32 ? ), many instructions are 16-bit.
As a result, the instruction bus (32-bit) fetch upto two instructions
each cycle, while most of the time only one instructions is executed per
cycle. So it is possible to stall the instruction fetch for a cycle to
to fetch data from flash, without seeing any stall at the execution stage.
Joseph
Sure, but that does not require a FIFO. Any processor that fetches 32
bits from memory and executes 16 bit instructions will automatically
have a 2 instruction queue. There is not much point extending the
FIFO beyond that really. It is only a small fraction of the time that
you will make use of the additional stages.
Ulf seems to be mixing the idea of a prefetch FIFO and a pipelined
processor. If the processor is pipelined, you need to have data in
each stage or there is a stall. The point of a FIFO is that it can
hold a *variable* number of data elements. Combining them means you
either have stalls anytime the FIFO does not have enough data or that
the FIFO has to stay full. Either way you gained nothing from the
combination of the two. You really need to keep them separate and
have pipeline registers which are kept full as much as possible (else
you get a stall) and a small FIFO (one or two memory words) for the
prefetch. Regardless, every time you hit a branch both the FIFO and
the pipeline must be emptied, so the FIFO should have the lowest
priority (relative to data fetches) to avoid wasted memory bandwidth.
Increasing the size of the FIFO just wastes memory bandwidth without
reducing the likelihood of a pipeline stall.
.
- Follow-Ups:
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: Ulf Samuelsson
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- References:
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: rickman
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: Ulf Samuelsson
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: rickman
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: Ulf Samuelsson
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: rickman
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: Ulf Samuelsson
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: rickman
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: Ulf Samuelsson
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: rickman
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: Ulf Samuelsson
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: rickman
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- From: Joseph
- Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- Prev by Date: Re: Lauterbach Trace32 ICD
- Next by Date: Re: PC/104 plus bus communication with FPGA using Xilinx IPCore
- Previous by thread: Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- Next by thread: Re: New ARM Cortex Microcontroller Product Family from STMicroelectronics
- Index(es):
Relevant Pages
|