一、CPU组成

  1、组成:

    ALU:算术逻辑单元,完成数据的实际计算或处理

    控制器:控制数据的移入移出CPU

    寄存器:由一组存储位置极小的内部存储器组成

    CPU内部总线:在各寄存器和ALU之间传送数据

  2、CPU要完成的任务:

    取指令:从存储器(主存、cache、寄存器)读取指令

    解释指令:对指令进行译码

    处理指令:对数据完成算术或逻辑运算

    写数据:运算结果数据写到存储器或I/0模块

二、寄存器组成

  1、组成:

    用户可见寄存器:允许机器语言或汇编语言的编程人员通过优化寄存器的使用而减少对主存的访问

    控制和状态寄存器:由控制器来控制CPU的操作,并由拥有特权的操作系统来控制程序的执行

  2、到目前为止,关于组织CPU寄存器的最好方式还没有一个普遍接受的原则,正如指令集设计的情况一样,也有众多的CPU设计观点,这些都还是有待品评的事情。

三、指令周期

  1、间接周期:指令的执行涉及到从存储器中读取操作数,可能会使用到间接寻址,可以把间接寻址看成是一个额外的指令子周期,即间接周期。

  2、数据流:该小节讲述了在取指令阶段、指令执行阶段和中断周期阶段,PC(程序计数器)、MAR(存储器地址寄存器)、MBR(存储器缓冲寄存器)和IR(指令寄存器)中数据的移动方向与时序,详情见此书P283页。

四、指令流水线技术

  1、定义:流水是指将指令周期分解成几个连续出现的阶段,如取指令、译码指令、确定操作数地址、取操作数、执行指令和写结果操作数。

  2、指令预取:在取指阶段取一条指令并缓存它,当执行阶段空闲时,将取指阶段缓存的指令输送给它。当执行阶段正在执行此指令时,取指阶段利用未使用的存储器周期读取下一条指令并缓存它。这称为指令预取或指令交叠。这种处理能加快指令的执行,理论上速率可以提升一倍,但是仅仅只是理论上,别想多了!至于原因,见P284页。

  3、流水线冒险:发生在流水线或流水线的某个部分,因为某些条件不允许流水线继续运行,而必须停顿的时候,这种停顿也称流水线空泡。通俗的说,就是几条指令想要并行取指、执行的时候,因为资源、数据或控制不得不等待其他指令的一种情况。

  4、三种流水线冒险:

    资源冒险:也称为结构冒险,主要是等待内存可用,或者算数逻辑单元可用的情况;

    数据冒险:需要访问同一内存中或寄存器中的数据时发生;

    控制冒险:又称为分支冒险,发生在流水线对分支转移做出了错误的预测,因此读取了在后期必须取消的指令之时。

  5、处理分支指令:

    多个指令流:条件分支流水线的开始部分,允许流水线同时取这两条指令,使用两个指令流;

    预取分支目标:识别出一个条件分支指令时,除了取此分支指令之后的指令外,分支目标的指令也被取来。说实话,我看的不太明白;

    循环缓冲器:由流水线指令取指阶段维护一个小的但极高速的存储器,含有n条最近取来的指令,其原理类似于指令高速缓存;

    指令预测:预测绝不发生、预测总是发生、依操作码预测、发生/不发生切换、转移历史表;

    延迟分支:自动重排程序中的指令,这样可以把一条分支指令移到实际所期望的位置之后;

