Processor Throughput

In many applications, the processor throughput is an important consideration. In

the imaging example just mentioned, most of the functionality was performed in

hardware because the available microprocessors could not keep up. As processor

speeds increase, more functionality is pushed into the software. There are several

key factors that you must consider to determine your throughput requirements.

Interrupts

How oftenmust the interrupts occur, and howmuch processing must be performed

in each interrupt service routine (ISR)? What is the maximum allowable latency for

servicing an interrupt?Will interrupts need to be turned off for an extended length

of time, and how will that affect the latency of other interrupts? You may find that

you need two (ormore) processors—one to handle high-speed interrupts with short

latency requirements but low complexity processing needs, and another to handle

low-rate interrupts with more complex processing requirements.

Interfaces

What must the system talk to? How will the data be passed around or get to the

outside world? How much hardware support will there be for the interface and

how much of the functionality will be performed in software? To take a simple

example, an I2C interface that is implemented on a microcontroller by flipping

bits in software will impact overall throughput more than an I2C interface that is

implemented in hardware. This issue will likely be related to the interrupt considerations,

because the interface will probably use interrupts. (If you don’t know

what I2C is, it will be covered in Chapter 2.)

Hardware Support

An imaging application that has a direct memory access (DMA) controller to move

large amounts of data around will not need as much processor horsepower as one

that has to move the data in software. A processor that has to move the data in

software but has some kind of block-move instruction in the hardware will

probably be faster than one that has to have a series of instructions to construct

a loop. Similarly, if the CPU has an on-chip floating point unit (FPU) coprocessor,

then floating point operations will be much faster than they would be if they had

to be executed in software

Processing Requirements

If you are working on an imaging application, having a processor move the data

from one process (such as the camera interface logic) to another (such as filtering

logic) takes some degree of processing. If the processor has to actually implement

the filtering algorithm in software, this takes a lot more processing horsepower. It

is amazing how often systems are designed with little or no analysis of the amount

of processing the CPU actually has to do.

Operating System Requirements

If you use an operating system (OS), how long will interrupts be turned off? Is

this compatible with the interrupt latency requirements? What if the OS occasionally

stops processing to spend a few seconds thrashing the hard disk? Will this

cause data to be lost? Does the system have real-time requirements that will make

a real-time operating system necessary?

Language/Compiler

If you plan to use an object-oriented language such as Cþþ, what happens when

the CPU has to do garbage collection on the memory? Will data be lost? Does

choosing this approach mean you have to go from a 100MHz processor to a

1GHz processor just to keep the garbage collection interval short?

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد