计算机系统结构探析:CISC vs RISC 及总线架构

目录

前言

计算机系统结构的分类

1、存储程序的概念

2、Flynn 分类

复杂指令集系统与精简指令集系

1、CISC 指令系统的特点

2、RISC 指令系统的特点

总线

最后


前言

计算机系统作为现代科技的核心,其内部结构和工作原理日益成为人们关注的重点。

本文将带领读者深入探讨计算机系统结构中的关键概念,特别是复杂指令集系统(Complex Instruction Set Computer, CISC)与精简指令集系统(Reduced Instruction Set Computer, RISC)之间的区别,以及总线架构在计算机通信中的重要角色。

通过对比这两种指令集体系结构,并解析总线系统如何连接计算机内部的不同组件,我们希望能够帮助读者建立起对计算机系统工作方式的全面理解。

计算机系统结构的分类

计算机的发展经历了电子管和晶体管时代、 集成电路时代(中小规模、 大规模、 超大规模、 甚大规模、 极大规模)。 目前, 世界最高水平的单片集成电路芯片上所容纳的元器 件数量已经达到 80 多亿个。

1、存储程序的概念

“存储程序” 的概念是冯•诺依曼等人于 1946 年 6 月首先提出来的, 它可以简要地概括为以

下几点:

(1) 计算机(指硬件) 应由运算器、 存储器、 控制器、 输入设备和输出设备五大基本

部件组成。

(2) 计算机内部采用二进制来表示指令和数据。

(3) 将编好的程序和原始数据事先存入存储器中, 然后再启动计算机工作。 这就是存储程序的基本含义。 冯•诺依曼对计算机世界的最大贡献在于“存储程序控制” 概念的提出和实现。 六十多年来, 虽然计算机的发展速度惊人, 但就其结构原理来说, 目前绝大多数计算机仍建立在存储程序概念的基础上。 通常把符合存储程序概念的计算机统称为冯•诺依曼型计算机。 当然, 现代计算机与早期计算机相比, 在结构上还是有许多改进的。

随着计算机技术的不断发展, 也暴露出了冯•诺依曼型计算机的主要弱点: 存储器访问会成为瓶颈。 目前, 已出现了一些突破存储程序控制的计算机, 统称为非冯•诺依曼型计算机, 例如, 数据驱动的数据流计算机、 需求驱动的归约计算机和模式匹配驱动的智能计算机等。

2、Flynn 分类

1966 年, Michael. J. Flynn 提出根据指令流、 数据流的多倍性特征对计算机系统进行分类(通常称为 Flynn 分类法), 有关定义如下。

(1) 指令流: 指机器执行的指令序列;

(2) 数据流: 指由指令流调用的数据序列, 包括输入数据和中间结果, 但不包括输出数据。

Flynn 根据不同的指令流-数据流组织方式, 把计算机系统分成以下四类。

(1) 单指令流单数据流(Single Instruction stream and Single Data stream, SISD): SISD 其实就是传统的顺序执行的单处理器计算机, 其指令部件每次只对一条指令进行译码, 并只对一个操作部件分配数据。

(2)单指令流多数据流(Single Instruction stream and Multiple Data stream, SIMD): SIMD以并行处理机(矩阵处理机) 为代表, 并行处理机包括多个重复的处理单元, 由单一指令部件控制, 按照同一指令流的要求为它们分配各自所需的不同数据。

(3)多指令流单数据流(Multiple Instruction stream and Single Data stream, MISD): MISD具有 n 个处理单元, 按 n 条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。 这类系统实际上很少见到。 有文献把流水线看作多个指令部件, 称流水线计算机是 MISD。

(4) 多指令流多数据流( Multiple Instruction stream and Multiple Data stream, MIMD): MIMD 是指能实现作业、 任务、 指令等各级全面并行的多机系统。 如多核处理器、 多处理机属于 MIMD。

复杂指令集系统与精简指令集系

在计算机系统结构发展的过程中, 指令系统的优化设计有两个截然相反的方向, 一个是增强指令的功能, 设置一些功能复杂的指令, 把一些原来由软件实现的、 常用的功能改用硬件的指令系统来实现, 这种计算机系统称为复杂指令系统计算机( Complex Instruction Set Computer, CISC); 另一个是尽量简化指令功能, 只保留那些功能简单, 能在一个节拍内执行完成指令, 较复杂的功能用一段子程序来实现, 这种计算机系统称为精简指令系统计算机(Reduced Instruction Set Computer, RISC)。

