Placeholder Image

Subtitles section Play video

  • In this chapter our goal is to introduce some metrics for measuring the performance of a

  • circuit and then investigate ways to improve that performance.

  • We'll start by putting aside circuits for a moment and look at an everyday example that

  • will help us understand the proposed performance metrics.

  • Laundry is a processing task we all have to face at some point!

  • The input to our laundry "system" is some number of loads of dirty laundry and the output

  • is the same loads, but washed, dried, and folded.

  • There two system components: a washer that washes a load of laundry in 30 minutes, and

  • a dryer that dries a load in 60 minutes.

  • You may be used to laundry system components with different propagation delays, but let's

  • go with these delays for our example.

  • Our laundry follows a simple path through the system:

  • each load is first washed in the washer and afterwards moved to the dryer for drying.

  • There can, of course, be delays between the steps of loading the washer, or moving wet,

  • washed loads to the dryer, or in taking dried loads out of the dryer.

  • Let's assume we move the laundry through the system as fast as possible, moving loads to

  • the next processing step as soon as we can.

  • Most of us wait to do laundry until we've accumulated several loads.

  • That turns out to be a good strategy!

  • Let's see why

  • To process a single load of laundry, we first run it through the washer, which takes 30

  • minutes.

  • Then we run it through the dryer, which takes 60 minutes.

  • So the total amount of time from system input to system output is 90 minutes.

  • If this were a combinational logic circuit, we'd say the circuit's propagation delay is

  • 90 minutes from valid inputs to valid outputs.

  • Okay, that's the performance analysis for a single load of laundry.

  • Now let's think about doing N loads of laundry.

  • Here at MIT we like to make gentle fun of our colleagues at the prestigious institution

  • just up the river from us.

  • So here's how we imagine they do N loads of laundry at Harvard.

  • They follow the combinational recipe of supplying new system inputs after the system generates

  • the correct output from the previous set of inputs.

  • So in step 1 the first load is washed and in step 2, the first load is dried, taking

  • a total of 90 minutes.

  • Once those steps complete, Harvard students move on to step 3, starting the processing

  • of the second load of laundry.

  • And so on

  • The total time for the system to process N laundry loads is just N times the time it

  • takes to process a single load.

  • So the total time is N*90 minutes.

  • Of course, we're being silly here!

  • Harvard students don't actually do laundry.

  • Mummy sends the family butler over on Wednesday mornings to collect the dirty loads and return

  • them starched and pressed in time for afternoon tea.

  • But I hope you're seeing the analogy we're making between the Harvard approach to laundry

  • and combinational circuits.

  • We can all see that the washer is sitting idle while the dryer is running and that inefficiency

  • has a cost in terms of the rate at which N load of laundry can move through the system.

  • As engineering students here in 6.004, we see that it makes sense to overlap washing

  • and drying.

  • So in step 1 we wash the first load.

  • And in step 2, we dry the first load as before, but, in addition, we start washing the second

  • load of laundry.

  • We have to allocate 60 minutes for step 2 in order to give the dryer time to finish.

  • There's a slight inefficiency in that the washer finishes its work early, but with only

  • one dryer, it's the dryer that determines how quickly laundry moves through the system.

  • Systems that overlap the processing of a sequence of inputs are called pipelined systems and

  • each of the processing steps is called a stage of the pipeline.

  • The rate at which inputs move through the pipeline is determined by the slowest pipeline

  • stage.

  • Our laundry system is a 2-stage pipeline with a 60-minute processing time for each stage.

  • We repeat the overlapped wash/dry step until all N loads of laundry have been processed.

  • We're starting a new washer load every 60 minutes and getting a new load of dried laundry

  • from the dryer every 60 minutes.

  • In other words, the effective processing rate of our overlapped laundry system is one load

  • every 60 minutes.

  • So once the process is underway N loads of laundry takes N*60 minutes.

  • And a particular load of laundry, which requires two stages of processing time, takes 120 minutes.

  • The timing for the first load of laundry is a little different since the timing of Step

  • 1 can be shorter with no dryer to wait for.

  • But in the performance analysis of pipelined systems, we're interested in the steady state

  • where we're assuming that we have an infinite supply of inputs.

  • We see that there are two interesting performance metrics.

  • The first is the latency of the system, the time it takes for the system to process a

  • particular input.

  • In the Harvard laundry system, it takes 90 minutes to wash and dry a load.

  • In the 6.004 laundry, it takes 120 minutes to wash and dry a load, assuming that it's

  • not the first load.

  • The second performance measure is throughput, the rate at which the system produces outputs.

  • In many systems, we get one set of outputs for each set of inputs, and in such systems,

  • the throughput also tells us the rate at inputs are consumed.

  • In the Harvard laundry system, the throughput is 1 load of laundry every 90 minutes.

  • In the 6.004 laundry, the throughput is 1 load of laundry every 60 minutes.

  • The Harvard laundry has lower latency, the 6.004 laundry has better throughput.

  • Which is the better system?

  • That depends on your goals!

  • If you need to wash 100 loads of laundry, you'd prefer to use the system with higher

  • throughput.

  • If, on the other hand, you want clean underwear for your date in 90 minutes, you're much more

  • concerned about the latency.

  • The laundry example also illustrates a common tradeoff between latency and throughput.

  • If we increase throughput by using pipelined processing, the latency usually increases

  • since all pipeline stages must operate in lock-step and the rate of processing is thus

  • determined by the slowest stage.

In this chapter our goal is to introduce some metrics for measuring the performance of a

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it