Advertisement

从CISC到RISC-V:揭开指令集的面纱

阅读量:

在大多数同学眼中,计算机或智能手机仿佛具有魔力般令人惊叹.你或许已经知道它们内部由一系列精密的电子部件构成,但你是否想过这些部件是如何协作工作的?它们如何让我们能够在电脑上输入文字或者在手机上观看视频?实际上这一切都归功于被称为'指令集'的一种特殊语言.今天我们将一同探索这种特殊语言的本质.

指令集充当了计算机硬件与软件之间的重要桥梁作用,在具体实现上它明确了计算机硬件可执行的各种操作类型,并通过不同的指令集合体系实现了对数据处理过程的完整描述。其中常见的指令集体系包括CISC架构、RISC架构以及RISC-V架构等多种设计思路,在实际应用中各有千秋地满足了不同场景下的计算需求。这些不同的指令体系本质上反映了现代CPU设计的核心理念与技术路线选择,并且它们共同构成了当前计算机系统发展的重要理论基础与技术支撑。今天我想带领大家深入理解这些核心概念及其重要性

CISC

首先讨论CISC(复杂指令集计算机)。若将计算机类比于一个工厂,则CISC型计算机配备多种先进设备的大型工厂。每台设备均负责执行特定领域的复杂任务。其中x86处理器通常属于CISC体系。

CISC指令集的设计目标是最大可能地提高硬件的性能。为了提升性能,CISC指令集的主要功能主要通过 hardware电路实现 various instructions.

CISC 指令集的一个显著特点是 instruction lengths vary significantly: due to the limited memory capacity at that time, we adopted a method to maximize storage efficiency by storing as many instructions as possible; consequently, the commonly used instructions are short, while less frequently used or complex instructions are longer in length. This is akin to the various sizes of machinery found in our large factories.

然而,随着技术的发展,CISC开始面临一些挑战和问题:

  • 效率问题:由于CISC指令集具有较高的复杂度,在实际应用中存在许多未曾充分利用的指令条目。尽管这些指令在设计时考虑了兼容性需求而被包含在内,在运行时并不常见甚至很少被调用使用;然而这对处理器来说依然是一种负担——不仅浪费了宝贵的硅片空间(die area),也使得处理器的设计变得更加复杂化;最终会导致CPU性能下降以及效率降低。
    这就好比大工厂里的各种大小不一的机器设备都需要不同规格的人才去维护、协调生产计划一样。
  • 热量问题:由于CISC指令集本身具有较高的复杂度,在执行这些指令的过程中处理器必须投入更多的硬件资源;这不仅提升了处理器的能耗(power consumption),也会产生大量的热量;为了保证处理器能够稳定运行就必须配备更好的散热设备(heating dissipation system)。
  • 编译器优化问题:由于CISC指令集本身的高复杂度,在编译阶段就需要投入更多的计算资源以实现代码的有效优化;这使得整个编译过程耗时较长并且占用更多的系统资源(system resources)。
  • 可扩展性问题:在技术发展的推动下新的功能需求往往会被提出来要求加入新的指令条目到现有的 instruction set architecture 中去;然而就目前规模较大的 CISC 指令集中加入新的指令条目会面临极大的技术挑战——不仅要考虑到原有指令体系的支持能力还要考虑到新旧指令之间的兼容性以及对系统性能的影响。

因此,在减少能源消耗的同时提升处理速度并增强可扩展性的基础上,越来越多的现代处理器转而采用精简指令集计算机(RISC)设计。

RISC

随后

归因于人们发现CPU的大部分时间被少数简单的指令占据。另一方面,在内存容量增加的情况下,在软件层面能够实现更加复杂的功能,在硬件设计上相对更加简洁。通过这种方式来提高其吞吐量。

RISC指令简洁且固定长度,并由编译器负责将这些简单的指令组合起来支撑复杂的运算。这就好比将大规模工业转化为流水线作业模式,在这种模式下每个操作员专注于执行单一任务,并最终实现了高效的协作运作。

ARM 被广泛应用于移动设备领域,并作为 RISC 的延伸形式存在。然而,在这种体系中也整合了包括长指令、乱序执行以及多发射等多种技术特性。值得注意的是,并非仅仅是简单的 RISC 模型能够满足现代计算需求

如今除了 ARM 公司生产的芯片外,在智能手机领域中主要使用的还包括苹果公司的 M1 芯片、华为麒麟系列芯片、小米澎湃系列处理器以及飞腾 desktop 处理器等;这些设备均采用的是 ARM 指令集架构的技术方案。然而国产芯片面临的问题在于:即采用最新版本 V9 的指令集架构授权可能会遇到技术上的挑战。

