第一章

重点内容:1.3 内存及存储器访问

逆序存储:高位在前,低位在后。
存储器基本概念:

  • 字节:存取信息的基本单位,4个比特位。

  • 字:一个字16位,占用两个存储单元。

  • 双字:一个双字32位,占用四个存储单元。

  • 存储顺序:

    • 大端存储:高字节存储在低地址,低字节存储在高地址。
    • 小端存储:低字节存储在低地址,高字节存储在高地址。
  • 逆序存放:低地址中存放低位字节数据,高地址中存放高位字节数据。

  • LSB:最低有效位;LSB=0,意味着最低有效位是0。

数据表示:不要写01 FD,否则会认为是一个变量,要写成0FD。

了解掌握内容:1.1 微处理器及其性能指标、芯片组、接口等

主频:主频也叫时钟频率,表示在CPU内数字脉冲信号振荡的速度。
外频:是CPU与主板之间同步运行的速度。
倍频:指CPU和系统总线之间工作频率相差的倍数。
计算公式:主频 = 外频 * 内频

习题:2条DDR 400内存条,工作在200MHz频率下,每个时钟可以传送2次64位数据,求单/双通道带宽。

  • 答案:
    • 单通道:
    • 每个时钟周期传输128位数据;
    • 数据传输速率:DDR 400意味着每秒可以进行400MT。
    • 公式:$$\text{带宽} = \text{数据传输速率} \times \text{每个时钟周期传输的数据量}$$
    • $\text{带宽} = 400 \times 10^6 \times 128 , \text{bit/s}$
    • $\text{带宽} = 51.2 , \text{Gbps}$
    • 双通道:
    • $$\text{双通道带宽} = 2 \times \text{单通道带宽} = 2 \times 51.2 , \text{Gbps} = 102.4 , \text{Gbps}$$

习题: 1.7-10

第二章

重点内容:2.2 CPU工作模式

实模式:

  • 兼容8086,寻址机制、中断处理机制均和8086相同。
  • 只使用低20位地址线,寻址空间为220 = 1MB地址空间。
  • 采用分段式内存管理,物理地址形成为16位“段首址:偏移”。段最大为216 = 64KB。
  • 32位CPU加电或者复位后处于实模式。
  • 不支持硬件上的多任务切换。
  • 不支持特权级。
  • 存储器保留两个专用区:
    • 初始化程序区:FFFF0H~FFFFFH,存放进入ROM引导程序的一条跳转指令;
    • 中断向量表区:00000H~003FFH,在这1K字节的存储空间中存放256个中断服务程序的入口地址,每个入口地址占4个字节,这与8086的情形相同。
      保护模式:
  • 支持多任务和特权级 。
  • 支持内存分页机制,提供段式和页式内存管理功能。
  • 物理寻址空间高达2^32 = 4GB(80386/80486)或2^36 = 64GB(Pentium及以上CPU)。
  • 引入虚拟存储器的概念,以扩充编程者所使用的地址空间,段内偏移地址32位,每个段最大2^32B=4GB,每个程序最多可以使用16K个段,理论上的虚拟地址空间为4GB×16K=64TB。
  • 提供了一系列的保护机制,如任务地址空间的隔离,设置特权级,设置特权指令,进行访问权限(如只读、只执行)及段限检查等。
    虚拟8086模式:
  • 兼容8086程序,又称“V86模式”。
  • V86模式以任务的形式在保护模式上执行。操作系统中有专门的V86管理程序。
  • 采用模拟的方法实现特权指令。
    通过修改控制寄存器CR0的控制位PE(位0)来实现从实模式切换到保护模式。

特权级

  • 特权级 0:最高特权级,内核模式。操作系统核心部分运行在这个模式。
  • 特权级 1:较低的特权级,通常用于设备驱动程序等。
  • 特权级 2:比 Ring 1 权限更低,可能用于一些系统服务。
  • 特权级 3:最低特权级,用户模式。用户应用程序通常在此模式下运行。

重点内容:2.3 寄存器

通用寄存器

  • AX:累加器,乘法、除法运算等指令的专用寄存器。
  • BX:保存数据,可用作基址寄存器。
  • CX:保存数据,计数值,80386以上CPU也可用于访问存储器的偏移地址。
  • DX:保存数据,乘法、除法运算指令的专用寄存器,80386以上CPU也可用于访问存储器的偏移地址。
  • BP:保存访问存储单元时的偏移地址。

