关于linux:X86架构CPU总线内存

46次阅读

共计 1165 个字符,预计需要花费 3 分钟才能阅读完成。

特此说明: 刘超的趣谈 linux 操作系统是比拟重要的参考资料,本文大部分内容和所有图片来源于这个专栏。

00、计算机的工作模式

关键词 : CPU、总线、内存、其余设施
了解: 计算机仅通过 cpu 执行数据运算,两头后果保留到内存,最终运算后果传递给到其余过程解决

  • CPU是这台计算机的大脑
  • 总线 组成 CPU 和其余设施的高速通道
  • 内存 存储介质,保留 CPU 计算的两头后果
  • 其余设施,显卡 / 显示器、磁盘控制器 / 磁盘、usb 控制器 / 鼠标键盘等

01、CPU 和内存

关键词 : 运算单元、数据单元、管制单元、代码段、数据段、指令指针寄存器、过程切换、总线
了解 : CPU 外部有 3 个单元组成。当程序加载到内存时,cpu 通过总线读取过程的数据段(数据) 和代码段(指令),将运算后的后果写回数据段。

  • 运算单元 只管算,例如做加法、做位移等等。
  • 数据单元 包含 CPU 外部的缓存和寄存器组, 空间小速度快,能够临时存放数据和运算后果。
  • 管制单元 是一个对立的指挥核心,它能够取得下一条指令,而后执行这条指令。
  • 内存分段 这里简略分为代码段和数据段两块,别离寄存指令和数据。
  • 指令指针寄存器 是管制单元局部,寄存下一条指令在内存中的地位。
  • 过程切换CPU 里有两个寄存器,专门保留以后解决过程的代码段的起始地址,以及数据段的起始地址(A 过程切换 B 过程后,指令指针寄存器也会指向 B 的代码段)。
  • 总线 有地址总线的位数决定寻址范畴,数据总线的位数决定一次读取多少数据。

02、x86 平台

关键词 : 凋谢、对立、兼容
了解: 约定俗成

03、x86 平台处理器(8086 处理器和 32 位处理器)

关键词 : CS、DS、SS、20 位地址总线、32 位地址总线、段描述符、抉择子、实模式、保护模式
了解 : 实模式是为了 16 位处理器(20bits 总线),但这样对于 32 位处理器(32bits 总线) 无奈做到兼容, 开机后会从实模式切换到保护模式。

04、总结

对于 X86 架构在 32bits 处理器会开启段的工作模式,CPU 对内存寻址的过程中,管制单元寄存器中寄存的是段抉择子, 通过它在内存的表格中找到段描述符,最终拿到段起始地址。下图阐明在此模式下 cpu 各单元和内存的工作模式。

05、练习题

# 理解下汇编指令:
mov, call, jmp, int, ret, add, or, xor, shl, shr, push, pop, inc, dec, sub, cmp

# 答案: 
move a b : 把 b 值赋给 a, 使 a =b
call 和 ret :call 调用子程序,子程序以 ret 结尾
jmp : 无条件跳
int : 中断指令
add a b : 加法,a=a+b
or : 或运算
xor : 异或运算
shl : 算术左移
ahr : 算术右移
push xxx : 压 xxx 入栈
pop xxx: xxx 出栈
inc: 加 1
dec: 减 1
sub a b : a=a-b
cmp: 减法比拟,批改标记位

参考资料

  • 极客工夫 – x86 架构
  • x86 Assembly Guide
  • Linux 学习笔记《六》

正文完
 0