指令和数据
指令和数据是应用上的概念,在内存或磁盘上,两者没有任何区别,都是二进制信息。
如同围棋中的棋子,在棋盒里没有任何区别,在对弈的时候才有不同的意义
存储单元
计算机最小信息单位为Bit,也就是一个二进制位。8个bit组成一个Byte.通常称之为字节
1B=8Bit,1KB=1024B,1M=1024KB,1G=1024G,1T=1024G
一般来说,内存与硬盘等存储器丢以字节(B)为最小计量单位
CPU如何读写存储器
CPU想要进行数据的读写,必须跟外部芯片进行如下信息的交互
- 存储单元的地址(地址信息)
- 读/写的命令(控制信息)
- 读/写的数据(数据信息)
那么CPU是通过什么将以上这些信息传输到外部芯片中的呢?
答案是导线,又称之为总线。
根据作用不同,总线分为:
- 地址总线
- 控制总线
- 数据总线
地址总线
从上面可以直到,CPU通过地址总线来指定存储单元(寻址),总线上能传输多少信息,CPU就能对多少个存储单元进行寻址
一根总线代表一个电信号,一个电信号能传递高电平/低电平两种信息。用二进制表示就是1/0
那么假如一个CPU有32根导线,那么它能组合排列传递的二进制信息就是2^32。
由于存储单元的最小单位是字节,所以一个该CPU最大的寻址范围就是2^32/1024/1024/1024 =4GB
我们一般形容一个CPU有多少根总线,就代表这个CPU总线有多宽。组合排列下可以最多寻找2^N次方的内存地址
数据总线
总线的宽度决定了CPU与外部芯片的传输速度,比如8根总线一次可传递8个bit(即1B,一个字节),16根总线就可以传递两个字节的信息
举个例子
某个CPU有8根总线,要向内存写入数据89D8.采用小端法传递。进制转换如下:
由于受限于总线宽度,只能分为两次进行传输,如果总线长度延长到16,就能一次性全部传输完毕。
控制总线
CPu对外部芯片的控制(下达指令)通过控制总线来进行,同样的,有多少根总线就意味着有多少种控制
比如前面讲的读/写内存的命令,就由好几根控制总线组合排列而成,其中一根"读信号输出"的控制线负责由CPU向外部芯片发送读信号,有一根"写信号输出"的控制线负责传递写信号
内存地址空间
简单来说,如果一个CPU的地址总线宽度为10,那么就是2^10=1024,那么就可以寻址1024个内存单元
最终运行程序的是CPU,系统中所有的存储器都处于一个统一的"逻辑"存储器中,并占有一个地址段。它的容量受CPU寻址能力的限制,这个"逻辑"存储器就是我们所说的内存地址空间。
每个硬件都在这个"逻辑"存储器中占有一个地址段,CPU在这段地址上读写数据。实际上就是在对应的硬件中读写数据