1、CISC 指令系统的特点

CISC 指令系统的主要特点如下:

(1) 指令数量众多。 指令系统拥有大量的指令, 通常有 100~250 条。

(2)指令使用频率相差悬殊。最常使用的是一些比较简单的指令, 仅占指令总数的 20%,但在程序中出现的频率却占 80%。 而大部分复杂指令却很少使用。

(3) 支持很多种寻址方式。 支持的寻址方式通常为 5~20 种。

(4) 变长的指令。 指令长度不是固定的, 变长的指令增加指令译码电路的复杂性。

(5) 指令可以对主存单元中的数据直接进行处理。 典型的 CISC 通常都有指令能够直接对主存单元中的数据进行处理, 其执行速度较慢。

(6) 以微程序控制为主。 CISC 的指令系统很复杂, 难以用硬布线逻辑(组合逻辑) 电路实现控制器, 通常采用微程序控制。

2、RISC 指令系统的特点

RISC 要求指令系统简化, 操作在单周期内完成, 指令格式力求一致, 寻址方式尽可能减少, 并提高编译的效率, 最终达到加快机器处理速度的目的。 RISC 指令系统的主要特点如下。

(1) 指令数量少。 优先选取使用频率最高的一些简单指令和一些常用指令, 避免使用复杂指令。 只提供了 LOAD(从存储器中读数) 和 STORE(把数据写入存储器) 两条指令对存储器操作, 其余所有的操作都在 CPU 的寄存器之间进行。

(2) 指令的寻址方式少。 通常只支持寄存器寻址方式、 立即数寻址方式和相对寻址方式。

( 3) 指令长度固定, 指令格式种类少。 因为 RISC 指令数量少、 格式少、 相对简单,其指令长度固定, 指令之间各字段的划分比较一致, 译码相对容易。

( 4) 以硬布线逻辑控制为主。 为了提高操作的执行速度, 通常采用硬布线逻辑( 组合逻辑) 来构建控制器。

( 5) 单周期指令执行, 采用流水线技术。 因为简化了指令系统, 很容易利用流水线技术, 使得大部分指令都能在一个机器周期内完成。 少数指令可能会需要多周期, 例如, LOAD/STORE 指令因为需要访问存储器, 其执行时间就会长一些。

( 6) 优化的编译器: RISC 的精简指令集使编译工作简单化。 因为指令长度固定、 格式少、 寻址方式少, 编译时不必在具有相似功能的许多指令中进行选择, 也不必为寻址方式的选择而费心, 同时易于实现优化, 从而可以生成高效率执行的机器代码。

( 7) CPU 中的通用寄存器数量多, 一般在 32 个以上, 有的可达上千个。

大多数 RISC 采用了 Cache 方案, 使用 Cache 来提高取指令的速度。 而且, 有的 RISC使用两个独立的 Cache 来改善性能。 一个称为指令 Cache, 另一个称为数据 Cache。 这样,取指令和取数据可以同时进行, 互不干扰。

总线

总线是一组能为多个部件分时共享的公共信息传送线路。 共享是指总线上可以挂接多个部件, 各个部件之间相互交换的信息都可以通过这组公共线路传送; 分时是指同一时刻只允许有一个部件向总线发送信息, 如果出现两个或两个以上部件同时向总线发送信息, 势必导致信号冲突。 当然, 在同一时刻, 允许多个部件同时从总线上接收相同的信息。

按总线相对于 CPU 或其他芯片的位置可分为内部总线和外部总线两种。 在 CPU 内部,寄存器之间和算术逻辑部件 ALU 与控制部件之间传输数据所用的总线称为内部总线; 外部总线是指 CPU 与内存 RAM、 ROM 和输入/输出设备接口之间进行通信的通路。 由于 CPU通过总线实现程序取指令、 内存/外设的数据交换, 在 CPU 与外设一定的情况下, 总线速度是制约计算机整体性能的最大因素。

按总线功能来划分, 又可分为地址总线、 数据总线、 控制总线三类, 人们通常所说的总线都包括这三个组成部分, 地址总线用来传送地址信息, 数据总线用来传送数据信息, 控制总线用来传送各种控制信号。

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值