面向高级语言和编译程序增强指令系统的途径主要有两个: (1)增强对高级语言和编译程序支持的指令的功能 在用高级语言编写的源程序中,对各种语句的使用频度和执行时间进行统计和分析。对使用频度高,执行时间长的语句,增强有关指令的的功能,或增加相关的专门指令,从而达到缩短目标程序长度,减少目标程序执行时间的目的。这样做,同时也能缩短编译所用的时间。 例如,在FORTRAN语言和COBOL语言中,一元赋值语句所占比例最大,约占40%左右。由于一元赋值语句实际上是用数据传送指令实现的,因此,增强数据传送指令的功能,缩短这类指令的执行时间是对高级语言非常有力支持。 在其语句中,增1操作所占的比例比较大,因此,许多机器都设置有一地址的增1指令。 条件转移和无条件转移语句所占的比例达到22%和38.2%,因此,增强转移指令的功能,增加转移指令的种类是必要的。 在一般高级语言中都没有条件码,而大多数计算机系统都设置了条件码寄存器,由运算型指令生成条件码,条件转移指令使用条件码。如果取消一般指令中条件码,把生成条件码的运算型指令与使用条件码的条件转移指令合并,这是对高级语言的有力支持。 另外,前面已经介绍过的,增强体系结构的规整性,减少体系结构中各种例外情况,是对编译程序的有力支持。 (2)研制高级语言计算机 缩小高级语言与机器语言差距,如果走到极端就是把高级语言与机器语言合二为一,即所谓的高级语言计算机。在这种机器中,高级语言不需要经过编译,直接由机器的硬件来执行。如LISP计算机、PROLOG计算机等 针对多种高级语言,可以研制各种VLSI芯片,在同以台机器上可以安装多种高级语言的专用芯片。也可以采用微程序技术,通过微程序存储器的动态加载来实现在同一台机器上具有多种高级语言。 3.面向操作系统优化指令系统 任何一种计算机系统都必须有操作系统的支撑才能工作,而操作系统又必须用指令系统来实现。指令系统对操作系统的支持主要有: 处理机工作状态和访问方式的转换; 进程的管理和切换; 存储管理和信息保护; 进程的同步和互斥,信号灯的管理等; 支持操作系统的有些指令属于特权指令。 尽管有些指令的使用频度很低,但是,如果没有这些指令的支持,操作系统将很难实现,或根本不能实现,如处理机状态的转换,进程的切换,信号灯的管理等方面所使用的有关指令。 |