assembly - 指令集和指令集架构(ISA)有什么区别?

标签 assembly computer-science cpu-architecture instruction-set

我无法理解指令集和指令集架构之间的区别。

我知道什么是 指令集 .
指令集只是定义了我们可以给处理器的可能指令,以及指令是如何给处理器的(因此是指令格式)。

现在是指令集架构 ?

我查了维基百科,它有一个关于指令集的页面,在里面,第一行有一个指向指令集架构的链接,它重定向到计算机架构。

那么指令集架构与计算机架构相同吗?

请有人解释一下 IS 和 ISA 之间的具体区别,以便我了解什么是 ISA 以及 ISA 将什么添加到指令集中。

最佳答案

不是真正的计算机架构,因为计算机涉及外围设备和 PCB,可能还有机箱、按钮、连接器等。

指令集架构是架构,事物的外观和感觉。就像建筑物的结构一样。指令集是实现该架构的指令集。 (正如 Brendan 指出的那样,您可以拥有多个实现相同架构的集合)。一个很好的例子是 ARM,ARMv7-m 定义了一些/大部分 cortex-m(产品系列的营销名称)内核的架构。 cortex-m3、cortex-m4、cortex-m7 符合 ARMv7-m 架构,该架构在 ARM v7-m 的 ARM 架构引用手册中定义。但是这些是不同的内核,它们可能是从头开始完全重写,它们可能有不同深度的管道,一个可能有缓存和/或 fpu,而另一个没有。在这种情况下,有一个由架构定义的指令集,它们都符合(fpu 在这种情况下是一个异常(exception),并且没有在架构中定义)。

建筑师可能会为麦当劳设计建筑物或建筑指南,当您开车经过时,您会看到该建筑物,而无需查看 Logo ,您就知道它是麦当劳或温迪或必胜客。但并非所有这些建筑物都是由同一施 worker 员使用来自同一工厂的木材或来自同一供应商的油漆等 build 的。指令集架构定义了架构,并且可能指令集定义了它实现的机器代码,但特定的芯片或为符合该架构而制造的核心可能不会完全相同,从表面上看,架构看起来相同,它看起来像一个 Taco Bell,但它可能与隔壁城镇的 Taco Bell 不同,你仍然可以购买 tacos当您使用该设施时,味道几乎相同。就机器代码/指令集而言,对来自同一架构的两个不同内核进行编程的外观和感觉是相同的,炸 Jade 米饼的味道是一样的。但是实现可能会有所不同(他们可能会将西红柿放在酸奶油之前而不是之后)。

好、坏或其他,这两个术语经常互换使用,表示同一事物(指令集,可能是正在谈论的事物的机器代码指令)。

关于assembly - 指令集和指令集架构(ISA)有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43293943/

相关文章:

math - 在计算机科学中,什么不是正式语言?

c - 汇编 - 如何找到一个函数为自己分配了多少堆栈空间

assembly - GNU 汇编指令 .code16 的用途是什么?

compression - 编码 0 到 64 之间的 2 个位置的最有效方法?

memory-management - 如何用高级语言编写操作系统?

caching - 为什么 mem_load_retired.l1_hit 和 mem_load_retired.l1_miss 没有添加到加载总数中?

java - 线性搜索和反向线性搜索的执行时间不同

cpu - 如果 CPU 一直在执行指令,我们如何衡量它的工作量?

c - volatile 指令的执行

c - 如何在单步执行断点后显示 pwndbg 或 GEF 菜单,但不再次单步执行?