发布网友 发布时间:2022-04-22 01:35
共1个回答
热心网友 时间:2023-09-20 13:10
多线程硬件支持的目标,即支持快速进行就绪态线程、执行态线程间的切换。为达成这个目标,需要硬件实现保存、恢复程序看得见的寄存器以及一些对程序执行有影响的控制寄存器(如程序计数器PC、程序状态寄存器SR)。从一个线程切换到另一个线程对硬件来讲意味着保存当前线程的一组寄存器的值,并恢复即将执行线程的一组寄存器的值。
新增这些功能的硬件有以下优势: 线程切换能够在一个 CPU 周期内完成(有些硬件甚至没有开销,上个周期在运行线程A,下个周期就已在运行线程B)。 每个线程看起来就像是独自运行的,即没有与其他线程共享硬件资源。对操作系统来说,通常每个线程都被视做独占一个处理器,这样将简化系统软件的设计(尤其是对于支持多线程的操作系统)。 为了在各个线程间有效率的进行切换,每个线程需要保存自己的一组寄存器集(register set)。有些硬件设计成每个处理器核心具有两组寄存器文件,以实现在多个线程间快速切换。