计算机原理

计算机的流水处理过程同工厂中的流水装配线类似。为了实现流水,首先必须把输入的任务分割为一系列的子任务,使各子任务能在流水线的各个阶段并发地执行。将任务连续不断地输入流水线,从而实现了子任务的并行。因此流水处理大幅度地改善了计算机的系统性能,是在计算机上实现时间并行性的一种非常经济的方法。

1流水线的实现

计算机原理
程序操作计算机

线程是CPU调度的一个基本单位,一个CPU同时只能执行一个线程的任务;同样,一个线程任务只能在一个CPU上执行。

流水线的原理。流水线的基本原理是把一个重复的过程分解为若干个子过程,前一个子过程为下一个子过程创造执行条件,每一个过程可以与其它子过程同时进行。流水线各段执行时间最长的那段为整个流水线的瓶颈,一般地,将其执行时间称为流水线的周期。加速比 = 采用流水线后的速度/未采用流水线的速度。= 未采用流水线的时间/采用流水线后的时间。流水线的设备利用率,在时空图上表现为n个任务占用的时空区与k个 功能段总的时空区之比。

  首先必须把输入的任务分割为一系列子任务,使各子任务能在流水线的各个阶段并发的进行。

计算机软硬化层次结构:

所以如果运行node.js的机器是像i5、i7这样的多核CPU,那么将无法充分利用多核CPU的性能来为Node.js服务。

2流水线的时间效率分析

图片 1

 

(1)使用流水线

计算机层次结构.png

 

如果一个任务的实现有k个子任务,假设每个子任务完成时间为t.既流水线的时钟周期为t。

硬件-->软件-->程序

处理n个任务的时钟周期数:

系统软件 :操作系统 编译器 汇编器

T1=k+(n-1)

程序的执行过程:

即第一个任务所需时间为k,次数流水线被装满,剩下的n-1个任务只需n-1个时钟周期数。

图片 2

(2)不使用流水线

2017-06-24 08-03-57屏幕截图.png

完成n个任务所需的时钟周期数

图片 3

T2=n*k

图片.png

(3)流水线的加速比

案例:

C=T2/T1=n*k/[k+(n-1)]

#include<stido.h>
int main(){
    int c;
    c=18+40;
    printf("result is :%dn",c);
    }

当n远大于k时,k+(n-1)趋近于n,k级流水线的速度可提高k倍。

一条指令的执行过程可以简单的分为两个操作,取指阶段和执行阶段

返回列表