以下内容大致摘录于阿里巴巴的《码出高效 Java开发手册》
前言
CPU这个概念大家应该不陌生了吧,说白点就是一块超大规模的电路板,计算机的核心部件,主要承载着计算机的只要运算和控制功能。硬件方面包括基板、核心、针脚,基板用来固定核心和针脚,针脚通过基板上的基座连接电路信号。
作为程序员,在实际编程中,我们难免要考虑到各种情况,其中多少还是需要掌握住底层的硬件原理才能更好地帮助我们排查出问题的所在。所以我们也要掌握好CPU的脾气,才能控制好它,使他为我们所工作。
在CPU的世界里,没有缤纷的图像,没有悦耳动听的音乐,只有不间断的对0与1电流信号的处理。但是这些处理可不简单,它的内部是精密而复杂的,总的来说,就是由控制器和运算器组成的,再加上一个内部寄存器可以使得这两者协同更加高效。
内部构成图(有点丑):
控制器
控制器由上图中的控制单元、指令译码器、指令寄存器组成。
其中控制单元是CPU的大脑,有时序控制和指令控制等组成;指令译码器是在控制单元的协调下完成指令读取、分析并交由运算器执行等操作;指令寄存器是存储指令集,当前流行的指令集包括X86、SSE、MMX等。
控制器有点像一个编程语言的编译器,输入0与1的源码流,通过译码和控制单元对存储设备的数据进行读取,运算完成后,保存回寄存器,甚至是内存。
运算器
运算器的核心是算术逻辑运算单元,即ALU,能够执行算术运算或逻辑运算等各种命令,运算单元会从寄存器中提取或存储数据。相对于控制单元来说,运算器是受控的执行部件。
任何编程语言的算术运算,无论字节码指令,还是汇编指令,最后一定会变成0与1的二进制流在部件内完成运算,并保存到寄存器中,最后送出CPU。
寄存器
好像也称为CPU内的缓存,缓存容量是组装计算机时必问的两个CPU性能问题之一。缓存结构和大小对CPU的运行结构影响非常大,毕竟CPU的运行速度远远大于内存的读写速度,更远大于硬盘。基于执行指令和热点数据的时间局部性和空间局部性,CPU缓存部分指令和数据,以提升性能。但由于CPU内部狭小且结构复杂,高速缓存的容量远小于内存空间。
CPU与内存的执行速度存在着巨大的鸿沟,所以需要该部件做为CPU与内存之间的缓冲区。
简单记录下,感谢您的观看????