写在前面:作者本人是计算机指令集架构方面的小白,最近学习了一点点有关指令集架构的内容,想在这里分享一下个人的心得。此文章偏向于科普,且仅代表作者个人的想法和思考。文章没有官方指导修正,可能包含很多问题,请大家包涵并指正。
一、关于CPU(Central Processing Unit)
1、Control Unit:即控制单元,负责程序的流程管理。由指令寄存器IR、指令译码器ID和操作控制器OC三个部分组成。
2、ALU(Arithmetic and LOogic Unit):算术和逻辑单元,处理数据并将结构存储在CPU的内部存储单元中。
3、Registers:即寄存器,用于暂时存放参与运算的数据和运算结果。
二、关于指令集架构
1、软、硬间的桥梁,作为软硬件的接口,可理解为硬件开发者和软件开发者之间遵守的某种规则,或说明书,便于软、硬件分开作为两个模块各自发展。
2、两大主流架构
①CISC(Complex Instruction Set Computing):复杂指令集运算,丰富的指令集使得工程师为微处理器编写程序变得容易,并且伴有其他许多优点,但复杂指令回增加硬件的复杂度。
②RISC(Reduced Instruction Set Computing):精简指令集运算,其由Berkeley大学的David Patterson于1974年提出,他发现了所谓“二八定律”——在传统计算机使用的指令集架构(CISC)中,只有20%的指令被80%的程序频繁使用,于是提出了一种新的架构。
③除了这两种架构外,还有显示并行指令集运算(EPIC)、超长指令字指令集运算(VLIW)等。
3、一些指令集架构的实例。
①x86架构:一种CISC架构,由Intel公司首创,后授权给AMD公司使用,这两家公司生产的许多微处理器均基于x86架构,并垄断了PC端处理器的市场。
②ARM架构:一种RISC架构,是RISc架构最成功也是第一个商业化架构,主要服务于移动端领域,有低功耗特点。
③RISC-V架构:顾名思义,它是一种基于RISC原理建立的指令集架构,他的特点是不属于任何一家公司,完全开源,模块化设计。它很有可能成为中国芯片架构被“卡脖子”的出路。
④MIPS架构:采取RISC的处理器架构。
4、对于指令集架构发展的思考
CISC类和RISC类各有优缺点,在发展过程中,RISC在CISC后被提出并得到快速发展。Intel公司也曾经尝试RISC架构,但由于CISC架构已经被产品化、商业化,考虑到兼容性等等原因,Intel公司最终专注于CISC架构,但后来对其进行了一些精简化处理。
现如今CISC架构仍占据PC市场,Intel公司与Windows公司形成Wintel联盟达到垄断效果,而RISC架构主要占据移动端市场。但我认为值得一提的是,苹果公司的MacBook Air等笔记本电脑搭载的M1芯片是基于ARM架构的。