📜  微架构和指令集架构

📅  最后修改于: 2021-06-28 17:04:34             🧑  作者: Mango

在本文中,我们将了解什么是指令集体系结构(ISA)以及ISA微体系结构之间的区别。从程序员的角度来看,ISA被定义为计算机的设计。

从根本上讲,这意味着ISA按照其必须支持的基本操作来描述计算机的设计。 ISA与计算机的实现特定细节无关。它仅与计算机必须支持的基本操作的设置或集合有关。例如,AMD Athlon和Core 2 Duo处理器具有完全不同的实现,但是它们或多或少地支持与x86指令集中定义的相同的基本操作集。

让我们通过以MIPS ISA为例来理解ISA的目标。由于其简单性,MIPS是教育中使用最广泛的ISA之一。

  1. ISA定义了处理器支持的指令类型。
    根据他们执行的操作类型,MIPS指令分为3种类型:
    • 算术/逻辑指令:
      这些指令对一个或多个操作数执行各种算术和逻辑运算。
    • 数据传输说明:
      这些指令负责将指令从内存传输到处理器寄存器,反之亦然。
    • 跳转跳转指令:
      这些指令负责中断指令的顺序流,并跳转到其他各个位置的指令,这对于实现功能条件语句是必需的。
  2. ISA定义了每种指令的最大长度。

    由于MIPS是32位ISA,因此每条指令必须容纳在32位之内。

  3. ISA定义每种指令类型的指令格式。
    指令格式决定了如何在32位内对整个指令进行编码
    MIPS ISA中有3种指令格式:
    • R指令格式
    • 指令格式
    • J指令格式

    上述每种指令格式具有不同的指令编码方案,因此需要由处理器来不同地解释。

如果我们看一下抽象层次结构:


图–抽象层次结构

我们注意到,微体系结构级别仅低于ISA级别,因此与ISA定义的计算机要支持的基本操作的实现有关。因此,可以说AMD Athlon和Core 2 Duo处理器基于相同的ISA,但是具有不同的微体系结构,它们具有不同的性能和效率。

现在有人可能会问是否需要区分微体系结构ISA ?

对此的答案在于需要标准化和维护基于同一ISA的跨不同硬件实现的程序的兼容性。使不同的机器与同一组基本指令(ISA)兼容,可以使同一程序在许多不同的机器上流畅运行,从而使程序员更容易同时有效地记录和维护许多不同的机器的代码。

这种灵活性是我们首先定义ISA,然后设计符合此ISA的不同微体系结构以实现计算机的原因。 ISA的设计是计算机体系结构研究的主要任务之一。

Instruction Set Architecture Microarchitecture
The ISA is responsible for defining the set of instructions to be supported by the processor. For example, some of the instructions defined by the ARMv7 ISA are given below. The Microarchitecture is more concerned with the lower level implementation of how the instructions are going to be executed and deals with concepts like Instruction Pipelining, Branch Prediction, Out of Order Execution.
The Branch of Computer Architecture is more inclined towards the Analysis and Design of Instruction Set Architecture.For Example, Intel developed the x86 architecture, ARM developed the ARM architecture, & AMD developed the amd64 architecture. The RISC-V ISA developed by UC Berkeley is an example of a Open Source ISA. On the other hand the Branch of Computer Organization is concerned with the implementation of a particular ISA deals with various hardware implementation techniques, i.e. is the Microarchitecture level. For Example, ARM licenses other companies like Qualcomm, Apple for using it ARM ISA, but each of these companies have their own implementations of this ISA thereby making them different in performance and power efficiency. The Krait cores developed by Qualcomm have a different microarchitecture and the Apple A-series processors have a different microarchitecture.

x86由Intel开发,但是我们看到几乎每年Intel都会推出新一代i系列处理器。在所有这些世代中,大多数英特尔处理器所基于的x86架构基本上保持不变,但是底层的微架构却有所不同。它们的实现方式不同,因此据称具有改进的性能。英特尔开发的各种微体系结构的代号为“ Nehalem”,“ Sandybridge”,“ Ivybridge”等。

因此,总而言之,我们可以说不同的机器可能基于相同的ISA,但是具有不同的微体系结构。