睿诚科技协会

RISC特点采用何种关键技术实现高效?

RISC 的核心特点

RISC(Reduced Instruction Set Computer)是一种计算机中央处理器的设计理念,其核心思想是“简单、高效”,与CISC(Complex Instruction Set Computer,复杂指令集计算机)相对,RISC的特点可以总结为以下几点:

RISC特点采用何种关键技术实现高效?-图1
(图片来源网络,侵删)

精简的指令集

  • 指令数量少:RISC只保留最基本、最常用的指令,通常少于100条,加法、减法、数据移动、逻辑运算等。
  • 指令长度固定:所有指令的长度都相同,这使得指令的译码和执行更加简单、快速,每条指令都是32位或64位长。
  • 指令功能简单:每条指令通常只完成一个最基本的操作,从内存加载数据到寄存器”或“将寄存器数据存入内存”。

寄存器数量多

  • RISC架构大量使用寄存器来进行运算,CPU直接操作寄存器比操作内存要快得多。
  • 它强调“Load/Store”架构:所有计算操作都必须在寄存器之间进行,如果需要用到内存中的数据,必须先用Load(加载)指令将其读入寄存器;计算完成后,如果需要保存结果,再用Store(存储)指令写回内存。
  • 这种模式使得指令执行速度更快,因为CPU可以长时间在高速的寄存器上工作,而不用频繁访问较慢的内存。

单周期执行

  • 理想情况下,RISC架构中的大多数简单指令都可以在一个时钟周期内完成。
  • 为了实现这一点,RISC采用了硬连线控制的方式,而不是CISC常用的微码,硬连线控制直接用硬件逻辑电路来控制指令的执行步骤,速度更快,延迟更低。

流水线技术

  • 这是RISC实现高性能的关键,流水线技术将一条指令的执行过程分解为多个独立的阶段(如:取指令、译码、执行、访存、写回)。
  • 这样,多条指令可以像工厂流水线一样,在不同的阶段被并行处理,虽然执行一条指令的总时间没有变,但CPU的吞吐率大大提高,平均每个时钟周期可以完成一条甚至多条指令。

延迟加载

  • 由于Load指令需要从内存加载数据,这通常比寄存器间运算慢得多,会成为流水线的“阻塞点”。
  • 延迟加载技术允许在Load指令之后的下一条或几条指令继续执行,即使它们需要用到Load的数据(编译器会智能地安排指令顺序,确保数据在真正需要时已经准备好),这减少了因内存访问慢而导致的等待时间。

优化编译器

  • RISC的简单指令集使得编译器(Compiler)扮演了至关重要的角色。
  • 编译器负责将高级语言(如C++)的复杂操作,翻译(编译)成一系列简单的RISC指令。
  • 编译器可以利用其全局视野,进行复杂的指令调度,将指令顺序重排以最大化流水线的效率,并充分利用CPU的内部资源。

RISC 采用的核心技术

为了实现上述特点,RISC架构采用了以下几项关键技术:

流水线技术

  • 作用:这是RISC性能的基石,通过指令执行的并行化,极大地提高了CPU的指令吞吐率。
  • 实现:将指令处理分为几个标准阶段(如5级流水线:取指、译码、执行、访存、写回),每个时钟周期,不同阶段的指令在流水线中向前推进。

超标量技术

  • 作用:在流水线的基础上进一步提升性能,它允许CPU在一个时钟周期内同时发射多条指令到不同的功能单元(如多个整数单元、浮点单元)进行并行处理。
  • 实现:CPU内部有多个并行的执行单元,以及复杂的乱序执行逻辑,由硬件动态地检查指令间的依赖关系,找出没有依赖关系的指令同时执行。

分支预测

  • 作用:消除程序中的“分支”(如if-else语句、循环)对流水线的破坏,分支会导致CPU不知道下一条该执行哪条指令,如果猜错,已经取入流水线的指令全部作废,造成巨大的性能损失。
  • 实现:硬件会维护一个分支历史表,通过分析过去的分支行为来预测下一次分支是“跳转”还是“不跳转”,如果预测正确,流水线可以无缝继续;如果预测错误,再进行“冲刷”。

Cache(高速缓存)技术

  • 作用:弥合CPU与主内存之间的巨大速度鸿沟,频繁访问的数据和指令被缓存在速度极快的SRAM中,减少对慢速DRAM的访问。
  • 实现:通常采用多级缓存结构:
    • L1 Cache:一级缓存,分为数据缓存和指令缓存,每个CPU核心独有,速度最快。
    • L2 Cache:二级缓存,可以每个核心独有,或者几个核心共享,速度次之。
    • L3 Cache:三级缓存,通常由所有核心共享,容量更大。

Load/Store 架构

  • 作用:简化指令集和CPU内部数据通路,所有运算都在寄存器之间进行,避免了内存访问指令对执行单元的复杂要求。
  • 实现:指令集中只有Load(从内存到寄存器)和Store(从寄存器到内存)两条指令与内存交互,其他所有算术和逻辑指令都只操作寄存器。

寄存器窗口技术

  • 作用:优化过程/函数调用的开销,在函数调用时,参数传递和局部变量的管理需要频繁访问内存,这很慢。
  • 实现:CPU为每个过程分配一个物理寄存器“窗口”,当调用一个新函数时,物理寄存器窗口会重叠一部分,这部分重叠区域就用于传递参数和返回值,完全不需要访问内存,这极大地加快了函数调用的速度,现代ARM处理器中,虽然不采用严格的寄存器窗口,但其大量通用寄存器的设计也起到了类似的作用。

特点 采用的技术 目的
精简指令集 硬连线控制、Load/Store架构 简化硬件译码,提高单条指令执行速度
多寄存器 Load/Store架构 减少对慢速内存的访问,提升运算速度
高性能 流水线、超标量技术 通过并行处理大幅提高指令吞吐率
克服瓶颈 分支预测、Cache技术 减少因分支错误和内存访问慢导致的流水线停顿
高效调用 寄存器窗口(现代演变为大量寄存器) 加速函数调用过程中的参数传递

RISC并非简单地“减少指令”,而是一套完整的设计哲学,它通过“软件(编译器)做复杂事,硬件(CPU)做简单事”的方式,将复杂性从硬件转移到了软件上,从而可以用更简单、更规整的硬件设计,在更高频率下实现极高的性能和能效比,这正是现代移动设备(如手机、平板)的处理器(如ARM)和服务器、高性能计算领域(如RISC-V, Apple Silicon)广泛采用RISC架构的原因。

RISC特点采用何种关键技术实现高效?-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