Featured image of post 底层向上-从CPU开始的旅程(一)

底层向上-从CPU开始的旅程(一)

封面来源 Pixiv 95890188 今天就正式开写了!

下定义

计算机:根据程序进行运算的计算机器

由以下几部分组成:

  • CPU:计算,处理数据
  • 存储器:存储程序和数据
  • I/O:和外部进行数据交换
  • 总线:连接上面的三个东西

CPU

这是一种根据指令进行各种处理的电子电路,处理流程如下:

1.Fetch 读取

CPU中有 PC(Program Counter)寄存器,可以记录即将执行的指令的地址,然后CPU就把指令从内存中取出。

2.Decode 解码

CPU获得指令后,将指令交给 指令解码器 来解码。

3. 执行

解码完成后,CPU便处理对应操作,如从内存和寄存器中读取数据再写入数据,或者中断指令

这段解码后的数字包括两个部分:操作码和操作数,均为二进制 - 这就是机器语言。

根据指令的复杂度,可以把CPU分为RISC(Reduced Instruction Set Computer)精简指令集计算机CISC(Complex Instruction Set Computer)复杂指令集计算机,代表分别为arm以及amd64,i386.

这两种类型各有优劣,比如RISC硬件会较简洁,CISC则会更复杂,但是为了达到同样的目的,RISC执行的指令会比CISC的指令多得多。

现在AMD和Intel也在内部将CISC的复杂指令分解为简单指令,使内部像CISC一样工作。

内存

这是用来存放运行时指令和数据的存储器

采用DRAM(Dynamic Random Access Memory)技术,根据电容器中电荷的多寡来表示01。

DRAM根据访问方式和规格的不同分为SDRAM(Synchronous DRAM)DDRSDRAM(Double Data Rate SDRAM)等种类。

总结:访问速度register(寄存器)>RAM(内存)>外存

I/O

输入数据和输出数据的装置

访问I/O的方式分为存储器映射和端口映射两种。

存储器映射,就是把I/O与内存以同样的方式进行管理,访问I/O和访问内存均以地址访问。

端口映射,以不同的指令来分别访问I/O和内存。

总线

CPU,RAM,I/O之间交换数据的共享通道。

发起访问的一方叫总线主控,接受访问的一方叫做总线从属。

由数据总线,地址总线和控制总线组成。

数据总线用来传输交换的数据,地址总线指定访问的地址,控制总线负责总线访问的控制。

各个信号的时序、进行交换的规则等称为总线协议。

这个交换的过程叫做总线传输。

总线传输过程大概如下:

1.申请使用总线: 由总线控制器中的仲裁器来完成。

2.许可使用总线:总线控制器传回信号,许可授权。

3.请求访问:总线主控对从属的发出访问请求,包含访问地址,读取/写入,(写入数据)等。

4.应答:接受访问的总线从属对主控的应答。

5.释放:总线主控告知控制器释放控制权。

Licensed under CC BY-NC-SA 4.0
所念皆星河
Built with Hugo
主题 StackJimmy 设计

提供全站CDN服务