RISC和CISC嵌入式架构的区别是什么

嵌入式技术

1368人已加入

描述

嵌入式系统是市场上大多数电子产品的心脏和核心。这是硬件与软件相结合的工程实施。我们被嵌入式系统的世界所包围,在生物识别门锁、飞机、汽车、心脏起搏器等方面都有微型计算机。这些资源受限、小巧、智能且功能强大的系统帮助我们完成日常任务。

曾经想过我们的身体如何运作、神经系统、大脑和多任务处理能力。如果将所有这些功能结合起来,您将大致了解生物嵌入式系统。我们的大脑隐藏了其内部发生的复杂功能细节,但仍允许我们将其控制到最大潜力。嵌入式系统中使用的处理器或控制器也有同样的复杂性。它们隐藏了复杂的细节,并为我们提供了一个高级界面来处理。对于抽象级别,可以将高级编程语言中用于添加两个数字的代码如何导致芯片中的寄存器处理位并将输出返回给用户的方式联系起来。

处理器架构

中央处理单元,指微处理器和微控制器,在控制单元 (CU) 和算术逻辑单元 (ALU)的帮助下执行特定任务。由于指令是从 RAM 传递的,CPU 在其两个帮助单元的帮助下通过创建变量并为其分配值和内存来进行操作。了解 CPU 在其架构的帮助下如何执行所有这些操作非常重要。如果您想了解有关微控制器工作原理的更多信息,可以阅读这篇微控制器基础文章。

RISC

每个 CPU 都有一个与之关联的内存来存储程序和数据。程序和数据与 CPU 一起工作以获得输出。程序提供指令,而数据提供要处理的信息。为了访问程序和数据 CPU 使用总线,这些总线是电线,更准确地说,这些是您可能在印刷电路板上看到的电线迹线。这些年来,微控制器和微处理器通过适应各种架构而发展,基于应用或设计要求,微控制器的选择受其中使用的架构类型的影响。让我们来看看流行的架构。

冯诺依曼/普林斯顿建筑

CPU 访问程序和数据的方式说明了 CPU 的体系结构。早些时候,单条总线用于访问程序和数据。这种类型的建筑被称为冯诺依曼建筑或更简单的普林斯顿建筑。用于获取代码和数据的单一总线意味着,它们会相互阻碍并减慢 CPU 的处理速度,因为它们必须等待对方完成获取。这种限制也称为冯诺依曼瓶颈条件。

RISC

哈佛建筑

为了加快这一进程,哈佛架构被提出。在该架构中,存在用于数据和程序的单独数据总线。所以这意味着这个架构提出了使用四总线

一组数据总线,携带数据进出 CPU。

一组用于访问数据的地址总线。

一组数据总线,用于将代码传送到 CPU 中。

用于访问代码的地址总线。

RISC

使用单独的地址总线和数据总线意味着 CPU 的执行时间较短,但这是以设计架构的复杂性为代价的。冯诺依曼架构可能听起来有点懒惰,但它具有设计简单的优势。

当 CPU 和内存单元共享相同的空间或 RAM 和 ROM 与处理单元内置(片上)时,哈佛架构很容易实现,例如在距离以微米和毫米为单位的微控制器中。但是,如果保存代码的内存位于处理单元外部,例如x86 IBM PC中的内存,则很难实现相同的架构。为主板上的数据和地址设置一组单独的走线会使主板变得复杂且昂贵。让我们通过一个处理器的例子来理解它。

具有 64 位数据总线和 32 位地址总线的处理器将需要大约 100 条总线(其中 96 条用于数据和地址总线,而其他一些用于控制信号)来实现 Von-Neumann 架构。如果使用哈佛架构实现相同的结构,则双线走线将花费大约 200 条,并且大量引脚从处理器中出来。出于同样的原因,我们看不到为 PC 和工作站实现的纯哈佛架构。取而代之的是,使用改进的哈佛体系结构,其中使用带有 CPU 高速缓存存储器的存储器层次结构来分离程序和数据。内存层次结构根据进程响应时间的层次结构分离存储。

指令集架构

当程序(代码)被加载到系统的内存(RAM)中时,它由 CPU(指微处理器和微控制器)获取以对数据进行操作,这与我们在训练狗时发出指令非常相似某些动作和命令。当这些指令作用于某些晶体管时,它们会从一个逻辑电平变为另一个逻辑电平以实现这一目标。所以基本上在指令的帮助下,人类程序员与处理器进行通信。每个 CPU 都有自己的指令集,即基于其架构和功能的指令集合。

CPU 以 0 和 1 的组合来理解这些指令,也称为操作码。对于人类程序员来说,很难记住与 CPU 相关的每条指令的 0 和 1 的组合。为了简化人类程序员的工作,我们提供了这些指令的高级接口,编译器将它们转换为 0 和 1 的形式以供其处理。同样在每个CPU的指令集中,它可以理解的指令数量是有限的。

CPU的性能

您可能听说过与CPU 性能相关的 CPU 时钟频率这个术语。CPU 的时钟频率通常以 MHz(兆赫兹)或 GHz(千兆赫兹)为单位,例如 25 GHz 时钟频率。与时钟速率相关的数字表示 CPU 内的时钟以每秒周期为单位滴答的次数。时钟频率的实用性可以通过以下事实来理解:指令是根据 CPU 的时钟周期执行的,该时钟周期与 CPU 一次可以运行的程序数量成正比。

RISC

