首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CPU基本结构和运行原理

CPU基本结构和运行原理

作者头像
JavaEdge
发布2023-01-10 13:42:10
发布2023-01-10 13:42:10
1.6K0
举报
文章被收录于专栏:JavaEdgeJavaEdge

1 CPU的基本结构

1.1 CPU是一个计算系统的核心

Control Unit,负责控制。如指令计数器,指令跳转。

Logic Unit,负责计算。如加减,比较大小等。

1.2 南北桥芯片将CPU与外设连接

北桥:CPU和内存、显卡等部件进行数据交换的唯一桥梁,即CPU想和其他任何部分通信,须经过北桥。北桥芯片中通常集成的还有内存控制器等,控制与内存的通信。现在的主板上已经看不到北桥,它的功能已被集成到CPU当中。

南桥:主要负责I/O设备之间的通信,CPU要想访问外设必须经过南桥芯片。

总线:传输数据用,分为地址总线、数据总线。以内存为例,地址总线传输要访问的内存地址,数据总线传输读写的数据。有些总线地址和数据是分离的,有些是同一根总线分时利用。

FSB总线:前端总线(Front Side Bus),CPU和北桥之间的桥梁,CPU和北桥传递的所有数据必须经过FSB总线,FSB总线的频率直接影响到CPU访问内存的速度。

ISA总线:最早出现的标准总线,传输速度低,早期的低速外设会采用ISA总线进行连接,如声卡。

PCI总线:一种高性能局部总线,构成了CPU和外设之间的高速通道。显卡一般都是用的PCI插槽,PCI总线传输速度快,能很好让显卡和CPU进行数据交换。

1.3 CPU的执行流程

典型CPU包含以下5个执行流程:

  1. 取指,从内存中取出指令
  2. 译码,识别指令的类型,计算指令长度,从指令中解析参数
  3. 执行,将数据送给计算单元或者控制单元进行具体计算和跳转
  4. 访存,有些指令可能需要从内存加载数据
  5. 写回,有些指令对寄存器或者内存状态有影响,将结果写入这些受影响的寄存器或者内存。

2 电路基础

2.1 组合电路基本原理

加法器真值表:

output = x xor y

C = x and y

只有当两个输入都为高电平时,输出才为高电平

至少有一个输入为高电平时,输出为高电平 输出与输入相反

2.2 时序电路基本原理

D触发器可保存数据,为了保证触发器的输出Q是正确的值,一定要让D信号稳定后,才在时钟的上升沿打入触发器。

单核主频有极限,多核成为主流:

3 汇编语言和寄存器

X86常用寄存器

16个通用寄存器:RAX, RBX, RCX, RDX, RSI, RDI, RSP, RBP,R8, R9, R10, R11, R12, R13, R14, R15。

程序计数器:RIP

状态寄存器:EFLAGS

段寄存器:CS, DS, ES, FS, GS

RAX:调用程序时,用于存储返回值。

RCX:在字符串处理指令中,常用做计数器。

RSI:在字符串处理指令中,做为源操作数。

RDI: 在字符串处理指令中,常做为目标操作数。

RSP:指向当前栈帧的栈顶。

RBP:指向当前栈帧的栈基址。

RDI, RSI, R8, R9可以在调用函数时传递参数。

RIP记录当前指令地址,每次取指阶段完成以后就会指向下一条指令的地址,如果有办法修改这个寄存器的值,就可控制程序的执行。

EFLAGS记录溢出,方向,为零等状态。可用于整个CPU的状态标记。

段寄存器在现代CPU中几乎不起作用了。在8086时代是做为段基址寄存器。

3.1 汇编语言是一种低级语言

也可使用gcc -s将C语言先翻译成汇编文件。

机器码是CPU真正能看懂并逐条执行的指令,而汇编语句是给人看的。

由于汇编语句与机器码几乎一一对应,所以我们也常常对机器码和汇编这两个词不加区分。

3.2 注意汇编代码中的寄存器宽度

AL和AH是1字节,也就是8位寄存器,AX是16位,EAX是32位,RAX是64位。其它通用寄存器也符合这个命名规则。

4 中断的基本原理

4.1 中断的产生

如下图所示,两片8259A级联可以处理共15种中断,其中包括时钟,键盘,软盘,硬盘,DMA等等。

当链盘被敲击时,就会通过8259A向CPU发出中断请求,CPU根据中断号判断是什么类型的中断。

4.2 中断服务程序

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 CPU的基本结构
    • 1.1 CPU是一个计算系统的核心
    • 1.2 南北桥芯片将CPU与外设连接
    • 1.3 CPU的执行流程
  • 2 电路基础
    • 2.1 组合电路基本原理
    • 2.2 时序电路基本原理
  • 3 汇编语言和寄存器
    • 3.1 汇编语言是一种低级语言
    • 3.2 注意汇编代码中的寄存器宽度
  • 4 中断的基本原理
    • 4.1 中断的产生
    • 4.2 中断服务程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档