Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4855
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-05 20:17
文章分类
文章存档

2015年(5)

我的朋友
最近访客

分类: 服务器与存储

2015-10-14 20:46:39

    流水线设计在现今的电路中已是非常普遍的做法。通过流水线设计,我们可以充分利用电路运行时间,使电路更好地运作。经典的cpu中的流水线设计一般为指令预取、译码、执行、写回结果,分为四级流水。当然,你也可以做成更多级的流水线设计。流水线的每一级都可以有加、减、乘、除和比较等运算。这些基本运算结构称为运算单元,也叫算子。
    然而,有时流水线过长,会带来输出负载过重的后果。乒乓缓存是一个能够隔离流水线的一个存储结构。不过,它是在某级流水线前后进行的隔离操作,并不是作为一级流水设计。通常上,流水线由于太长以致不能驱动下一级负载的时候,即输入输出负载问题,乒乓缓存可以被插入这两级流水之间来消除这些影响。
 
    如上图所示,输入数据流通过“输入数据选择单元”将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口 RAM(DPRAM)、单口RAM(SPRAM)、FIFO等。在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1”;在第2个缓冲周期,通过“输入数据选择单元”的切换,将输入的数据流缓存到“数据缓冲模块2”,同时将“数据缓冲模块1”缓存的第1个周期数据通过“输出数据选择单元”的选择,送到 “数据流运算处理模块”进行运算处理;在第3个缓冲周期通过“输入数据选择单元”的再次切换,将输入的数据流缓存到“数据缓冲模块1”,同时将“数据缓冲模块2”缓存的第2个周期的数据通过“输出数据选择单元”切换,送到“数据流运算处理模块”进行运算处理。如此循环
简而言之,乒乓缓存的控制原理为,通过“输入数据选择单元”和“输出数据选择单元”,按节拍、相互配合地切换,将经过缓冲的数据流不停顿地送到“数据流运算处理模块”,进行运算及处理。
    就网络流量控制的设计中,三级插入一级乒乓缓存来隔离流水线,基本上能满足要求。
 
 
参考:
 
阅读(287) | 评论(0) | 转发(0) |
0

上一篇:linux性能监控——CPU、Memory、IO、Network

下一篇:没有了

给主人留下些什么吧!~~