总线、寻址、控制信号
前言
最近重新拾起《深入理解计算机系统》看到讲汇编的地方,认真看汇编是怎么回事,作者跳过了许多东西实在是跟不上书上的节奏。于是找了下往上关于汇编的书籍,找到一本《汇编语言》(王爽著)讲得非常不错,开头第一章就解开了很多我模糊不清的地方。
总线
总线是跟 CPU 相连所有导线的总称,它按功能划分成三种
- 地址总线
- 数据总线
- 控制总线
其中,地址总线接触的比较多,寻址就是靠地址总线来完成的。地址总线寻址完成之后根据控制总线的命令(读或者写)通过数据总线把内存中的数据复制到 cpu 中,或者从 cpu 寄存器复制数据到内存中(写)。所以后面的传送指令的两个操作数不能都指向存储器位置(也就是内存),必须经过 cpu 中转下。
地址总线总共有多少根,就能寻多少位的地址。32 根,那就能寻到 32 位的地址,那就是 2^32 就是 4G 内存。32 位机器最大只能支持 4G 内存就是这么来的。
地址总线通过配置每根线上的高低电平 11101111….11001 就能定位到内存中任意一个内存块,这跟学校里做数电实验的内容一样。
《深入理解计算机系统》对“word”的描述为 I/O 总线的大小,我没有经过查证认为地址、数据、控制总线其实是时分多路复用的,所以最大就是地址总线。地址总线是 32 位的,当前字长就是 4 字节(八位一字节),64 位机字长就是 8 字节。