《计算机组成与体系结构:性能设计》读后小记 12、CPU的结构和功能的更多相关文章

  1. 【计组】《计算机组成与体系结构性能设计》William Stallings 第2部分 计算机系统 第3章 计算机功能和互连的顶层视图

    关键词 address bus 地址总线 asynchronous timing 异步时序 bus 总线 bus arbitration 总线仲裁 bus width 总线宽度 centralized ...

  2. 《像计算机科学家一样思考Java》—— 读后总结

    本书属于入门级的Java书籍,与其他的向编程思想.核心技术不同的是,这本书不是按部就班的讲解java变成知识,而是随着语言的深入慢慢增加知识点. 这本书以一个语言开发者的角度,深入浅出的讲解了Java ...

  3. "Entity Framework数据插入性能追踪"读后总结

    园友莱布尼茨写了一篇<Entity Framework数据插入性能追踪>的文章,我感觉不错,至少他提出了问题,写了出来,引起了大家的讨论,这就是一个氛围.读完文章+评论,于是我自己也写了个 ...

  4. C语言指针使用小记 (深入理解C指针 读后小记)

    最近正值过年在家,新年初一,闲暇时间无事可做便把以前看过的书籍整理了一下,顺手也把这本“深入理解C指针”的书重新读了一遍,这本书总体感觉比较简单,但是还是不免有些地方是平时没有想到过或者没有注意到的, ...

  5. 编写高质量代码 改善Python程序的91个建议 (读后 小记)

    此书是自己好久之前买的,当时总觉得Python语言中有各种trick, 总是要自己猝不及防的掉入到陷阱之中, 看了一些资料后发现了这本书,感觉很是不错,不过可惜自己平时总是杂事太多,总是找不到整块的时 ...

  6. 浏览器渲染原理笔记 --《How Browser Work》读后总结

    综述 之前使用ExtJS时遇到一个问题:为什么依次设置多个组件的可见性界面会卡顿?在了解HTML的dom操作相关内容的时候也好奇这个东西到底是怎么回事,然后尤其搞不懂CSS和Html分管样式和网页结构 ...

  7. WiscKey: Separating Keys from Values in SSD-Conscious Storage [读后整理]

    WiscKey: Separating Keys from Values in SSD-Conscious Storage WiscKey是一个基于LSM的KV存储引擎,特点是:针对SSD的顺序和随机 ...

  8. Code Complete 读后总结和新的扩展阅读计划

    Code Complete 读后总结和新的扩展阅读计划 用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划. 1.选择代码大全作为我程序员职业入门的第一本书,我认为 ...

  9. 《Effective Objective-C 2.0》 读后总结

    感觉自己最近提升很慢了.然后去找了一些面试题看看.发现自己自大了.在实际开发中,让我解决bug.编写功能,我有自信可以完成.但是对项目更深层的思考,我却没有.为了能进到自己的目标BAT.也为了让自己更 ...

随机推荐

  1. 010.Python字符串的格式化

    字符串的格式化 顺序传参 索引传参 关键字传参 容器类型传参(列表和元组) {}相当于占位符 1 顺序传参 strvar = "他{}牺牲自己,{}出卖组织" res = strv ...

  2. Devops 导论

    第一章 DevOps概述 第二章 个体软件过程 第三章 敏捷软件开发 第四章 软件架构演化 第五章 云原生与容器技术 第六章 XaaS和IT服务标准 第七章 DevOps工具链 --学习总结自< ...

  3. 重新整理 .net core 实践篇————配置系统——军令(命令行)[六]

    前言 前文已经基本写了一下配置文件系统的一些基本原理.本文介绍一下命令行导入配置系统. 正文 要使用的话,引入Microsoft.extensions.Configuration.commandLin ...

  4. 五:.net core(.NET 6)使用Autofac实现依赖注入

    Autofac的简单使用: 由于将来可能引用很多包,为了保持统一队形,我们再新建一个类库项目Wsk.Core.Package,当做包的引用集合: 删掉Class1,把Wsk.Core.Wsk.Core ...

  5. CAS(Compare and Swap)无锁算法-学习笔记

    非阻塞同步算法与CAS(Compare and Swap)无锁算法 这篇问题对java的CAS讲的非常透彻! 锁的代价 1. 内核态的锁的时候需要操作系统进行一次上下文切换,加锁.释放锁会导致比较多的 ...

  6. 转载 | Scala 如何避免使用 Null

    在 Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的. Scala 的 Option类型 Scala在变量和函数返回值可能不会引用任何值的时候使用 Option 类型 ...

  7. springboot 集成 elk 日志收集功能

    Lilishop 技术栈 官方公众号 & 开源不易,如有帮助请点Star 介绍 官网:https://pickmall.cn Lilishop 是一款Java开发,基于SpringBoot研发 ...

  8. Redis--狂神说Redis基础汇总(完结)

    Redis--狂神说Redis基础汇总(完结) 2021.6.12-2021.6.14:端午学学玩玩弄完了Redis基础的汇总,越学越觉得自己知识量的匮乏. 参考链接:狂神说Java--Redis汇总 ...

  9. 一、安装Tomcat服务器

    [root@ web1 ~]# yum -y install java-1.8.0-openjdk   #安装jdk [root@web1 ~]# yum -y install java-1.8.0- ...

  10. 【题解】覆盖问题 BZOJ1052 HAOI2007 二分

    题目描述 某 人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用 3个LL的正方形塑料薄膜将小树遮起来.我 ...