计算机系统组成是计算机科学的基础,本教程聚焦于第4章,主要讲解了指令系统的关键概念。指令系统是计算机硬件和软件交互的桥梁,为应用程序、编译器和操作系统提供基础。
指令系统的设计需要平衡性能提升和成本增加。它分为非特权指令和特权指令。非特权指令供用户使用,包括功能性指令(执行特定计算或控制任务)和非功能性指令(如数据传输)。特权指令则是为系统程序员设计,用于系统级操作,如I/O管理、存储保护和系统状态控制。
指令系统的性能要求包括完备性、规整性、兼容性和可扩充性。完备性意味着指令系统应能完成所有必要的操作;规整性涉及指令的正交性、均匀性和对称性,保证指令间的独立性;兼容性确保不同计算机系统间的基本指令集一致,利于软件移植;可扩充性则允许随着技术进步添加新指令。
指令的格式通常包含操作码和地址码。操作码指示指令执行的操作,而地址码指出操作数的位置。指令按照地址数量可分为三地址、二地址、单地址和零地址指令。指令字长度是设计中的重要考虑因素,应为存储器字长的整数倍,并且要平衡指令的长度、存储需求和执行速度。
指令助记符是人类可读的符号,对应二进制操作码,如ADD代表加法,SUB代表减法。它们方便编程和理解。
指令系统设计的任务是确定指令的格式、类型和操作数访问方式,旨在提高性能/价格比。设计思路包括确定硬件实现的基本操作、优化功能设计、指令格式设计和规整优化设计。衡量指令系统性能的指标包括代码密度、操作数访问范围、对操作系统和编译程序的支持,以及指令的译码和执行速度。
操作数类型主要有数值型、字符、地址和逻辑数据。在指令中表示操作数类型可通过额外的二进制位,可以选择在存储时或处理时标识。操作数存储方式则涉及寄存器、堆栈和存储器,以及大端和小端两种数据表示方式,影响数据的存储和访问。
本章内容深入浅出地介绍了计算机指令系统的基本构成和设计原理,是理解和掌握计算机系统运作的重要基础。通过学习,读者能够对计算机如何执行程序和管理资源有更深入的理解。