1
00:00:00,850 --> 00:00:02,840
What is the harder pipelining technique?

2
00:00:03,750 --> 00:00:06,100
How can it be described in a sequential circuit?

3
00:00:07,030 --> 00:00:12,610
This lecture will define the pipelining, concepts and their usage in designing sequential circuits.

4
00:00:15,660 --> 00:00:23,240
Pipelining is a micro architectural technique to execute tasks at the same time, with some timing overlaps,

5
00:00:23,910 --> 00:00:29,550
let's consider a few tasks that should be executed sequentially to process a stream of data.

6
00:00:30,030 --> 00:00:34,530
These tasks can encapsulate in a function or a loop statement.

7
00:00:35,250 --> 00:00:40,620
Each task needs the results of its predecessor to generate its outputs.

8
00:00:41,400 --> 00:00:45,180
Therefore, they cannot perform in a full parallel fashion.

9
00:00:48,040 --> 00:00:52,060
Examples of this scenario are the assembly lines in a factory.

10
00:00:54,420 --> 00:01:01,350
One way to execute these tasks is the sequential execution in which the system receives new data when

11
00:01:01,350 --> 00:01:03,430
it completely processed the previous one.

12
00:01:03,930 --> 00:01:08,700
In this case, each input data should wait sometimes to be processed.

13
00:01:11,590 --> 00:01:18,310
Another execution mechanism is pipelining in which TASC executions can overlap.

14
00:01:19,310 --> 00:01:26,480
Let's have a look at this execution model first task one receives the first data and gives its results

15
00:01:26,480 --> 00:01:34,130
to task to then while tasked to process the massive data task, one can accept the second data.

16
00:01:35,840 --> 00:01:42,020
In the next iteration, one task, three process the first data, the second task can process the second

17
00:01:42,020 --> 00:01:44,870
data and task, one can receive the third date.

18
00:01:45,770 --> 00:01:50,100
In this scenario, the input data are processed without any delay.

19
00:01:50,720 --> 00:01:55,850
The tasks in the pipeline, micro architecture also referred to as stages.

20
00:01:57,720 --> 00:02:03,870
Pipelining allows the stages to be executed concurrently, each stage does not have to complete all

21
00:02:03,870 --> 00:02:10,560
its operations before it begins, the next stage pipelining is applied to functions and loops.

22
00:02:14,600 --> 00:02:18,260
Let's recall the single cycle sequential circuit design techniques.

23
00:02:20,230 --> 00:02:27,330
In which the combination, all part requires one clock cycle to complete its task, in this scenario,

24
00:02:27,460 --> 00:02:30,940
the design can receive the input data at each clock cycle.

25
00:02:33,500 --> 00:02:39,750
Now, what would happen if the conventional circuit requires more than one clock cycles to finish?

26
00:02:40,670 --> 00:02:43,020
Let's assume it needs to clock cycles.

27
00:02:43,550 --> 00:02:45,860
This diagram shows the timing execution.

28
00:02:48,410 --> 00:02:53,240
As can be seen, the second cannot accept inputs at all clock cycles.

29
00:02:54,170 --> 00:02:57,230
It only accepts input every other clock cycle.

30
00:02:58,830 --> 00:03:04,590
Therefore, the second may miss some inputs or inputs should wait to be processed.

31
00:03:08,800 --> 00:03:15,220
Let's consider the previous sequential circuit that its combination or circuit requires to clock cycles

32
00:03:15,220 --> 00:03:16,240
to do its task.

33
00:03:19,370 --> 00:03:25,790
If it is, why the combination or circuit into two stages or two subtasks with some registers in between,

34
00:03:25,970 --> 00:03:28,310
then we can employ the pipeline execution.

35
00:03:30,420 --> 00:03:38,940
In this case, why the second estate, that is to performs its task, the first stage that is Taiwan

36
00:03:38,940 --> 00:03:40,290
accepts new data.

37
00:03:41,700 --> 00:03:45,570
Therefore, the circuit can receive data at each clock cycle.

38
00:03:47,260 --> 00:03:53,560
The number of clock cycles between two input data in a pipeline micro architecture is called the initiation

39
00:03:53,560 --> 00:03:56,950
interval and for an efficient pipeline, it should be one.

40
00:03:59,530 --> 00:04:02,350
In this case, the initiation interval is one.

41
00:04:06,290 --> 00:04:12,500
How can you describe function pipelining in the next lecture will describe this concept.

42
00:04:16,670 --> 00:04:23,810
These are our takeaway messages, pipeline execution increases the task throughput by exiting and generating

43
00:04:23,810 --> 00:04:26,110
more data than sequential execution.

44
00:04:26,120 --> 00:04:26,360
What?

45
00:04:29,350 --> 00:04:35,360
The initiation interval is the number of clock cycles before the function can accept new input data.

46
00:04:36,250 --> 00:04:38,740
The ideal initiation interval is one.

47
00:04:43,410 --> 00:04:49,360
Now, the quiz question assume that the combination of part of the sequential circuit takes three clock

48
00:04:49,380 --> 00:04:56,550
cycles to finish are the timing diagram of its pipeline implementation with initiation interval of one.
