《计算机体系结构基础》杂记(1)

image

1、衡量计算机的指标:性能、价格和功耗是三个主要指标(PPA)
2、集成电路和微处理器的发展历程
image
image
3、达到百亿亿次(EFLOPS)量级,耗电量是几十兆瓦。
4、计算机体系结构发展很快,但在发展过程中遵循一些基本原则,这些原则包括平衡性、局部性、并行性和虚拟化。
5、计算机体系结构中有一个著名的Amdahl定律。该定律指出通过使用某种较快的执行方式所获得的性能的提高,受限于不可使用这种方式提高性能的执行时间所占总执行时间的百分比,例如
一个程序的并行加速比,最终受限于不能被并行化的串行部分。也就是性能的提升不仅跟其中的一些指令的运行时间的优化有关,还和这些指令在总指令数中所占的比例有关:
image
6、存储管理的演变经历了连续实地址、段式、页式虚拟存储等阶段。
MMU TLB

  • 存储管理构建虚拟的内存地址,并通过 MMU 进行虚拟地址到物理地址的转换。
  • 现代通用处理器的存储管理单元都基于页式虚拟管理,并通过 TLB 进行地址转换加速。

7、段式存储管理的地址转换过程
image
页式存储管理的地址转换过程
image
段页式管理
image

8、根据指令使用数据的方式,指令系统可分为堆栈型、累加器型和寄存器型。寄存器型又可以进一步分为寄存器‑寄存器型(Register‑Register)和寄存器‑存储器型(Register‑Memory)。
image
使用寄存器的优势在于,寄存器的访问速度快,便于编译器的调度优化,并可以充分利用局部性原理,大量的操作可以在寄存器中完成。此外,寄存器‑寄存器型的另一个优势是寄存器之间的相关性容易判断,容易实现流水线、多发射和乱序执行等方法。
9、五种 RISC 指令集的指令格式
image
10、异常分类:1)外部事件2)指令执行中的错误3)数据完整性问题4)地址转换异常5)系统调用和陷入6)需要软件修正的运算
11、异常处理流程
异常处理的流程包括异常处理准备、确定异常来源、保存执行状态、处理异常、恢复执行状态并返回等。主要内容是确定并处理异常,同时正确维护上下文环境。
异常处理是一个软硬件协同的过程,通常CPU硬件需要维护一系列控制状态寄存器(域)以用于软硬件之间的交互。
异常处理流程的五个阶段:
1)异常处理准备。
首先,需要记录被异常打断的指令的地址(记为EPTR)。
其次,调整 CPU 的权限等级(通常调整至最高特权等级)并关闭中断响应。
再次,硬件保存异常发生现场的部分信息
最后,记录异常的相关信息。
2)确定异常来源。
处理器确定异常来源主要有两种方式:一种是将不同的异常进行编号,异常处理程序据此进行区分并跳转到指定的处理入口;另
一种是为不同的异常指定不同的异常处理程序入口地址,这样每个入口处的异常处理程序自然知晓待处理的异常来源。
X86由硬件进行异常和中断号的查询,
3)保存执行状态。
4)处理异常。
5)恢复执行状态并返回。
之所以要采用专用的异常返回指令,是因为该指令需要原子地完成恢复权限等级、恢复中断使能状态、跳转至异常返回目标等多个操作。
在LoongArch中,异常返回的指令是 ERTN,
12、异常嵌套
异常嵌套通常基于优先级,只有优先级更高的异常才能进行嵌套,低优先级或同优先级的异常只能等待当前异常处理完成,系统支持的优先级级数就是异常嵌套的最大层数。

13、中断从系统中各个中断源传递到处理器主要有两种形式:中断线和消息中断。
中断的优先级
一种是硬件实现,即处理器可区分;
另一种是采用非向量中断模式的时候,处理器不区分中断优先级,此时若需要对中断进行优先级吹,可以通过软件方式予以实现,通常方案如下:
1)软件随时维护一个中断优先级(IPL),每个中断源都被赋予特定的优先级。
2)正常状态下,CPU 运行在最低优先级,此时任何中断都可触发。
3)当处于最高中断优先级时,任何中断都被禁止。
4)更高优先级的中断发生时,可以抢占低优先级的中断处理过程。
当采用向量中断模式的时候,处理器通常不可避免地需要依照一套既定的优先级规则来从多个已生效的中断源中选择一个,跳转到其对应的处理程序入口处。

14、处理器的存储管理部件(Memory Management Unit,简称 MMU)支持虚实地址转换、多进程空间等功能,是通用处理器体现“通用性” 的重要单元,也是处理器和操作系统交互最紧密的部分。
image

15、TLB的结构和使用
页表映射模式存储管理的核心部件是TLB。

  • 所有表项的页大小相同的单一页大小 TLB(Singular‑Page‑Size TLB,简称 STLB)
  • 支持不同表项的页大小可以不同的多重页大小 TLB(Multiple‑Page‑Size TLB,简称 MTLB)。
    在虚实地址转换过程中,STLB 和 MTLB 同时查找。
    软件需保证不会出现 MTLB 和 STLB同时命中的情况,否则处理器行为将不可知。
    image
    在TLB表项中,
    E表示该TLB表项是否存在,E为0的项在进行TLB查找时将被视为无效项;
    ASID标记该 TLB 表项属于哪个地址空间,只有 CPU 中当前的 ASID(由 CSR.ASID 的 ASID 域决定)与该域相同时才能命中,ASID 用于区分不同进程的页表;
    G 位域表示全局域,为 1 时关闭 ASID 匹配,表示该 TLB 表项适用于所有的地址空间;
    PS 表示该页表项中存放的页大小,数值是页大小的 2 的幂指数,有 6 比特宽,因此 LoongArch 指令系统的页大小理论上可以任意变化,处理器可以实现其中的一段范围;
    VPPN 表示虚双页号,在 LoongArch 指令系统中,TLB 的每项把两个连续的虚拟页映射为两个物理页;
    PPN 为物理页号,这个域的实际有效宽度取决于该处理器支持的物理内存空间的大小;
    PLV表示该页表项对应的权限等级;
    RPLV为受限权限等级使能,当RPLV=0时,该页表项可以被任何权限等级不低于 PLV 的程序访问,否则,该页表项仅可以被权限等级等于 PLV 的程序访问;
    MAT 控制落在该页表项所在地址空间上的访存操作的存储访问类型,如是否可通过 Cache 缓存等;
    NX 为不可执行位,为 1 表示该页表项所在地址空间上不允许执行取指操作;
    NR 为不可读位,为 1表示该页表项所在地址空间上不允许执行 load 操作;
    D 被称为 “脏”(Dirty)位,为 1 表示该页表项所对应的地址范围内已有脏数据;
    V 为有效位,为 1 表明该页表项是有效且被访问过的。
    TLB 地址翻译

多级页表结构
image

TLB 重填异常处理

16、不同指令系统的特色
1)MIPS部分指令特色。MIPS 指令集实现了不对齐访存指令 LWL/LWR。不同尾端下,LWL 和 LWR 的作用相反。
image
2)SPARC部分指令特色。 寄存器窗口
3)PA‑RISC部分指令特色。最大的特色就是Nullification指令,除了条件转移指令,其他指令也可以根据执行结果确定下一条指令是否执行。
4)PowerPC部分指令特色。又被称为 “RISC 中的 CISC”
5)LoongArch 部分指令特色。LoongArch 指令集的一个特色是其二进制翻译扩展。

17、六种上下文切换场景
image
18、同步机制

posted @   zhmiyo  阅读(124)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示