各种字长

  • 机器字长=字长=寄存器中的位数:CPU内部处理的数据长度 (如32位机)
  • 存储字长存储器内部的数据长度
  • 指令字长:一条指令的长度,最好是存储字长的整数倍

各种周期

  • 时钟周期:主频倒数,计算机操作的最小工作单位
  • 机器周期=CPU周期:我称之为“步骤周期”,即执行指令一个步骤的时间,如取指、间指等
  • 指令周期:一个指令周期包含若干机器周期
  • 工作脉冲:理论上等于时钟周期
  • 存取周期:两次读/写所取的最小时间隔,大于存取时间

超线程技术

超线程技术(Hyper-Threading Technology,HTT)是由英特尔(Intel)公司推出的一种计算机处理器技术。它旨在提高处理器的性能和效率,允许处理器同时执行多个线程,从而增加处理器的并行处理能力。

传统的处理器中,每个物理核心只能同时执行一个线程。但超线程技术通过在每个物理核心中增加逻辑核心(Logical Core),使得每个物理核心能够同时执行两个线程。这样,一个双核处理器实际上可以同时执行四个线程,一个四核处理器可以同时执行八个线程,以此类推。

超线程技术的实现原理是在每个物理核心中增加一组额外的寄存器和处理单元,使得每个物理核心可以在同一时钟周期内处理两个线程的指令流。这样,当一个线程在执行时,另一个线程可以利用空闲的处理单元继续执行其指令,从而实现线程的并行执行。

超线程技术的优势在于充分利用了处理器的资源,提高了处理器的效率和吞吐量。它尤其适用于多任务场景和多线程应用程序,可以显著提升系统的整体性能。同时,超线程技术在硬件上实现,对于软件来说是透明的,不需要对现有的应用程序进行修改,就可以享受到性能的提升。

然而,超线程技术并不是在所有情况下都能带来线性的性能提升。实际效果取决于应用程序的特性和运行环境。对于某些特定类型的工作负载,超线程可能会导致资源竞争和性能下降。因此,在实际应用中,超线程技术的开启和关闭需要根据具体情况进行调整。

双核和双cpu

双核(Dual Core)和双CPU(Dual CPU)都是指计算机系统中的多核心处理器,但它们有一些区别:

  1. 核心数量:双核指的是一个物理处理器内部包含两个核心,每个核心可以独立执行指令。而双CPU指的是系统中有两个独立的物理处理器,每个处理器都可以有多个核心。

  2. 物理连接:双核处理器的两个核心是集成在同一块芯片中,它们共享一些硬件资源,如高速缓存和总线连接。而双CPU是两个独立的物理处理器,它们分别连接到主板上,并通过总线进行通信。

  3. 性能和并行性:双核处理器在同一时间内可以执行两个线程,因此它可以提供更高的并行性和性能。而双CPU系统由于有两个独立的处理器,可以同时执行更多的线程,提供更高的整体性能。

  4. 成本和功耗:通常情况下,双核处理器相比双CPU系统更为便宜和节能,因为它们只需要一个物理芯片和较少的硬件资源。

总的来说,双核处理器适用于大多数个人计算机和一般服务器应用,它们提供了良好的性能和节能特性。而双CPU系统主要应用于高性能计算和服务器领域,对于需要更高性能和更多并行处理能力的应用来说,双CPU系统可能更加合适。

SMT和SMP

  1. SMT(Simultaneous Multithreading): SMT是一种处理器技术,也被称为超线程技术(Hyper-Threading Technology,HTT),它允许在单个物理处理器核心上同时执行多个线程。通过在一个物理核心中增加逻辑核心,使得每个物理核心能够同时执行多个线程,从而提高处理器的并行处理能力。SMT技术通过共享硬件资源,允许多个线程共享同一个物理核心的执行单元、高速缓存等资源。SMT技术在硬件层面实现,对于操作系统和应用程序来说是透明的,不需要进行修改就可以享受到性能的提升。
  2. SMP(Symmetric Multiprocessing): SMP是一种计算机体系结构,它使用多个独立的物理处理器(通常是多个CPU),这些处理器通过共享主存储器和I/O设备来共同完成计算任务。在SMP系统中,所有处理器都有相同的权限,它们可以同时执行不同的任务,并共享同一份内存和外设资源。SMP系统充分利用了多个处理器的并行处理能力,可以显著提高系统的整体性能。SMP系统通常用于高性能计算和服务器应用,对于多任务和多线程的应用程序来说,SMP系统能够提供更高的吞吐量和处理能力。

总结来说,SMT是一种处理器技术,用于在单个物理核心上同时执行多个线程,提高指令级并行性;而SMP是一种计算机体系结构,使用多个独立的物理处理器来共同完成计算任务,提高系统的整体性能。两者都是在多核处理器中提高性能和并行能力的重要手段。