复杂指令集CISC和精简指令集RISC
复杂指令集CISC(Complex Instruction Set Computing)和精简指令集RISC(Reduced Instruction Set Computing)是两种广泛应用的微处理器指令集架构。相较CISC,RISC旨在精简的是单一指令所完成的工作量,而不是指令数量。
CISC
设计原理
编译器技术落后,复杂硬件结构以便程序的编写
在早期的计算机业界,编译器技术并不发达,程序多半以机器语言或汇编语言完成的。为了便于编写程序,电脑架构师设计出越来越复杂的指令,可以直接对应高级编程语言的高级功能,每个指令可执行若干低阶操作,诸如从内存读取、储存、计算操作,全部集于单一指令之中。当时的看法是硬件比编译器更容易设计,所以结构的复杂性在硬件这端。
内存容量小且慢
当时内存中的每一字节都很宝贵,例如只有几千个字节来存储某个完整系统。它使产业界倾向于高度编码的指令、长度不等的指令、多操作数的指令,以及把数据的搬移与计算合并在一起的指令。在当时看来,相对于使指令更容易解码,指令的编码打包问题尤为重要。
特点
- 指令多而复杂,编译器很容易将高级语言编译成相应的汇编语言
- 单一指令完成的操作多,汇编的代码小,进而内存占用少
- 指令周期不等,不易实现流水线技术(pipeline)
- 更多的晶体管用来实现复杂指令,占用寄存器的实现空间
RISC
设计原理
编译器使用增多,汇编语言减少
编译器通常情况下将高级语言都编译成精简的一系列指令,单一复杂指令很少使用。
微处理器比内存运行的更快
处理器运行的越来越快,为了解决内存瓶颈,支持更高频率的操作,就需要更多的寄存器(以及后来的缓存)。为此,必须降低微处理器原本的复杂度,以节省出空间给新增的寄存器和缓存。
特点
- 指令简单,格式固定,编译效率高
- 指令周期相等,易实现流水线技术
- 精简的指令,节省出更多空间去实现寄存器,易于提高频率
- 复杂指令被分解成多个简单指令,汇编代码大,占用内存大,从内存读入指令多,读取占用时间多
References
1. 精简指令集 2. RISC vs. CISC
Copyright (C) 2016 archiexie@cnblogs. All Rights Reserved.
相关推荐
jzlhll 2018-07-24
ithzhang 2020-01-04
手机开发 2016-09-23
supjia 2019-10-31
肖舸NoSQLt架构 2019-08-28
jzlhll 2019-05-16
andonliu 2020-09-03
lightindark 2020-06-25
JavaWDB 2020-01-28
遇见人工智能 2019-12-27
ithzhang 2019-12-18
withjeffrey 2019-11-18
lsn0LSN 2015-01-18
ShuhuiLi 2019-11-04
Foresights 2019-10-10
WenCoo 2015-01-18
benico 2014-11-07
宅学部落王利涛 2012-03-16