MichaelBlog

double i = Double.MAX_VALUE; while(i == i + 1){ System.out.print ("学无止境");};

导航

计算机组成原理:RISC与CISC比较

计算机组成原理:RISC与CISC比较

检查RISC架构的优缺点的最简单方法是将其与其前身CISC(复杂指令集计算机)架构进行对比。

e.g.:将内存中的两个数字相乘

在这里插入图片描述

上方是表示通用计算机存储方案的图表。主存储器被划分为从(行)1:(列)1到(行)6:(列)4的位置。执行单元负责执行所有计算。但是,执行单元只能对已加载到六个寄存器(A、B、C、D、E 或 F)之一的数据进行操作。假设我们要查找两个数字的乘积 - 一个存储在位置 2:3,另一个存储在位置 5:2 - 然后将产品存储回位置 2:3。

CISC 方法
CISC 体系结构的主要目标是在尽可能少的装配行中完成任务。这是通过构建能够理解和执行一系列操作的处理器硬件来实现的。对于此特定任务,CISC处理器将准备一条特定的指令(我们称之为"MULT")。执行时,此指令将两个值加载到单独的寄存器中,将执行单元中的操作数相乘,然后将产品存储在相应的寄存器中。因此,两个数字相乘的整个任务可以用一条指令完成:

MULT 2:3, 5:2

MULT是所谓的"复杂指令(complex instruction)"。它直接在计算机的内存组上运行,不需要程序员显式调用任何加载或存储函数。它与更高级别的语言中的命令非常相似。例如,如果我们让"a"表示2:3的值,"b"表示5:2的值,那么这个命令与C语句"a = a * b"相同。

该系统的主要优点之一是编译器必须做很少的工作即可将高级语言语句转换为汇编。由于代码的长度相对较短,因此存储指令所需的RAM非常少。重点是将复杂的指令直接构建到硬件中。

RISC Approach
RISC处理器仅使用可以在一个时钟周期内执行的简单指令。因此,上面描述的"MULT"命令可以分为三个单独的命令:“LOAD”,它将数据从存储体移动到寄存器,“PROD”,它查找位于寄存器内的两个操作数的乘积,以及"STORE",它将数据从寄存器移动到存储器。为了执行CISC方法中描述的一系列确切步骤,程序员需要编写四行汇编代码:

LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

起初,这似乎是完成操作的效率要低得多的方法。由于代码行数较多,因此需要更多的 RAM 来存储程序集级别的指令。编译器还必须执行更多工作,以将高级语言语句转换为此形式的代码。

分离"LOAD"和"STORE"指令实际上减少了计算机必须执行的工作量。执行CISC式的"MULT"命令后,处理器会自动擦除寄存器。如果其中一个操作数需要用于另一个计算,处理器必须将数据从存储体重新加载到寄存器中。在RISC中,操作数将保留在寄存器中,直到在其位置上加载另一个值。

性能公式
以下公式通常用于表示计算机的性能能力:

请添加图片描述
CISC 方法试图最小化每个程序的指令数,从而牺牲每个指令的周期数。RISC反其道而行之,以每个程序的指令数量为代价,减少了每条指令的周期。

RISC Roadblocks (路障)
尽管基于RISC的处理具有优势,但RISC芯片花了十多年的时间才在商业世界中站稳脚跟。这主要是由于缺乏软件支持。

虽然苹果的Power Macintosh系列采用了基于RISC的芯片,Windows NT兼容RISC,但Windows 3.1和Windows 95在设计时考虑了CISC处理器。许多公司不愿意冒险使用新兴的RISC技术。如果没有商业利益,处理器开发人员就无法制造足够大的RISC芯片,使其价格具有竞争力。

另一个重大挫折是英特尔的存在。尽管他们的CISC芯片变得越来越笨拙和难以开发,但英特尔拥有资源来开发并生产出功能强大的处理器。尽管RISC芯片可能会在特定领域超越英特尔的努力,但差异还不足以说服买家改变技术。

总体RISC优势
今天,英特尔x86可以说是唯一保留CISC架构的芯片。这主要是由于计算机技术其他领域的进步。RAM的价格急剧下降。1977年,1MB的DRAM耗资约5,000美元。到1994年,相同数量的内存成本仅为6美元(经通货膨胀调整后)。编译器技术也变得更加复杂,使得RISC使用RAM和强调软件变得理想。

posted on 2022-04-16 09:48  Michael_chemic  阅读(271)  评论(0编辑  收藏  举报