第一章、CPU综述
1.1
1、什么是CPU:中央处理器单元
2、什么是CPU架构:笔者理解为指令集架构 ISA
1.1.1——ISA是CPU的灵魂
指令集就是一组指令的集合,指令就是处理器进行操作的最小单元(比如乘除加减,读写存储器的数据)
指令级架构简称“架构”,“处理器架构”
有了指令集架构就可以使用不同的处理器硬件实现方案来设计不同性能的处理器。
处理器的具体硬件实现方案称为微架构(Micro architecture):虽然不同的微架构实现会有不同的性能和成本,但是软件不用做任何修改就可以运行在遵循同一个指令集架构实现的处理器上。——基于此,把ISA形象地说成是软件和处理器底层硬件直接的桥梁和接口(一个重要的抽象层)
为了让软件程序员可以编写底层的软件,指令集架构不仅仅是一组指令的集合,还要定义任何软件程序员需要了解的硬件信息:支持的数据类型,存储器,寄存器状态,寻址模式,存储器模型等等
指令级架构是区分不同CPU的标准
1.1.2 CISC,RISC
指令集架构分为复杂指令级CISC和精简指令级RISC,两者主要区别:
1、CISC不仅包含处理器常用的指令,还包含许多不常用的特殊指令,指令数目比较多
2、RISC只包含处理器的常用指令,对不常用的操作常常是通过执行多条常用的指令来达到效果
计算机指令使用中有一个28定律,80%的时间使用20%的指令,意味着CISC太繁重了,CISC让CPU设计变得复杂,大大增加了硬件设计的时间成本和面积开销
1.1.3 32为和64位架构
处理器指令集架构的位数也是一个非常重要的概念
处理器指令集架构的位数是指通用寄存器的宽度,这个决定了寻址范围的大小,数据运算能力的强弱。
比如32位的架构的处理器,通用寄存器的宽度是32位,能够寻址的范围是2的32次方,就是4GB(4乘以2的30次方),运算指令可以操作的操作数就是32位
注意一下:处理器指令集架构的宽度和指令的编码长度没有关系,不是说64位架构的指令长度就是64位。从理论上讲,指令本身编码长度越短越好,因为可以节省代码的存储空间,因此即使在64位架构中,也大量存在16位编码的指令,很少出现64位长度的指令编码
总的说:
不考虑任何实际成本和实现技术,有两点要记住
1、通用寄存器的宽度对应指令集架构的位数越多越好,因为这对应更大的寻址范围和更强的运算能力
2、指令编码的长度越小越好,因为这样可以节省代码的存储空间
1.1.4 介绍一个常见指令集架构的历史故事 跳过
1.1.5 CPU的领域之分
在传统的计算机体系结构分类中,处理器应用可以分为3个领域,服务器领域,PC领域,嵌入式领域。p11有一个表格
1.2国产CPU不能成功的重要原因是ISA
1.5RISC-V的登场带来了希望,适合硬件实现,完全开放
有了开发而且免费的RISC-V架构极大降低了CPU设计的准入门槛