Instruction Set Architecture

来自osdev
Zhang3讨论 | 贡献2022年1月19日 (三) 02:04的版本 (创建页面,内容为“{{stub}} 本页旨在提供一些各种类型指令集的解释。 列出了从最简单到最复杂指令集的指令集类型。<br> 另见 Historical Notes on CISC and RISC。 == 丘奇-图灵的论文 == 艾伦·图灵 (1912-1954) 在计算机科学的早期具有很高的影响力。 Church-Turing论文指出,任何可由人类计算的算法 (没有时间和内存限制,也没有故障) 都可以由“图灵机”计算。<br> 要实现“图…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

This article is a stub! 此页面或段落为 草稿。 你可以通过更精确的编辑贡献 来帮助本wiki。

本页旨在提供一些各种类型指令集的解释。 列出了从最简单到最复杂指令集的指令集类型。
另见 Historical Notes on CISC and RISC

丘奇-图灵的论文

艾伦·图灵 (1912-1954) 在计算机科学的早期具有很高的影响力。 Church-Turing论文指出,任何可由人类计算的算法 (没有时间和内存限制,也没有故障) 都可以由“图灵机”计算。
要实现“图灵完备”,一台机器必须能够加载数据,根据一组规则对数据进行更改,然后再将数据进行存储。 加载和存储值是不言自明的,有趣的部分是处理。
常见算法:

  • 逻辑运算: 可能不会注意到,但是例如大脑在日常挑战中使用的决策是一种简单的状态机,每个状态机都可以用逻辑运算表示。
  • 比较运算: 这个红色比这个亮吗?答: 是或否。 请考虑上面的示例。 比较是通过加法、减法(这里更确切地说是减法)来实现的。 比较运算可以通过逻辑运算实现。
  • 乘法/除法运算: 使用f.e.在施加权重的情况下。 可以通过加法和减法实现,加法可以通过逻辑运算来实现,因此...
  • 并集/差集运算: 任何物理定律都可以通过使用并集和差集来描述实现。 可以通过乘法、除法(这里更确切地说是除法)来实现,而这都可以通过算术和逻辑函数来实现。

您可能已经注意到,所有内容都可以通过逻辑运算实现。 这很重要: 能够执行任何逻辑运算意味着具有Church-Turing能力。

确切地说,只需要具有两个输入和一个输出的单个逻辑运算能力,例如 NAND。 也可以找到其他 “完整” 逻辑运算函数集,但NAND是最常见的。

任何指令集体系结构 (ISA) 都是具有Church-Turing能力的。

= 弗林(Flynn)的瓶颈和费舍尔(Fisher)的乐观 =

1970年,M. J.弗林 (* 1934) 发现一个非常有趣的事实: 如果每个周期仅获取 (加载) 一条指令,则每个周期将永远不会获得多条已执行指令。 (这对每个物理ALU都有效。)
J.A. Fisher (* 1946) 在1984年认为,数组 (打包) 数据结构可以实现每个周期更多的执行指令。
当谈到RISC/CISC的问题/优势时,这将变得很重要。

单指令集

所谓的终极精简指令集计算机 (URISC) 或单指令集计算机 (OISC) 仅由一条指令编程。 该指令必须能够决定、移动数据、计算和跳转到指令流中的不同目标。 通常这些这只有在复杂的指令下才有可能。

由该指令集架构编程的计算机的应用程序会具有冗长的程序,因此该指令架构仅具有理论意义。 有关更多信息,请参阅wikipedia上的 单指令集计算机

最小指令集 Minimal Instruction Set

它由少于32条指令定义 (不能真正区分MISC和RISC)。大多数情况下,misc是堆栈机器。 由于缺少安全功能和冗长的程序,此指令集架构也不再使用,但对它的说明包含在了更复杂的指令集架构中。 有关更多信息,请参阅 最小指令集计算机。 这类指令集已在一些早期的计算机如 ENIAC 上使用。

精简指令集 Reduced Instruction Set

RISC提供快速和简单的基本指令,例如条件跳跃、逻辑函数、加法/减法、乘法/除法等。 它的执行环境很简单,因为RISC不能提供复杂的指令。 这可能会导致安全问题。 通常,Flynn的瓶颈适用是因为数据不能在高级结构中处理,因为指令集架构必须是简单的定义。 RISC 指令集的实用例子包括以前的 ARM MIPS 时代。

复杂指令集

CISC实现化了简单和额外的复杂指令。 它主要带有不同的执行环境和安全功能。 特别是像SSE(Streaming SIMD Extensions,单指令多数据流扩展)这样的流水线扩展设计必须要点名提出来。 它是当今单纯的RISC处理器几乎消失的原因。 Flynn瓶颈问题仍适用,但是通过使用流水线扩展,减少其影响力并CPU转向Fisher乐观的机会就会很快增加。 另外其他高级功能还可能会起到减少内存访问的好处,内存访问会导致CPU中的空闲时间。 显然,CISC体系结构的优势在于它们的功能,但这种复杂性也是一个缺点,并且可能导致它需要处理严重的安全问题。 CISC体系结构,例如 M68K6502,在计算的早期很常见,当时优化编译器技术还并不先进。 还有一个仍在使用的CISC架构是x86 (包括x86_64)。

混合指令集

现代cpu建立在混合RISC-CISC架构之上。 RISC处理器可以更轻松地构建,有更快的节奏时钟,但是缺少CISC的高级指令。 为了两全其美,我们建造了一种混合架构。 RISC用作ALU,并由CISC环境包裹。 任何指令均由此CISC解释,并被拆分为一个或多个子指令,称为RISC的 “微操作码(micro-opcodes)”。 此外,CISC包装提供了安全性以及操作系统的稳定性和控制性。 如今,只有微控制器还使用纯RISC; 任何其他CPU或多或少都是混合RISC-CISC CPU。