CPU的性能取决于程序中写入的指令数量,指令越多,CPU执行它们所花费的时间就越多。它还取决于执行每条指令的时钟周期数,某些指令需要比其他指令更多的时钟周期才能执行,因此它们落后于 CPU 的性能。程序中的指令和执行每条指令所需的周期彼此成反比。改变一个会影响另一个。这就是 CPU 行业的分界点。

RISC 和 CISC 指令集架构

如上所述,程序的执行和 CPU 的性能取决于程序中的指令数量,其中指令作为指令集的一部分被提交给特定的 CPU,第二个因素是程序中的时钟周期数其中每条指令都被执行。基于这两个因素,目前有两个可用的指令集。其中最早的是复杂指令集计算(CISC),而另一个是精简指令集计算(RISC)。让我们详细讨论这些架构中的每一个,以了解RIC 和 CISC 架构之间的区别。

RISC

复杂指令集计算 (CISC)

CISC 代表复杂指令集计算。CISC的主要目的是减少程序执行的指令数量,这是通过将许多简单的指令(如地址模式,加载等)组合在一起并形成单个复杂指令来完成的。CISC指令包括一系列简单指令以及一些需要多个时钟周期才能执行的特殊指令。CISC 指令可以直接在内存上工作,而无需寄存器的干预,这意味着它不需要一些基本指令,如加载值和内存 (RAM) 的要求。CISC 指令更强调硬件而不是软件,这意味着不是将负载放在编译器上,CISC使用晶体管作为硬件来解码和执行指令。然而,由于指令很复杂并且由多个步骤组成,它们在更多的时钟周期中执行。

一个简单的类比是当您被告知打开书并阅读第 3章的第 2页时。在这一系列活动中,您需要执行多个步骤,例如从包里找到这本书,而不是将页面拖到第 3 章,然后转到第 2章然后开始阅读。如果将一系列步骤组合在读取第 44 页(即第 3 章的第 2 页码)的单个指令中,我们将得到一条 CISC 指令。

精简指令集计算 (RISC)

第一个集成芯片是由 Jack Kilby 在 1958 年设计的,它是一个振荡器,并在 1970 年第一个商用微处理器由 Intel 推出。虽然在处理器开始时没有 CISC。但随着计算需求的繁重,CISC 架构变得越来越复杂且难以处理。IBM 由 John Coke对 CISC 架构进行了全面重新设计,称为 RISC 。因此,为了区分这两种架构,引入了术语RISC 和 CISC。

RISC 代表精简指令集计算。RISC 的主要动机是在指令的大小和执行方面引入统一性。这是通过引入可以作为每个周期一条指令执行的简单指令集来完成的,这是通过将诸如加载和存储之类的复杂指令分解为不同的指令来完成的,其中每条指令大约需要一个时钟周期来执行。RISC 架构包括可以在单个时钟周期内执行的相同大小的简单指令。基于 RISC 的机器在将每条指令加载到寄存器时需要比 CISC 更多的 RAM来保存值。每个周期执行一条指令使基于 RISC 的机器具有流水线的优势(流水线是在执行第一条指令之前加载下一条指令的过程,这提高了执行效率)。RISC 体系结构更多地强调软件而不是硬件,并且需要用更少的指令编写更高效的软件(编译器、代码)。由于有多条指令, RISC的实现可能听起来很困难,但它是由指令的大小和每条指令在单个时钟周期内执行的事实证明的。

一个简单的类比,可以理解何时必须执行阅读本书的每个步骤,方法是找到书,然后找到页面,然后找到章节,最后开始阅读。

比较 RISC 与 CISC 架构

当我们比较 RISC 和 CISC时,RISC 和 CISC 架构之间没有赢家,这完全取决于应用程序和使用场景。RISC通过考虑每条指令的周期来强调效率,而CISC通过程序中的指令数量来强调效率。为了提高效率,CISC 依赖于几行代码,而 RISC 减少了每条指令的执行时间。公平地说,在共同基础上比较基于这两种架构的微控制器和微处理器是不可能的。

以两个 8 位数字相乘的指令为例,基于 CISC 的处理器大约需要 70-80 个时钟周期,而基于 RISC 的处理器大约需要 30-40 个时钟周期,这使其比 CISC 快 2 倍。此外,与基于 RISC 的 CPU 中的单周期处理相比,基于 CISC 的 CPU 需要更多时钟周期来执行指令流水线化是一项艰巨的任务。

CISC 和 RISC 架构在哪里使用?

在处理器和控制器诞生之初,只有CISC 架构存在,尽管官方名称 CISC 并不存在。但是随着编译器等软件的引入,基于 RISC 的架构开始发展。英特尔从一开始就依赖于 CISC 架构。苹果、爱特梅尔等几家愿意在RISC上冒险的公司。几年后,由于改进困难,CISC变得有点过时和不受欢迎。然而,英特尔从未离开 CISC 并继续为改进而开发。

目前,RISC 和 CISC 架构之间的区别非常小。ARM 设备、Atmel 基于 AVR的设备(如Arduino、PIC 和几乎所有智能手机制造商)都使用RISC 架构,因为它们速度更快、资源消耗更少且能效更高。Intel x86 系列和 8051 控制器中仍然存在纯粹基于 CISC 的设备。AMD 等制造商在其第 5代K5系列中使用RISC 和 CISC 的混合体。在应用程序的基础上,CISC 更适合自动化设备,而 RISC 更适合视频和图像处理设备。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分