构造与逻辑
除了运算器和控制器,处理器中还包括Cache、中断系统、时序控制系统等。
处理器是解释存储在主存中指令的引擎。
处理器的核心是一个程序计数器(PC)
程序计数器是一个大小为一个字的存储设备,存储CPU即将执行的下一条指令的地址。
处理器就是在不断执行程序计数器指向的指令。每执行一条,程序计数器更新一次,指向下一条指令。
处理器会按照指令执行模型(指令集架构)解释指令中的位并执行相应操作。
每条指令的操作是围绕主存、寄存器文件、算数/逻辑单元(ALU)进行的。
寄存器文件:单个字长,有唯一的名字。
ALU:计算新的数据和地址值。
几个简单指令的操作:
- 加载:从主存复制一个字或字节到寄存器,覆盖原来内容
- 存储:从寄存器复制一个字或字节到主存,覆盖原来内容
- 操作:把两个寄存器的内容复制到 ALU,ALU 对这两个字做算术运算,并把结果存到一个寄存器中
- 跳转:从指令中抽取一个字复制到程序计数器中,覆盖原来内容。
区分处理器指令集架构和微体系架构:
- 指令集架构:每条机器指令的效果
- 微体系架构:处理器实际上是如何实现的
数据通路
数据在功能部件之间传送的路径叫数据通路,包括数据通路上流经的部件。ALU,GPRs,PSW,异常中断处理逻辑等。
CPU内部总线
专用数据通路方式
时序控制系统
时序系统:机器周期、时钟周期、脉冲构成了三级时序系统。
单周期CPU:指令周期=时钟周期
指令级的处理器分类
SISD:一个指令周期一条指令,一个时间只有一个操作数。
SIMD:一个指令周期内只执行一条计算机指令,但能在同一时间内操作多个操作数。例如向量处理器。
MIMD:同时执行多个指令流。
多核处理器,线程和硬件线程的区别?
多核处理器是有多个物理核心。
硬件线程:利用特殊的硬件指令,把一个物理核心虚拟出两个逻辑核心并模拟成两个物理芯片,让单个处理器都能使用线程级并行计算。硬件线程,也称之为逻辑内核或逻辑处理器,windows将每一个硬件线程识别为一个可调度的逻辑处理器,每一个逻辑处理器可以运行软件线程的代码,windows调度器可以决定将一个软件线程赋给一个硬件线程,通过这种方式均衡每一个硬件线程的工作负载,以达到并行优化的作用。这种技术叫做超线程技术
HT,它的学术名字是同步多线程技术SMT。通常所说的8核16线程就是指8个物理cpu核心数、16个逻辑核,提供了16线程同时执行的能力线程:见进程
用户级线程在用户层通过线程库来实现。对它的创建,撤销和切换都不利用系统的调用。
核心级线程由操作系统直接支持,即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建,撤销和切换都由核心实现。
硬件线程就是线程在硬件执行资源上的表现形式。单个线程一般都包括上述三个层次的表现:用户级线程通过操作系统被作为核心级线程实现,再通过硬件相应的接口作为硬件线程来执行。
https://zhuanlan.zhihu.com/p/670803961
分布式处理器SMP
共享内存
运行程序
执行目标文件时,shell 程序将位于磁盘目标文件中的字符逐个读入寄存器,然后放到主存中。之后处理器就开始执行目标文件的机器语言指令,从 main 程序开始。
利用直接存储器存取(DMA)可以不通过寄存器,直接将数据从磁盘到达内存。
以输出打印 hello world 为例,处理器将 hello world 的字节复制到寄存器,然后再复制到显示器,最后显示在屏幕上。
整个流程:读取文件字符到寄存器 → 存储到主存 → 执行指令 → 加载 helloworld 到寄存器 → 复制到显示器 →