计算机系统结构(三):ISA指令集设计
计算机系统结构(三):ISA指令集设计
导图
本章重点内容目录
什么是ISA,如何表示
ISA是一组指令,且每条指令都由CPU硬件直接来执行。
用二进制的形式存储指令集,有定长指令和不定长指令。
ISA的分类(依据存放操作数的存储单元类型)
其中寄存型又分为存储器-寄存器型和寄存器-寄存器型,寄存器-寄存器型最受欢迎。
下图中依次为堆栈型、累加器型、存储器-寄存器型和寄存器-寄存器型。
为什么load-store会成为目前指令集架构的主要形式
1.简单,指令字长固定,代码生成模型简单,各种指令的执行时钟周期数相近。
2.运行速度快,指令执行过程中能够让编译器更有效应用。
定量分析对指令系统的设计有什么意义
1.在各种寻址方式中可以通过定量分析寻找Common Case,确定哪一种寻址方式最应该被实现、被优化;对于立即数寻址需要在指令中给立即数留多少位数;
2.对于数据的格式可以定量分析哪一种数据类型用到最多;
3.对于指令的功能确定哪一种**最需要被优化****等。
RISC和CISC
How can Architects Help Compiler Writers
程序员主要是使用高级语言对桌面和服务器应用程序进行编程,执行的大多数指令是由编译器输出,因此指令集和编译器两者密不可分。编译器采用多遍扫描结构,将高级语言转化为能够在系统上运行的机器语言指令,同时使用各种加速优化手段,提高代码在CPU上运行的效率。
编译器的设计与系统结构的设计相互影响、相互配合,最终目标是程序在CPU上能够更有效的运行和合理的性价比。
编译器对计算机系统结构的影响:编译器对系统结构提出了新的设计要求,例如变量如何分配与访问,reg的分配和数量。提供策略。
系统结构对编译器的影响:系统结构为编译器提供各种指令的寻址方式、数据类型、操作之间的正交性,足够的寄存器。提供机制。