CISC和RISC特点和区别
CISC(微程序) | RISC(硬布线) | |
---|---|---|
指令系统 | 复杂、庞大 | 简单、精简 |
指令数目 | 一般大于200条 | 一般小于100条 |
指令字长 | 不固定 | 定长 |
可访存指令 | 不加限制 | 只有load/store指令 |
各种指令执行时间 | 相差较大 | 多数指令在一个时钟周期完成 |
各种指令的使用频度 | 相差很大 | 都比较常用 |
通用寄存器的数量 | 较少 | 多 |
目标代码 | 难以优化生成高效的目标代码 | 采用优化编译,生成代码较高效 |
控制方式 | 绝大多数为微程序控制 | 绝大多数为组合逻辑 |
-
RISC的指令数,寻址方式和指令格式种类相对CISC少
-
RISC采用指令流水线技术,使大部分指令在一个时钟周期内完成,适合流水线的指令系统的特征有:
- 指令长度应尽量一致
- 指令格式应尽量规整
- 保证Load/store指令外的其它指令都不访问存储器
- 数据和指令在存储中对齐存放
- 边界对齐
数据以边界对齐方式存放,半字地址一定使2的整数倍,字地址一定使4的整数倍,这样无论所取的数据使字节、半字还是字,均可一次访存取出。
- 数据按边界对齐–》起始地址能够被自身长度整除。2B的长度就是2.
struct{ int a; char b; short c; }record;
0xc008 | int |
---|---|
0xc00c | char 空 short |
oxc010 | 空 空 空 空 |
struct{ char b; int a; short c; }record;
0xc008 | char 空 空 空 |
---|---|
0xc00c | int |
oxc010 | short 空 空 |
- CISC可以通过一定方式实现指令流水线,RISC必须实现指令流水线