随着时间的流逝,在参考RISC架构的基础上沿用这一优化策略后门道上Intel与AMD两大处理器制商也采用了微指令架构的设计理念。这种设计使得编译后的指令仍遵循原有的指令结构但在执行过程中的解码阶段则呈现出RISC风格的特点即每条微指令都被转换为较短的定长度操作码。通过将编译后的微指令存储到L0缓存中从而减少了对主缓存空间的竞争有效降低了整体系统的资源消耗。

RISC-V

最后让我们了解的是RISC-V。作为开源体系结构,RISC-V类似于运行在Linux上的中央处理器架构.由于其开源特性,所有人都能够方便地获取并定制这一技术.这不仅使其在全球范围内得到了广泛应用,同时也可以帮助我国解决芯片设计领域的技术瓶颈问题.未来很有可能成为主流使用的处理器架构.

RISC-V的技术特点主要包括以下几点:

  • 开放与自由:该技术完全开源,并且任何人都能够方便地获取源代码,并且能够随意修改以适应自己的需求。
  • 简单与高效:该技术借鉴了RISC架构的理念,并采用了一个简洁明了的指令集操作结构;其操作相对简便,并且显著提升了处理器的性能与效率。
  • 可扩展性:该技术具有良好的扩展性;开发者可以根据具体需求添加自定义指令以增强系统功能。

RISC-V正被世界各国越来越多的企业所采用。包括众多知名企业的如谷歌、阿里巴巴、华为以及中科院计算研究所等都在积极推动这一技术的发展与应用。例如:在人工智能领域的研究与技术创新方面取得了显著成果

  • 阿里巴巴旗下的平头哥半导体成功推出了一系列基于RISC-V架构的芯片,并涵盖玄铁系列处理器等产品。这些芯片在物联网和人工智能等多个领域有着广泛的运用。
  • 中科院计算所于2023年6月发布了第二代开源高性能RISC-V架构处理器"香山"。该处理器不仅性能超越ARM Cortex-A76,在先进制程工艺上也实现了突破——采用中芯国际先进的14纳米工艺制造,并将目标频率设定为2GHz。此外,在综合评价方面也表现出色——SPECCPU评分为10分/ GHz。此外"香山" processor还支持双通道DDR内存以及PCIe USB HDMI等多种接口配置。

此外,许多开源硬件项目,如Arduino、Raspberry Pi等,也在考虑采用RISC-V。

龙芯

除了以上提到的三大指令集之外,则不得不提及国产的龙芯技术,在当前众多信创项目的实践中已经被广泛采用。

我国自主研发的通用处理器品牌名为龙芯,该品牌最初是由中科院计算所承担设计任务。在产品开发初期,龙芯处理器采用的是基于MIPS架构(一种精简指令架构),然而受限于软件正版授权的问题,在后续版本中采用了自主设计的新指令架构并命名为龙芯指令。

龙芯处理器完全不依赖任何外部技术的支持,在设计上实现了高度的安全性和自主性。该处理器基于自主开发的LoongISA指令系统运行,并支持与MIPS兼容的操作指令。该 processor leverages multi-thread technology to achieve high performance. 该 processor能够并行处理多个操作. 该 processor在性能方面有显著提升.

2010年6月,《龙芯》公司正式设立并开始市场化运营这一战略举措旨在推动龙芯处理器的研发成果向产业化迈进。目前来看,在多个领域应用的《龙芯》处理器展现出持续增长的趋势;然而,在生态系统构建方面仍存在一定的制约因素影响了其发展进程

同时, 龙芯处理器持续进行性能与兼容性的提升, 为各类应用场景提供强大动力. �aken 对主流开发平台及广泛涵盖的编程语言均提供良好支持. 具体而言, 龙芯处理器可运行 Linux 操作系统, 并在该平台上进行软件开发与调试. 同时, 龙芯还具备 C/C++/Java/.NET/Go 等多种编程语言的支持, 这些语言均可在龙芯平台上完成相应的编程与开发工作. 此外, 龙芯还配备了功能强大的开发者工具包, 包括 GCC 编译器及 GDB 调试器等辅助软件, 以助力开发者顺利完成软件项目的构建与调试.


通过深入研究这些指令集的特性及其发展历程,我们可以从中获得某些启发,并可能为我们的芯片设计提供了一定的参考价值。

  • 在生态领域方面,CISC并未随着RISC的兴起而消失,反而依然兴盛.这是因为x86架构的产品大量推出,并得到了多种系统及应用软件的支持,这说明生态表现良好.
    • 在创新方面,ARM成功占据了移动设备市场.由于手机的出现带来了对原有架构的挑战以及新的机遇.其低功耗设计非常适合便携设备使用,并且其指令集授权策略获得了相关厂商的认可.

总体而言,不同指令体系各自具有各自的优缺点,并且它们的诞生也是为了更好地满足人类计算需求的目的。掌握这些指令体系的基本原理与特点对于深入理解计算机的工作机制具有重要意义。

全部评论 (0)

还没有任何评论哟~