摘要: https://zhuanlan.zhihu.com/p/26244141PCI的拓扑结构和枚举过程 https://www.sohu.com/a/300238384_505795首先我们来看一下在x86系统中,PCIe是什么样的一个体系架构。下图是一个PCIe的拓扑结构示例,PCIe协议支持256 阅读全文
posted @ 2021-03-13 19:39 蹦蹦骑士 阅读(891) 评论(0) 推荐(0) 编辑
摘要: Local APIC Local APIC 是在CPU内部的,每个逻辑处理核心都配有一的对应的local APIC。 Local APIC 能产生、发送和接受中断,CPU之间的通讯IPI也是通过Local APIC来实现的。 Local APIC 使用一组寄存器来控制,之前的APIC 是将寄存器映射 阅读全文
posted @ 2021-03-13 19:36 蹦蹦骑士 阅读(3010) 评论(0) 推荐(1) 编辑
摘要: 基本结构 8259 有8个中断 记为 IRQ0 - IRQ7, 优先级自高到底,IRQ0 > IRQ7 由于一个8259不够用所以 一般在 主8259的 IRQ2上接一个 从8259 从8259 也有IRQ0-IRQ7 但是由于是接在主8259上的所以记做IRQ8-IRQ15, 也有是接在IRQ2上 阅读全文
posted @ 2021-03-13 19:16 蹦蹦骑士 阅读(2602) 评论(0) 推荐(0) 编辑
摘要: 前言 我们首先来理清一些名词 x86, x64, IA-32, IA-32E, IA-64, AMD64, Intel64。 x86指的就是之前说的从8086发展起来的80X86系列架构包括80286,80386,80486.., 现在指32位架构。之后Intel抛弃x86搞了个独立的64位架构称之 阅读全文
posted @ 2020-03-08 23:19 蹦蹦骑士 阅读(2929) 评论(1) 推荐(0) 编辑
摘要: CPU高速缓存 从80486在CPU内部新增了高速缓存,他是内存的缓存 CR0 中页新增了两位用于控制高速缓存的工作方式 CD 和 NW,他们控制逻辑如下 同时新增两个指令 INVD 清空高速缓存 WBINVD 先回写缓存然后清空缓存 具体没去深究怎么回是,其中使无效的意思就是能不能用 上面两条指令 阅读全文
posted @ 2020-02-23 16:30 蹦蹦骑士 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 简述 前面提到的分段机制获得了虚拟地址,那么分页直接就是实现了虚拟地址到物理地址的映射,因为枫叶机制可以被关闭,那么此时就相当于虚拟地址一对一的直接映射到物理地址上了 页固定位4K对齐,所以一个32位虚拟地址前20位用来寻找对应的页,后12位作为页内偏移用来定位具体位置。 分页机制 分页机制有两张表 阅读全文
posted @ 2020-02-23 01:50 蹦蹦骑士 阅读(818) 评论(0) 推荐(1) 编辑
摘要: 基本概念 IOPL: IOPL 和 DPL 等类似是正对IO操作的特权保护级别,IOPL存储在 标志寄存器 EFLAGS 中,他指示了当前IO操作的保护级别,只有当CPL<= IOPL是IO操作才被允许 IO位图: IO位图存储在TSS段中,是按位表示的IO端口的随意读写权限,比如位M 就表示IO端 阅读全文
posted @ 2020-02-22 23:28 蹦蹦骑士 阅读(845) 评论(0) 推荐(0) 编辑
摘要: 小结: 除CRX 和 DRX两组寄存器外,其他都是 写需要特权级 读不需要特权级 实模式 只能操作 GDT IDT 和 CRX 和 DRX两组寄存器 CRX 和 DRX这两组寄存器的所有操作都需要特权 寄存器读写指令 48位的段寄存器 格式: SGDT DST,LGDT SRC,SIDT DST,L 阅读全文
posted @ 2020-02-22 22:32 蹦蹦骑士 阅读(2229) 评论(0) 推荐(0) 编辑
摘要: 基本总结 1. 保护模式采用 [ 选择子 : 偏移地址] 的方式寻址,选择子包含 特权级 表选择 和表索引三部分,表选择只能是 GDT 和LDT 二选一 2. 表中存储着 存储段的段地址 也存储着称之为门和系统结构的数据,通过这些数据可以二次寻址,二次寻址是CPU自动完成的 3. 门 内存储着选择子 阅读全文
posted @ 2020-02-22 18:35 蹦蹦骑士 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 基本概念 80386将8086中的中断分成了两个 中断 由外部硬件引起的中断仍然较中断 异常 有内部中断引起的中断改叫异常,因为为他一般与代码的运行有关,而中断一般与代码的运行无直接关系 然后根据 恢复点,即异常处理完之后从哪里介质运行又细分为3类 故障 在指令运行前或运行中出异常,处理完异常后会重 阅读全文
posted @ 2020-02-22 16:45 蹦蹦骑士 阅读(667) 评论(0) 推荐(0) 编辑