Fork me on GitHub
侧边栏
上一页 1 ··· 116 117 118 119 120 121 122 123 124 ··· 135 下一页
摘要: Flynn分类 处理器就是处理一系列指令和数据的设备,因此,从指令和数据这两个维度,可以对处理器的系统结构分类。1966年, Flynn将处理器系统结构分成了如下4类: SISD( single instruction single data),一次处理一条指令,一条指令处理一份数据,早期的处理器都 阅读全文
posted @ 2018-06-20 19:54 yooooooo 阅读(969) 评论(0) 推荐(1)
摘要: 1. P4 CPU 结构 奔4处理器是Intel的经典之作,它是采用乱序执行内核的超标量处理器。P4采用的微架构称为 Net Burst,基本结构如下: 奔4处理器微架构被分成了4大部分: (1)存储子系统( Memory subsystem)。 (2)前端( Front end) (3)乱序控制( 阅读全文
posted @ 2018-06-20 19:53 yooooooo 阅读(1469) 评论(0) 推荐(0)
摘要: 前面介绍了乱序的概念及去相关,这里开始介绍处理器的乱序执行结构。 1. Buffer的作用去耦合 在顺序执行内核中,指令依次流经各个流水线单元,不需要进行缓存,而为了要能乱序执行,首先需要一个Buffer来缓存还没有执行的指令,然后在这个 Buffer中去调度指令的执行顺序。乱序执行内核的基本模型如 阅读全文
posted @ 2018-06-20 19:53 yooooooo 阅读(6113) 评论(0) 推荐(3)
摘要: 相关是影响乱序调度的罪魁祸首,如果指令2的执行需要依赖指令1的结果,我们就 说这两条指令是相关的,指令2必须在指令1后面执行,无法乱序。 下图描述了指令间的相关性: 1.寄存器相关 当两条语句没有共用寄存器时,它们之间是不相关的,而当两条语句共用寄存器时,它们就有可能相关。 我们以x86汇编来看看指 阅读全文
posted @ 2018-06-17 22:45 yooooooo 阅读(2604) 评论(0) 推荐(0)
摘要: 分支预测( Branch predictor):当处理一个分支指令时,有可能会产生跳转,从而打断流水线指令的处理,因为处理器无法确定该指令的下一条指令,直到分支指令执行完毕。流水线越长,处理器等待时间便越长,分支预测技术就是为了解决这一问题而出现的。因此,分支预测是处理器在程序分支指令执行前预测其结 阅读全文
posted @ 2018-06-17 16:38 yooooooo 阅读(8612) 评论(0) 推荐(1)
摘要: [Android7.0 Ninja编译原理 ](https://blog.csdn.net/chaoy1116/article/details/53063082) 引言 使在Android N的系统上,初次使用了Ninja的编译系统。对于Ninja,最初的印象是用在了Chromium open so 阅读全文
posted @ 2018-06-16 23:12 yooooooo 阅读(1295) 评论(0) 推荐(0)
摘要: 从ARMv7指令集开始,ARM提供3条内存屏障指令。 (1)数据存储屏障( Data Memory Barrier,DMB) 数据存储器隔离。DMB指令保证:仅当所有在它前面的存储器访问操作都执行完毕后,才提交( commit)在它后面的存取访问操作指令。当位于此指令前的所有内存访问均完成时,DMB 阅读全文
posted @ 2018-06-15 11:52 yooooooo 阅读(4357) 评论(0) 推荐(0)
摘要: "谈乱序执行和内存屏障" 10多年前的程序员对处理器乱序执行和内存屏障应该是很熟悉的,但随着计算机技术突飞猛进的发展,我们离底层原理越来越远,这并不是一件坏事,但在有些情况下了解一些底层原理有助于我们更好的工作,比如现代高级语言多提供了多线程并发技术,如果不深入下来,那么有些由多线程造成问题就很难排 阅读全文
posted @ 2018-06-14 15:18 yooooooo 阅读(1029) 评论(0) 推荐(0)
摘要: 前言 本文涉及的硬件平台是X86,如果是其他平台的话,如ARM,是会使用到MMU,但是没有使用到分段机制; 最近在学习Linux内核,读到《深入理解Linux内核》的内存寻址一章。原本以为自己对分段分页机制已经理解了,结果发现其实是一知半解。于是,查找了很多资料,最终理顺了内存寻址的知识。现在把我的 阅读全文
posted @ 2018-06-13 16:24 yooooooo 阅读(2422) 评论(1) 推荐(1)
摘要: Android的内核就是Linux,所以Android获取root其实和Linux获取root权限是一回事儿。 su还需要所有者(Owner)是root才能正确的给其他程序赋予root权限。linux系统中,当前用户执行的程序,该程序进程的 有效用户ID(Effective UID)就是当前用户,但 阅读全文
posted @ 2018-06-13 10:48 yooooooo 阅读(1701) 评论(0) 推荐(0)
上一页 1 ··· 116 117 118 119 120 121 122 123 124 ··· 135 下一页