上QQ阅读APP看书,第一时间看更新
第4章 软硬件协同
作为软硬件的界面,指令系统结构不仅包含指令和相关硬件资源的定义,还包含有关资源的使用方式约定。与二进制程序相关的约定被称为应用程序二进制接口(Application Binary Interface,简称ABI)。ABI定义了应用程序二进制代码中相关数据结构和函数模块的格式及其访问方式,它使得不同的二进制模块之间的交互成为可能。本章首先讲述ABI的基本概念和具体组成,并举例说明了其中一些比较常见的内容。
在软硬件之间合理划分界面是指令系统设计的一项关键内容。计算机完成一项任务所需要的某个工作常常既可以选择用软件实现也可以选择用硬件实现,设计者需要进行合理的权衡。第3章中LoongArch指令系统的TLB管理就是一个很好的软硬件协同实现案例。本章继续讲述对理解计算机系统的工作过程比较重要的一些软硬件协同案例,包括函数调用、异常与中断、系统调用、进程、线程和虚拟机等六种不同的上下文切换场景,以及同步机制的实现。
不另加说明的情况下,本章的案例采用LoongArch指令系统。