线程的上下文由所有硬件寄存器的内容组成,操作系统在暂停线程执行时必须将这些内容保存到内存中,并且操作系统必须将这些内容重新加载到硬件寄存器中才能恢复线程的执行。当操作系统暂停当前在某个 CPU 上运行的线程,然后恢复同一 CPU 上的另一个线程时,我们称之为“上下文切换”。
超线程/SMT CPU 具有多组上下文寄存器。正如 Peter Cordes 和 www 的评论中所提到的,它可以同时代表两个或多个线程执行指令,而无需任何上下文切换。(也就是说,无需将寄存器内容保存到内存并从内存中恢复寄存器内容。)超线程/SMT CPU 的行为就像是两个或多个独立的逻辑 CPU,而这些独立的逻辑 CPU 是操作系统执行的上下文切换的目标。
PS,“超线程”的动机是逻辑 CPU 共享一些硬件资源,并且平均而言,它们的性能几乎与完全彼此独立时一样好,但它们在硅片上占用的空间比相同数量的完全独立的 CPU 占用的空间要小得多。
那里没有“它”。
线程的上下文由所有硬件寄存器的内容组成,操作系统在暂停线程执行时必须将这些内容保存到内存中,并且操作系统必须将这些内容重新加载到硬件寄存器中才能恢复线程的执行。当操作系统暂停当前在某个 CPU 上运行的线程,然后恢复同一 CPU 上的另一个线程时,我们称之为“上下文切换”。
超线程/SMT CPU 具有多组上下文寄存器。正如 Peter Cordes 和 www 的评论中所提到的,它可以同时代表两个或多个线程执行指令,而无需任何上下文切换。(也就是说,无需将寄存器内容保存到内存并从内存中恢复寄存器内容。)超线程/SMT CPU 的行为就像是两个或多个独立的逻辑 CPU,而这些独立的逻辑 CPU 是操作系统执行的上下文切换的目标。
PS,“超线程”的动机是逻辑 CPU 共享一些硬件资源,并且平均而言,它们的性能几乎与完全彼此独立时一样好,但它们在硅片上占用的空间比相同数量的完全独立的 CPU 占用的空间要小得多。