← 返回笔记列表

1.计算机体系结构cpu架构和指令集

2026-03-10
计组汇编

转自喜欢的blog和jzstudio以及多一些其他的内容补充和自己查询内容更改后的正确理解
最近学习计算机系统基础,了解到指令集体系结构.
对CPU架构,指令集和指令集体系结构的关系不清楚,特此记录.


笔记图片


指令集体系结构(ISA)包括 指令集,指令集编码,基本数据类型等.
CPU架构 实现了 指令集
------------------------------------------------------------------------------------------------------------------分割线------------------------------------------------------------------------------------------------------------------
下文转自http://blog.csdn.net/u010297957/article/details/49950643
作者:有且仅有
1. 指令集体系结构(Instruction-Set Architecture, ISA)
1.1 定义
一个处理器支持的指令和指令的字节级编码就是这个处理器的ISA,包括很多个部分:
•指令集


•指令集编码


•基本数据类型


•一组编程规范


•寄存器


•寻址模式


•存储体系


•异常事件处理


•中断


•外部I/O


不同的处理器家族,例如Intel IA32,IBM/Freescale PowerPC和ARM,都有不同的ISA.维基百科 - Architecture list
1.2 作用
1.ISA在编译器编写者(CPU软件)和处理器设计人员(CPU硬件)之间提供了
一个抽象层:

◦处理器设计者
:依据ISA来设计处理器

1.定义处理器上的软件如何构建,这是ISA的最重要内涵,现代处理器都是支持高级语言编程,操作系统等等特性,ISA要定义出指令集内的指令是如何支撑起C语言里堆栈,过程调用,操作系统里异常,中断,多媒体平台里数字图像处理,3D加速等等.


1.3 TIPS
1.常见的一个误解的答案:
指令集并不存储于CPU中,应该这样说:CPU本身是指令集(结构)的一个实现/实例;

1.一个ISA可能包含多个指令集;


2. ISA与微体系结构
ISA只是描述了CPU应该支持的每条指令是做什么事的,即指令的功能.而微体系结构是描述处理器实际上是怎么实现的.
2.1 微体系结构
微体系结构是计算机体系结构中偏向硬件的部分,它可以理解成数字电路如何实现处理器中的各个功能,通常关心的内容包括,指令的流水线结构,计算单元的电路(加法器等等),存储器的结构(寄存器堆,Cache的结构)等等 ;
一个实例如下:
1. 拿Intel来说,(其ISA是IA-32等)其pentium 4处理器的微体系结构是NetBurst,现代,其Core(酷睿)系列CPU的微体系结构已经经历了好几代:Bloomfield(2008年),Lynnfield(2009年),Clarksfield(2009年),Ar randale(2010年),Gulftown(2010年),Sandy Bridge(2011年),Ivy Bridge(2012年),Haswell(2013年),Haswell Devil's Canyon(2014年),Broadwell(2015年),Skylake(2015年).
2. 拿ARM来说,(其ISA是ARMv7等)其微体系结构是ARM11等从11往后叫cortex系列,其中cortex-A系列有32位的A7,A9,A15,64位的A53,A57.
3. 指令集(Instruction set)
3.1 定义
通常会把CPU的扩展指令集称为"CPU的指令集"(因为基本的,类似加减的指令似乎是必须被CPU所支持的指令).每款CPU在设计时就规定了一系列与其硬件电路相配合的指令集.
指令集可分为复杂指令集(CISC:sisk)和精简指令集(RISC:risk)两部分,这部分暂不继续讨论了.
Intel的MMX(Multi Media Extended),SSE, SSE2(Streaming-Single instruction multiple data-Extensions 2),SEE3和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体,图形图象和Internet等的处理能力.维基百科 - Comparison instruction set
3.2 指令
一条二进制机器指令由:指令码(操作码)+操作数组成.
1.操作码用来说明:指令的功能和执行的操作;


1.操作数说明:操作所涉及的源和目的数据的位置;


•源:立即数(即指令中包含的常亮),寄存器,存储器,I/O端口等;


一个流程
一个我思考出来的可能的流程是这样:
CPU开发商
一个CPU厂商决定开发一个CPU,他们先要决定/选定一种指令集体系结构,他们当然不想自己开发,好了他们选用ARM的ARMv7;


CPU使用者(开发一个C编译器)



这颗CPU可以运行什么样的指令呢?发现使用CPU使用的是ARMv7,那么就查看ARMv7的文档就好了,这是RISC的一种