CPU

CPU是一块超大规模的集成电路板,是计算机的核心部件,承载着计算机的主要运算和控制功能,是计算机的最终解释模块和执行模块。总之,用一句话概括就是,CPU是由控制器和运算器组成的,而内部寄存器使这两者协作更为高效。CPU的内部结构如下图所示。

下面对图中的三大组成部分进行简单的讲解。

控制器

​ 控制器是由控制单元指令译码器指令寄存器三大部分构成。其中控制单元是CPU的核心,由时序控制和指令控制等组成;指令译码器是在控制单元的协调下完成指令读取、分析并交由运算器执行等操作;指令寄存器是存储指令集,当前流下的指令包括 X86SSEMMS 等。控制器类似于我们平常使用代码编译器一样,当输入编译之后的0与1的源码流,通过译码和控制单元对存储设备的数据进行读取,运算完成之后,保存回寄存器或者是内存。

运算器

​ 从图中我们可以得知,运算器的核心是算术逻辑运算单元,即 ALU,能够执行算术运算或逻辑运算等各种指令,运算单元会从寄存器中提取或存储数据。相对于控制单元来讲,运算器是受控的执行部件。我们平时开发的编程语言,如Java、Python等,用到的a+b的算术运算,无论是字节码指令,还是汇编指令,最终的结果是一定以0与1的组合流形式在部件内完成最终计算,并保存到寄存器,最后送出CPU。

寄存器

​ 为了区分,作者在寄存器图上特意标明了CPU的高速缓存L1L2,缓存容量是组装计算机时必问的两个CPU性能问题之一。缓存结构和大小对于CPU的运行速度影响非常大,毕竟CPU的运行速度远快于内存的读写速度,甚至硬盘。基于执行指令和热点数据的时间局部性和空间局部性,CPU缓存部分指令和数据,以提升性能。但由于CPU内部空间狭小且结构复杂,高速缓存远小于内存空间。

小结

CPU是一个高内聚的模块化组件,对于外部其他硬件设备的时序协调、指令控制、存取动作,都需要通过操作系统进行统一管理和协调。

内存

​ CPU与内存的执行速度有着很大的差距,上图中寄存器里面的L1L2分别对应着256KB和4MB,它们是CPU和内存之间的缓冲区,但需要注意的是,并非所有的处理器中都存在L3缓存。

内存就是系统资源的代名词,它是其他硬件设备与CPU沟通的桥梁,计算机中的所有程序都在内存中运行,它的容量与性能如果存在瓶颈,即使CPU再快,也是白费功夫。内存的物理结构是由内存芯片、电路板、控制芯片以及相关支持模块等组成。

​ 在Java当中,内存就全权交给了JVM(Java虚拟机)来自动分配和释放,这个过程就是垃圾回收机制。虽然垃圾回收机制能够帮助我们的程序减轻了压力,但是不在代码中加以约束的话,同样也会耗尽内存资源。

最新文章

  1. 排名前 8 的 PHP 调试工具
  2. print输出格式总结
  3. 关于android R.layout.没有出现自己写的布局解决方法
  4. SAP 常用函数
  5. Google Code Jam 2014 Round 1B Problem B
  6. A javascript library providing cross-browser, cross-site messaging/method invocation. http://easyxdm.net
  7. 正则表达式 java版
  8. linux 命令学习大全
  9. 浅入深出之Java集合框架(下)
  10. CSDN社区投诉申请表
  11. Go的变量作用域
  12. iphone开发笔记目录
  13. Python连接oracle数据库的基本操作
  14. nvidia-smi命令输出详解
  15. win10家庭版 监听无法启动 报TNS-12560 TNS-00530
  16. linux装tomcat遇到的坑
  17. JSON方式封装通信接口
  18. typedef 用法总结
  19. @Html.Action()
  20. ulimit linux文件配置

热门文章

  1. springMVC学习日志一
  2. QT 自定义控件 以及信号和槽的使用
  3. 【java虚拟机】jvm调优原则
  4. Java异常与异常处理
  5. 在Spring中使用静态工厂时发生的无法得到对象的问题
  6. mzy对于反射的复习
  7. c++制表符
  8. 面试必问题:JS防抖与节流
  9. 使用 Dockerfile 自定义 Nginx 镜像
  10. python3 爬虫五大模块之三:网页下载器