指令集和指令集架构 (ISA) 之间有什么区别?
What is the difference between Instruction Set and Instruction Set Architecture (ISA)?
我无法理解指令集和指令集架构之间的区别。
我知道什么是指令集。
指令集只是定义了我们可以给处理器的可能指令以及指令如何(因此是指令格式)给处理器。
现在什么是指令集架构?
我查了维基百科,它有一个关于指令集的页面,在里面,第一行有一个 link 到指令集体系结构,它重定向到计算机体系结构。
那么指令集架构和计算机架构一样吗?
谁能解释一下IS和ISA之间的具体区别,以便我了解什么是ISA以及ISA向指令集添加了什么。
"Instruction Set" 是特定 CPU 实际支持的指令集。
"Instruction Set Architecture" 是 CPU(实现该 ISA)可能支持或不支持的指令集。
例如,“80x86 ISA”包括各种扩展(64 位、SSE、AVX 等);但对于旧的 80486(实现“80x86 ISA”),指令集不支持 64 位、SSE、AVX 等
不是真正的计算机架构,因为计算机涉及外围设备和 PCB,也许还有机箱、按钮、连接器等。
指令集架构就是架构,事物的外观。就像建筑物的结构一样。指令集是实现该体系结构的指令集。 (正如 Brendan 所指出的,您可以拥有多个实现相同架构的集合)。一个很好的例子是 ARM,ARMv7-m 定义了 cortex-m(产品系列的营销名称)内核的 some/most 架构。 cortex-m3、cortex-m4、cortex-m7 符合 ARMv7-m 架构,ARMv7-m 架构参考手册中定义了该架构。但这些是不同的核心,它们可能是从头开始完全重写的,它们可能有不同深度的管道,一个可能有缓存 and/or fpu 而另一个没有。在这种情况下,存在由它们都符合的体系结构定义的指令集(在这种情况下,fpu 是一个例外,并且未在体系结构中定义)。
建筑师可能会为麦当劳设计建筑或建筑指南,当您开车经过该建筑时,不看徽标就知道它是麦当劳、温迪斯或必胜客。但并非所有这些建筑物都是由同一个施工人员使用来自同一工厂的木材或来自同一供应商的油漆等建造的。指令集架构定义了架构,可能指令集定义了它实现的机器代码,但特定的芯片或为符合该架构而制作的核心可能不是完全相同的,从表面上看,架构看起来是一样的,它看起来像塔可钟,但它可能与下一个城镇的塔可钟不同,你仍然可以买到炸玉米饼当您使用该设施时,味道几乎相同。就机器 code/instruction 集而言,同一体系结构的两个不同内核在外观和感觉上都相同,炸玉米饼的味道也相同。但实施方式可能不同(他们可能将西红柿放在酸奶油之前而不是之后)。
好、坏或其他方面,这两个术语通常可以互换使用,表示同一事物(指令集,可能是所讨论事物的机器代码指令)。
这两个术语可以互换。
这篇文章在同一句话中同时使用了指令集架构和指令。
https://en.wikipedia.org/wiki/Instruction_set_architecture
An instruction set architecture is distinguished from a microarchitecture, which is the set of processor design techniques used, in a particular processor, to implement the instruction set. Processors with different microarchitectures can share a common instruction set. For example, the Intel Pentium and the Advanced Micro Devices Athlon implement nearly identical versions of the x86 instruction set, but have radically different internal designs.
本文解释RISC-V的另一个例子:https://digitalassets.lib.berkeley.edu/techreports/ucb/text/EECS-2016-1.pdf
本文的大部分内容使用指令集体系结构或 ISA,但第 2 章的标题是“为什么要开发新的指令集?”。后面是这段话:
Of equal importance is the massive complexity of the popular commercial instruction
sets. They are quite difficult to fully implement in hardware, and yet there is little incentive
to create simpler subset ISAs
您再次看到指令集和指令集架构 (ISA) 可以互换使用。
指令集架构/指令集最好被认为是“接口”。符合该接口的机器代码将 运行 在任何实现该接口的 CPU 上(不管 CPU 的 microarchitecture/implementation 细节)。
这包括 更多 而不仅仅是一组说明。构成指令的字节必须与操作数和其他参数一起正确定位。寄存器的数量和大小以及机器代码必须符合的其他细节(例如内存对齐和字节顺序)很重要,以便 运行 在 CPU 上正确。上面的 RISC-V 论文是进一步阅读该主题的重要参考。
我无法理解指令集和指令集架构之间的区别。
我知道什么是指令集。 指令集只是定义了我们可以给处理器的可能指令以及指令如何(因此是指令格式)给处理器。
现在什么是指令集架构?
我查了维基百科,它有一个关于指令集的页面,在里面,第一行有一个 link 到指令集体系结构,它重定向到计算机体系结构。
那么指令集架构和计算机架构一样吗?
谁能解释一下IS和ISA之间的具体区别,以便我了解什么是ISA以及ISA向指令集添加了什么。
"Instruction Set" 是特定 CPU 实际支持的指令集。
"Instruction Set Architecture" 是 CPU(实现该 ISA)可能支持或不支持的指令集。
例如,“80x86 ISA”包括各种扩展(64 位、SSE、AVX 等);但对于旧的 80486(实现“80x86 ISA”),指令集不支持 64 位、SSE、AVX 等
不是真正的计算机架构,因为计算机涉及外围设备和 PCB,也许还有机箱、按钮、连接器等。
指令集架构就是架构,事物的外观。就像建筑物的结构一样。指令集是实现该体系结构的指令集。 (正如 Brendan 所指出的,您可以拥有多个实现相同架构的集合)。一个很好的例子是 ARM,ARMv7-m 定义了 cortex-m(产品系列的营销名称)内核的 some/most 架构。 cortex-m3、cortex-m4、cortex-m7 符合 ARMv7-m 架构,ARMv7-m 架构参考手册中定义了该架构。但这些是不同的核心,它们可能是从头开始完全重写的,它们可能有不同深度的管道,一个可能有缓存 and/or fpu 而另一个没有。在这种情况下,存在由它们都符合的体系结构定义的指令集(在这种情况下,fpu 是一个例外,并且未在体系结构中定义)。
建筑师可能会为麦当劳设计建筑或建筑指南,当您开车经过该建筑时,不看徽标就知道它是麦当劳、温迪斯或必胜客。但并非所有这些建筑物都是由同一个施工人员使用来自同一工厂的木材或来自同一供应商的油漆等建造的。指令集架构定义了架构,可能指令集定义了它实现的机器代码,但特定的芯片或为符合该架构而制作的核心可能不是完全相同的,从表面上看,架构看起来是一样的,它看起来像塔可钟,但它可能与下一个城镇的塔可钟不同,你仍然可以买到炸玉米饼当您使用该设施时,味道几乎相同。就机器 code/instruction 集而言,同一体系结构的两个不同内核在外观和感觉上都相同,炸玉米饼的味道也相同。但实施方式可能不同(他们可能将西红柿放在酸奶油之前而不是之后)。
好、坏或其他方面,这两个术语通常可以互换使用,表示同一事物(指令集,可能是所讨论事物的机器代码指令)。
这两个术语可以互换。
这篇文章在同一句话中同时使用了指令集架构和指令。
https://en.wikipedia.org/wiki/Instruction_set_architecture
An instruction set architecture is distinguished from a microarchitecture, which is the set of processor design techniques used, in a particular processor, to implement the instruction set. Processors with different microarchitectures can share a common instruction set. For example, the Intel Pentium and the Advanced Micro Devices Athlon implement nearly identical versions of the x86 instruction set, but have radically different internal designs.
本文解释RISC-V的另一个例子:https://digitalassets.lib.berkeley.edu/techreports/ucb/text/EECS-2016-1.pdf
本文的大部分内容使用指令集体系结构或 ISA,但第 2 章的标题是“为什么要开发新的指令集?”。后面是这段话:
Of equal importance is the massive complexity of the popular commercial instruction sets. They are quite difficult to fully implement in hardware, and yet there is little incentive to create simpler subset ISAs
您再次看到指令集和指令集架构 (ISA) 可以互换使用。
指令集架构/指令集最好被认为是“接口”。符合该接口的机器代码将 运行 在任何实现该接口的 CPU 上(不管 CPU 的 microarchitecture/implementation 细节)。
这包括 更多 而不仅仅是一组说明。构成指令的字节必须与操作数和其他参数一起正确定位。寄存器的数量和大小以及机器代码必须符合的其他细节(例如内存对齐和字节顺序)很重要,以便 运行 在 CPU 上正确。上面的 RISC-V 论文是进一步阅读该主题的重要参考。