流水线软件
文章平均质量分 80
shiwei0124
这个作者很懒,什么都没留下…
展开
-
Intel TBB:Pipeline,软件流水线的威力
参观过工厂装配线的人一定对流水线这个名字不陌生,半成品在皮带机上流过一系列的流水线节点,每个节点以自己的方式进一步装配,然后传给下一节点。现代的高性能CPU均采用了这种流水线设计,将计算任务分为取指,译码,执行,访存,反馈等几个阶段。采用流水线设计的最大优点就是增加了系统吞吐量,例如,当第一条指令处于执行阶段的时候,译码单元可以在翻译第二条指令,而取指单元则可以去加载第三条指令。甚至,在某些节点还转载 2009-08-07 16:35:00 · 1712 阅读 · 0 评论 -
Intel TBB::Pipeline,按序处理数据
在上一篇文章(TBB:pipeline,软件流水线的威力)最后提出了几个问题,我们逐个来看看TBB::Pipeline是怎么解决的。 为什么Pipeline可以保证数据执行的顺序?既然TBB归根到底是通过多线程执行任务,为什么不会在读入先后两个字符串后,后读入的字符串先被下一个task处理?Pipeline里是不是有一个类似于FIFO 先进先出队列之类的东西? 之前曾经转载 2009-08-07 16:36:00 · 1625 阅读 · 0 评论 -
多核程序探秘(1) false sharing及使用vtune验证
多核开发中常见的一个问题是false sharing(失效共享),这个问题让我们用一个全新的角度来看待多核程序的编写,这个角度就是硬件的角度。Intel Core 2 Duo处理器平台上, L2 cache是由两个core共享的,而L1 data cache是分开的,由两个core分别存取。cache line的大小是64 Bytes。当不同的线程同时读写不同的,看起来更不相关的2个变量时,由转载 2009-08-07 16:38:00 · 799 阅读 · 0 评论