一 一个问题 原文链接:http://www.cnblogs.com/yangecnu/p/4196026.html#undefined 在StackOverflow上有这么一个问题 Why is processing a sorted array faster than an unsorted a ...
分类:
其他好文 时间:
2017-03-02 21:29:49
阅读次数:
312
1. likely 和 unlikely用于分支预测的优化 如果一个分支命中的概率比较小,使用unlikely 如果相反,则用likely 可参考: http://www.cnblogs.com/lhfcws/p/3205366.html 2. pthread_once 多线程环境中保证函数只执行一 ...
分类:
其他好文 时间:
2017-01-20 14:32:44
阅读次数:
1532
两种架构: 体系结构:是指指令集体系结构。 微体系结构:是指体系结构的具体逻辑实现,不同的微体系结构有不同的流水线设计,不同的分支预测技术。 微体系结构的多样性使得同一种体系结构能够不断的推陈出新,提高微处理器的性能,同时保证代码的兼容性。 预定义的指令集也叫做指令集体系结构(ISA,Instruc ...
分类:
其他好文 时间:
2016-12-03 20:36:48
阅读次数:
205
去年在安宁庄的时候, 有个同事阐述了一个观点:php中的if else 在执行时考虑到效率的原因,不会按我们的代码的顺序一条一条去试,而是随机找出一个分支,执行,如果不对,再随机找到一个分支 当时由于种种原因,也没过多去想这个问题,最近查了下资料,发现里面的学问还挺大的 php解释器是由c编写的, ...
分类:
其他好文 时间:
2016-11-20 00:09:24
阅读次数:
471
【摘要】 TAGE被认为是最有存储效率的全局历史信息分支预测器。Andre就指出TAGE加上statistical corrector(SC)和loop predictor会更加高效。CBP-4traces下,32Kbits:3.315MPKI,256Kbits:2.365MPKI,no-limit ...
分类:
其他好文 时间:
2016-07-13 20:51:41
阅读次数:
160
L1缓存 0.5ns 转移、分支预测 5ns L2缓存 7ns 14倍L1缓存 加锁\解锁 25ns 访问内存 100ns 20倍L2缓存,200倍L1缓存 1K字节压缩(Zippy) 3ns 前兆网卡上发送1k字节 10us SSD随机读4K数据 150us 从内存顺序读1MB数据 250us 同 ...
分类:
其他好文 时间:
2016-06-30 20:01:40
阅读次数:
124
分支预测(BranchPrediction):从P5时代开始的一种先进的,解决处理分支指令(if-then-else)导致流水线失败的数据处理方法,由CPU来判断程序分支的进行方向,能够加快运算速度。当 包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转...
分类:
其他好文 时间:
2015-08-08 18:01:19
阅读次数:
168
1.引言在很多源码如Linux内核、Glib等,我们都能看到likely()和unlikely()这两个宏,通常这两个宏定义是下面这样的形式。#define likely(x) __builtin_expect(!!(x), 1)#define unlikely(x) __built...
分类:
其他好文 时间:
2015-07-07 16:31:50
阅读次数:
236
最近大概阅读了一个UCB发布的Rocket处理器的源码,对源代码各个文件的功能有了一些大致的了解,Mark一下。
Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成FPU,并有许多or1200没有的特性,比如:无阻塞缓存、分支预测、返回地址堆栈、硬件页表填充、cache支持ECC、支持多核等。
Rocket的源代码是使用Chisel编写的,Chisel是UCB发布的基于Scala的领域特定语言。可以在https://github.com/ucb-bar/rocket下...
分类:
其他好文 时间:
2015-06-23 15:42:53
阅读次数:
819
第五章内容较多,接体系结构复习15.4 基于硬件推测的指令级并行动态分支预测是在程序运行时,根据转移的历史信息等动态确定预测分支方向...
分类:
其他好文 时间:
2015-06-22 22:20:24
阅读次数:
859