我无法理解指令集和指令集架构之间的区别。
我知道什么是指令集。指令集只定义了我们可以给处理器的可能指令,以及指令是如何给处理器的(因此指令格式)。
现在指令集体系结构是什么?
我查过维基百科,它在指令集上有一个页面,在第一行有一个指向指令集架构的链接,它重定向到计算机体系结构。
那么指令集架构和计算机体系结构是一样的吗?
请有人解释一下IS和ISA之间的具体区别,这样我就可以理解ISA是什么,以及ISA为指令集添加了什么。。
发布于 2017-04-08 12:51:15
并不是真正的计算机体系结构,因为计算机涉及外围设备和PCB,也许还包括底盘、按钮、连接器等。
指令集体系结构是指事物的结构、外观和感觉。就像建筑物的建筑一样。指令集是实现该体系结构的一组指令。(正如Brendan所指出的,您可以拥有多个实现相同架构的集合)。一个很好的例子是ARM,ARMv7-m定义了一些/大部分皮质-m(产品族的营销名称)核心的体系结构。皮质-m3,皮质-M4,皮质-M7符合ARMv7-m结构,这是在ARMv7-m的ARM建筑参考手册中定义的。但它们是不同的核心,它们可能是从头开始完全重写的,它们可能有不同的深度管道,一个可能有一个缓存和/或fpu,而另一个则没有。在这种情况下,有一个由它们都遵循的体系结构定义的指令集( fpu在这种情况下是一个例外,而不是在架构中定义的)。
建筑师可能会为McDonalds设计建筑或建筑指南,当你开车经过时,你会看到那座建筑,而不看标志,你就知道它是麦当劳、温迪或比萨饼小屋。但并不是所有的建筑都是由同样的建筑工人用来自同一家工厂的木材或来自同一供应商的油漆等建造的。指令集架构定义了体系结构,可能是指令集它实现的机器代码,但为符合该架构而制作的特定芯片或核心可能不是完全相同的,表面上建筑看起来和塔可钟一样,但它的建造方式可能不同于隔壁城镇的塔可钟( Taco Bell ),当你使用该设施时,你仍然可以买到味道差不多的玉米饼。就机器代码/指令集而言,从相同的体系结构中编程两个不同的核心,外观和感觉是一样的,玉米饼的味道也是一样的。但实施方式可能有所不同(他们可能会把西红柿放在酸奶油之前,而不是之后)。
好的,坏的,或者其他的,这两个术语经常被互换地用来表示相同的东西(指令集,可能的机器代码指令被谈论的东西)。
发布于 2017-04-08 12:31:03
“指令集”是特定CPU实际支持的指令集。
“指令集体系结构”是CPU (实现ISA)可能支持或不支持的一组指令。
例如,"80x86 ISA“包含各种扩展(64位、SSE、AVX等);但是对于旧的80486 (实现”80x86ISA“),指令集不支持64位、SSE、AVX等。
发布于 2021-07-01 05:54:26
这两个术语是可以互换的。
这篇文章在同一个句子中使用指令集结构和指令。
将指令集体系结构与微体系结构区分开来,后者是在特定处理器中用于实现指令集的处理器设计技术的集合。具有不同微体系结构的处理器可以共享公共指令集。例如,internal和实现了几乎相同版本的x86指令集,但内部设计完全不同。
另一个例子是在本文中解释RISC-V:https://digitalassets.lib.berkeley.edu/techreports/ucb/text/EECS-2016-1.pdf。
大部分论文使用指令集体系结构或ISA,但是第二章的标题是“为什么要开发一个新指令集?”接着是这一段:
同样重要的是,流行的商业指令集具有巨大的复杂性。它们很难在硬件上完全实现,但是创建更简单的子集ISAs的动机却很小。
同样,您可以看到指令集和指令集体系结构(ISA)可以互换使用。
指令集体系结构/指令集被认为是“接口”。符合该接口的机器代码将在实现该接口的任何CPU上运行(不管该CPU的微体系结构/实现细节如何)。
这不仅包括一组指令。构成指令的字节必须与操作数和其他参数一起正确定位。寄存器的数量和大小很重要,以及其他细节,如内存对齐和机器代码必须遵循的endianness,才能在CPU上正确运行。上述RISC-V论文为进一步阅读这一课题提供了很好的参考。
https://stackoverflow.com/questions/43293943
复制相似问题