标志寄存器有效位含义

  • CF:进位标志;结果最高位产生进位或借位,CF=1,否则CF=0。
  • ZF:零标志;当运算结果为零时,ZF=1,否则ZF=0。
  • SF:符号标志;SF=0时结果为正数,SF=1时结果为负数。
  • OF:溢出标志;当其运算结果超出表达范围,OF=1,否则OF=0。
  • IF:中断允许标志;IF=1,允许CPU接收外部中断请求,否则屏蔽外部中断请求。
  • DF:方向标志;字符串操作指令,DF=0,串操作为自动增址,DF=1,串操作为自动减址。

保护模式:

  • 全局描述符表寄存器GDTR:
    • 高32位基址指出GDT在物理存储器中存放的基地址;
    • 低16位限长+1=全局描述符表的字节大小;
      -每个GDT最多含有8192个描述符(8192×8=64KB)。GDT可以在内存的任意位置,用LGDT把描述符表的起始位置装入GDTR。
  • 中断IDTR:
    • 最低16位是限长,给出中断描述符表IDT的字节大小(即限长+1);
    • 其高32位是基址,指出IDT在物理存储器中存放的基地址;
    • IDT中保存的是中断门描述符,每个门描述符包含8字节,IDT最多包含256个门描述符,因为CPU最多支持256个中断;
  • 局部LDTR:
    • 16位选择符
  • 任务TR:
    • 16位选择符;
    • 作用是选中TSS描述符。
    • 初值由软件装入,当执行任务切换指令时TR的内容自动修改。
  • 任务状态寄存器TSS:
    • 每一个任务都有一个任务状态段TSS,由TSS描述符描述。从GDT中检索出TSS描述符后,微处理器自动将TSS描述符装入TSS Cache中。
  • 段选择符:
    • 段寄存器中的16位内容;
    • 用于在段描述符表(GDT或LDT)中选择段描述符;
    • TI:表指示符;为0时,从GDT中选择描述符;为1时,从LDT中选择描述符。
    • RPL:请求特权级,2位二进制数字,范围为0~3。00代表特权级0,01代表特权级1,10代表特权级2,11代表特权级3。

重点内容:2.4 内存管理

实模式分段管理

  • 对段基址的限定:只要工作在实模式,段基址必须定位在地址为16的整数倍上,这种段起始边界通常称做节或小段。
  • 对段长的限定:在实模式下段长不能超过64K。

实模式存储器寻址
微处理器只可以寻址最低的1M字节。

实模式下20位物理地址的计算

  • 采用分段管理后,其物理地址的计算方法为:10H×段基址+偏移量
    • *简便的计算方法:因为段基址和偏移量一般用十六进制数表示,直接在段基址的最低位补以0H,再加上偏移量。

保护模式下的段描述符

  • 段描述符用于描述代码段、数据段和堆栈段。
  • 段描述符位于GDT或LDT中,占8字节,由以下几个部分组成:段基址(32位)、限长(20位)、访问权限(8位)和属性(4位)。
  • DPL是描述符特权级,它表明了什么样的特权级程序可以使用这个段。
  • 特权级检查:程序只能访问特权级相同或较低的数据。
  • 页式存储:每页4K

虚拟地址到物理地址的转换

  • 线性地址(32位)=段基址+偏移量(16bit段选择符+32位offset);
  • 接着确认是否允许分页,分页情况下,物理地址=页基址+偏移量;不允许,物理地址=线性地址。

PDBR

  • 页目录基址寄存器PDBR,它的高20位用于保存页目录表的起始物理地址的高20位。
  • 分页机制:10bit页目录索引+10位页表索引+12bit页面索引

了解内容:2.5 任务

任务状态段TSS

  • 在多任务环境下,每个任务都有属于自己的任务状态段TSS,TSS中包含启动任务所必需的信息,如用户可访问的寄存器等。
  • 任务状态段TSS在存储器的基地址和限长由TSS描述符指出。
  • TSS描述符必须放在全局描述符表GDT中,TR内容为选择符,它指出TSS描述符在GDT中的位置。TSS描述符说明各TSS的位置和限长。

门(系统描述符;调用门;任务门)
- 系统描述符:门描述符描述控制转移的入口点,属于系统描述符。

ì2.6 保护
n数据访问的保护;对程序的保护;对输入输出的保护
n数据访问:DPL ≥ MAX(CPL, RPL); CPL是当前正在运行的程序的
特权级(CS);DPL是描述符特权级;RPL是请求特权级。
n段间调用或跳转,需要检查限长,特权级CPL和DPL
•CPL=DPL,允许跳转和调用。CPL<DPL,禁止。CPL>DPL,此时要检查
段描述符的C位。如果C位为1,表示这是一致代码段,允许跳转和调用。