指令集架构知识汇总
发布网友
发布时间:2024-10-08 23:20
我来回答
共1个回答
热心网友
时间:2024-11-04 19:05
指令集架构(ISA)定义了计算机体系结构中与程序设计相关部分,包括基本数据类型、指令集、寄存器、寻址模式、存储体系、中断、异常处理以及外部输入输出。ISA与微架构不同,微架构指的是执行指令集的微处理器设计方法,允许不同微架构的处理器共享相同的ISA。例如,Intel的Pentium与AMD的AMD Athlon处理器,尽管在内部设计上存在差异,但都属于x86的ISA。
指令集架构的分类反映了不同设计哲学的融合。早期的RISC与CISC在竞争过程中相互学习,现在的RISC指令集规模已达到数百条,并且运行周期不再固定。x86指令集,通常被认为是Intel开发的32位指令集,兼容16位指令,至今仍在使用。它属于CISC指令集,早期Intel与AMD生产的CPU都支持这种ISA,因此被称为x86架构。Intel官方将其称作IA-32,有时也称为i386。
当CPU向64位发展时,有两种主要途径:向下兼容x86的AMD64与不兼容x86的IA-64。AMD选择了向下兼容x86的途径,设计了AMD64指令集,并生产了相应的CPU,市场反响良好。Intel则选择了一种全新的64位指令集,不兼容x86,称为IA-64。由于缺乏支持Windows的编译器与兼容性,反响不佳。后来,Intel决定支持AMD64的指令集,称为x86-64(x86_64),表示这是x86指令集的64位扩展,与AMD64指令集基本相同。
x86与x86_64在位数上有主要区别。x86与x86_64体系结构的CPU在64位CPU上运行32位软件时,都做了兼容处理,没有问题。例如,希望安装Anaconda时,可以发现Windows操作系统下有x86与x86_64格式的安装包,两个版本都可成功安装并运行,因为x86_64兼容32位指令,能够执行32位软件。有时安装包名称的后缀为amd64,但使用的是x86_64架构的Intel处理器,也可以运行,因为amd64与x86_64实际上代表同一指令集。
ARM公司通过知识产权授权模式提供高性能、低成本、低功耗的RISC微处理器技术给合作伙伴。ARM架构属于RISC架构,其历史演变从ARMv7开始出现分支,分为不同的系列,如A系列用于服务器的ARM架构芯片。华为泰山服务器使用的海思Kunpeng 920处理器即基于ARMv8-A设计的服务器处理器芯片。ARM架构的指令集架构与执行模式在ARMv8之前存在两种形式,即基于Thumb指令集的Thumb-2指令集与T32指令集。ARMv8架构引入了两种不同的执行模式。