[CS61C FA20] Lecture 15.4 - State, State Machines: Pipelining for Performance — Transcript
Full transcript
- 0:00and welcome back now let's think about
- 0:02how to improve
- 0:03the performance of a system using
- 0:05pipelining
- 0:07so again let's talk about this maximum
- 0:09clock frequency how small can we make
- 0:11our period how fast can we make our how
- 0:13high can we make our frequency
- 0:15so we think about the delay through a
- 0:16circuit here's a standard circuit but
- 0:17not tilted on its side
- 0:19um we've got the idea that
- 0:23first thing that happens like what
- 0:26happens at dawn
- 0:26what happens at dawn is clock
- 0:30goes high that clock is going to go high
- 0:33and that rising edge of the clock starts
- 0:35the whole day in motion
- 0:36the first delay we see is t clock to q
- 0:39how long until i see that output on the
- 0:42inputs whatever
- 0:43it turned around grabbed its stuff and
- 0:44then it's available the
- 0:46queue is stable with whatever the
- 0:48previous state was
- 0:50i've got a delay we're going to assume
- 0:52that this wire has no
- 0:54delay so maybe on an exam we might say
- 0:56well assume there's a wire delay
- 0:58but for now and by default there's no
- 1:00delay on the wire so the next delay you
- 1:01see
- 1:02is t tau sub combinational logic
- 1:05whatever the conventional logic delay is
- 1:07there might also be a delay because this
- 1:08input may not be synchronous we talked
- 1:09about that before as well
- 1:12next we've got the this line which is t
- 1:16setup we got to have that stable t clock
- 1:18to q
- 1:19plus t sub cl stable before
- 1:22t set up before the next rising edge so
- 1:25in fact
- 1:26we think about our max delay as being
- 1:28clock to q again
- 1:29clock to queue here that's the first
- 1:32delay you see
- 1:32the cl delay here and our setup time
- 1:35which is the last thing that happens and
- 1:36that all that has to fit into one period
- 1:38okay so
- 1:42we saw this idea that you were we had a
- 1:45register
- 1:46and then you have here is an adder and a
- 1:48shifter
- 1:49okay so this we're going to have now two
- 1:51elements and the
- 1:52way i think about this is imagine a
- 1:54assembly line and
- 1:55lucy is working on assembly line and
- 1:57she's got to do something she's got to
- 1:59wrap
- 1:59the chocolates and she's got to write a
- 2:00little poem a little haiku on it at the
- 2:02same time
- 2:03and she has to complete successfully
- 2:05before she can pass it on well
- 2:07that means the assembly line is going to
- 2:09have to wait till she can do both of
- 2:10those things
- 2:11in the worst case okay next one do the
- 2:14wrapping and then the haiku
- 2:16that's a lot that's like the adder and
- 2:18the shifter couldn't you
- 2:19have another person who then does the
- 2:21haiku then you're dividing her work
- 2:23into two pieces and now you divide it up
- 2:26but now
- 2:26i she it takes a little longer right now
- 2:28rather than going
- 2:29from let's say brand new chocolate to
- 2:31one lucy and out
- 2:33i'm now gonna have to figure out well
- 2:35can i divide lucy's job into two pieces
- 2:37and then maybe have somebody to help
- 2:39divide the load help share the load with
- 2:41that
- 2:42and maybe it then goes to the next stage
- 2:43so it might be longer before the
- 2:44chocolate gets out
- 2:45because it's there but the the frequency
- 2:49is faster the time
- 2:50between i can get to the the next chunk
- 2:52the time between
- 2:53the period is shorter so here's the idea
- 2:56i gotta register the clock goes high
- 2:59remember we saw this before the clock
- 3:01was high i wait ti i wait t
- 3:03clock to q before i see that output on
- 3:05my inputs
- 3:06then i have this really big combination
- 3:09combinational logic delay this is an
- 3:11adder shifter delay in this case
- 3:12and until that's stable and then all
- 3:15that has to be
- 3:16stable t setup before the next rising
- 3:19end of the clock
- 3:20okay so my clock period is limited by
- 3:23that huge
- 3:24you know it said those three terms add
- 3:26to the the
- 3:27the minimal the middle clock period is
- 3:29those three terms
- 3:31well one of those terms is really big
- 3:32then that means that minimum is really
- 3:34big
- 3:34could i do anything about that and
- 3:36that's the idea of pipelining
- 3:38what if i inserted another register here
- 3:41in the middle
- 3:42oh my gosh now i'm taking lucy's job of
- 3:46wrapping
- 3:46and doing the haiku and doing a separate
- 3:48thing here again an adder and a shifter
- 3:50so now what's our timing rising edge of
- 3:54the clock
- 3:55now my inputs are available after clock
- 3:56to queue sitting here on the adder
- 3:58now i've got my adder delay which is
- 4:01much smaller
- 4:02this added delay better be done before t
- 4:05setup before the next rising edge of the
- 4:06clock and then it goes to the next stage
- 4:10and the next stage i've got t clocked to
- 4:12q t
- 4:13clocked to cube before that avail that
- 4:15number is available to s of i minus one
- 4:17so here's
- 4:18t clock to q okay there's this
- 4:22now i've got a delay between when s of i
- 4:25minus one
- 4:25pass it to the next level and that's t
- 4:27shifter delay so that's right in here is
- 4:29my t shifter delay and again that's
- 4:31smaller than shifter plus t adder and
- 4:34again that has to be all stable
- 4:36before oops that's not drawing a
- 4:38straight line there but stable before
- 4:40t set up for the next guy so we love
- 4:43this i have more outputs per second
- 4:45but you're paying a price so it's like
- 4:48you're paying a price that
- 4:49for one particular chocolate for one
- 4:51data to go through it takes a little bit
- 4:53maybe
- 4:53longer for one thing to go through but
- 4:55overall pipelining means that more
- 4:57things per second more outputs per
- 4:58second
- 4:59we love that so this is the last slide
- 5:01let's recap some of our terms here
- 5:03we've got a clock that's our heartbeat
- 5:05of the system the setup time is the time
- 5:07before the rise against the clock where
- 5:08the data has to be stable on every
- 5:10flip-flop or every register
- 5:11hold time is where that data has to be
- 5:13stable after the rising edge of the
- 5:14clock
- 5:15clock to queue is delayed before between
- 5:17when rising edge happens and that data
- 5:19is quiescently
- 5:20available at the output ports flip flop
- 5:23is how you build registers and registers
- 5:24we're going to use all throughout
- 5:26building our data path for a working
- 5:27risk 5 machine
- 5:28registers are going to hold these data
- 5:30and only change the values
- 5:32on the rising edge of a clock or on that
- 5:34kind of load level or when there's a
- 5:36reset it'll ignore the input
- 5:38and then use and reset to zero that's it
- 5:40all right we'll see the next video
About this transcript
This page contains the full transcript of [CS61C FA20] Lecture 15.4 - State, State Machines: Pipelining for Performance by CS 61C Departmental, generated from the public captions YouTube serves with the video. The transcript has 1,137 words across 184 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.