lw:从哪个内存加载字 - RAM 或磁盘
lw: load word from which memory - RAM or disk
lw
- 一个字从指定地址加载到寄存器(在 CPU 中)。
但是这个词是从哪个内存加载的呢?内存还是磁盘?我知道内存在 CPU 之外,但是地址(第二个操作数)指的是哪个内存?
存储设备通常通过更复杂的 I/O (input/output) 机制连接,因为它们确实以甚至与 CPU 速度无关的速度运行(我的意思是即使使用旧的 MHz 处理器,任何带硬盘的 I/O 都需要 "ages"。
MIPS 架构可能最接近 "second generation" from the wiki:
They typically separated the computer into two "worlds", the CPU and memory on one side, and the various devices on the other.
内存芯片通常直接连接到CPU(M线用于地址总线,在MIPS上高达32,N线用于数据传输,在MIPS 32上也用于数据)和几根线处理 read/write/ack/err/parity 传输逻辑......这是很多电线,通常这占据了 CPU 引脚的主要部分和 [几乎] RAM 芯片的所有引脚。
以类似的方式连接 any/several 存储设备会使 PCB 的设计变得非常困难和昂贵,因此 I/O 引脚通常更加稀疏,并且所有 I/O 设备共享总线的那部分,使用一些控制引脚 sync/share 当哪个设备正在使用总线时。
所以磁盘上的数据没有任何 "addresses" 直接在 CPU 上,寻址是通过 I/O 总线向设备发送(有时是几个)信号来完成的,通过几条指令并花费一些 CPU 时间 + 同步。旧磁盘太慢了,这没问题,而且一些块设备的逻辑足够简单,可以由 DMA 芯片控制,它代表 "Direct Memory Access",这允许 CPU 只需设置传输初始值,然后 DMA 芯片完成它,等待来自设备的所有数据并将其直接写入 RAM 芯片(无需进一步 CPU 干预)。
任何关于 "addresses" 和 "memory" 的 ASM 指令总是在谈论 RAM/ROM/alike 芯片,任何其他指令描述中都会有它。
lw
- 一个字从指定地址加载到寄存器(在 CPU 中)。
但是这个词是从哪个内存加载的呢?内存还是磁盘?我知道内存在 CPU 之外,但是地址(第二个操作数)指的是哪个内存?
存储设备通常通过更复杂的 I/O (input/output) 机制连接,因为它们确实以甚至与 CPU 速度无关的速度运行(我的意思是即使使用旧的 MHz 处理器,任何带硬盘的 I/O 都需要 "ages"。
MIPS 架构可能最接近 "second generation" from the wiki:
They typically separated the computer into two "worlds", the CPU and memory on one side, and the various devices on the other.
内存芯片通常直接连接到CPU(M线用于地址总线,在MIPS上高达32,N线用于数据传输,在MIPS 32上也用于数据)和几根线处理 read/write/ack/err/parity 传输逻辑......这是很多电线,通常这占据了 CPU 引脚的主要部分和 [几乎] RAM 芯片的所有引脚。
以类似的方式连接 any/several 存储设备会使 PCB 的设计变得非常困难和昂贵,因此 I/O 引脚通常更加稀疏,并且所有 I/O 设备共享总线的那部分,使用一些控制引脚 sync/share 当哪个设备正在使用总线时。
所以磁盘上的数据没有任何 "addresses" 直接在 CPU 上,寻址是通过 I/O 总线向设备发送(有时是几个)信号来完成的,通过几条指令并花费一些 CPU 时间 + 同步。旧磁盘太慢了,这没问题,而且一些块设备的逻辑足够简单,可以由 DMA 芯片控制,它代表 "Direct Memory Access",这允许 CPU 只需设置传输初始值,然后 DMA 芯片完成它,等待来自设备的所有数据并将其直接写入 RAM 芯片(无需进一步 CPU 干预)。
任何关于 "addresses" 和 "memory" 的 ASM 指令总是在谈论 RAM/ROM/alike 芯片,任何其他指令描述中都会有它。