跳到主要内容

构造与逻辑

除了运算器和控制器,处理器中还包括Cache、中断系统、时序控制系统等。

处理器是解释存储在主存中指令的引擎。

处理器的核心是一个程序计数器(PC)

程序计数器是一个大小为一个字的存储设备,存储CPU即将执行的下一条指令的地址

处理器就是在不断执行程序计数器指向的指令。每执行一条,程序计数器更新一次,指向下一条指令。

处理器会按照**指令执行模型(指令集架构)**解释指令中的位并执行相应操作。

每条指令的操作是围绕**主存、寄存器文件、算数/逻辑单元(ALU)**进行的。

寄存器文件:单个字长,有唯一的名字。

**ALU:**计算新的数据和地址值。

几个简单指令的操作:

  • 加载:从主存复制一个字或字节到寄存器,覆盖原来内容
  • 存储:从寄存器复制一个字或字节到主存,覆盖原来内容
  • 操作:把两个寄存器的内容复制到 ALU,ALU 对这两个字做算术运算,并把结果存到一个寄存器中
  • 跳转:从指令中抽取一个字复制到程序计数器中,覆盖原来内容。

区分处理器指令集架构和微体系架构:

  • **指令集架构:**每条机器指令的效果
  • **微体系架构:**处理器实际上是如何实现的

数据通路

数据在功能部件之间传送的路径叫数据通路,包括数据通路上流经的部件。ALU,GPRs,PSW,异常中断处理逻辑等。

  1. CPU内部总线

  2. 专用数据通路方式

时序控制系统

时序系统:机器周期、时钟周期、脉冲构成了三级时序系统。

单周期CPU:指令周期=时钟周期

指令级的处理器分类

  1. SISD:一个指令周期一条指令,一个时间只有一个操作数。

  2. SIMD:一个指令周期内只执行一条计算机指令,但能在同一时间内操作多个操作数。例如向量处理器。

  3. MIMD:同时执行多个指令流。

多核处理器,线程和硬件线程的区别?

  1. 多核处理器是有多个物理核心。

  2. 硬件线程:利用特殊的硬件指令,把一个物理核心虚拟出两个逻辑核心并模拟成两个物理芯片,让单个处理器都能使用线程级并行计算。硬件线程,也称之为逻辑内核或逻辑处理器,windows将每一个硬件线程识别为一个可调度的逻辑处理器,每一个逻辑处理器可以运行软件线程的代码,windows调度器可以决定将一个软件线程赋给一个硬件线程,通过这种方式均衡每一个硬件线程的工作负载,以达到并行优化的作用。这种技术叫做超线程技术HT,它的学术名字是同步多线程技术SMT。通常所说的8核16线程就是指8个物理cpu核心数、16个逻辑核,提供了16线程同时执行的能力

  3. 线程:见进程

用户级线程在用户层通过线程库来实现。对它的创建,撤销和切换都不利用系统的调用。

核心级线程由操作系统直接支持,即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建,撤销和切换都由核心实现。

硬件线程就是线程在硬件执行资源上的表现形式。单个线程一般都包括上述三个层次的表现:用户级线程通过操作系统被作为核心级线程实现,再通过硬件相应的接口作为硬件线程来执行。

https://zhuanlan.zhihu.com/p/670803961

分布式处理器SMP

共享内存

运行程序

执行目标文件时,shell 程序将位于磁盘目标文件中的字符逐个读入寄存器,然后放到主存中。之后处理器就开始执行目标文件的机器语言指令,从 main 程序开始。

利用**直接存储器存取(DMA)**可以不通过寄存器,直接将数据从磁盘到达内存。

以输出打印 hello world 为例,处理器将 hello world 的字节复制到寄存器,然后再复制到显示器,最后显示在屏幕上。

**整个流程:**读取文件字符到寄存器 → 存储到主存 → 执行指令加载 helloworld 到寄存器 → 复制到显示器 →

Loading Comments...