📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处
文章目录
- 一、读操作步骤
- 二、写操作步骤
以下是CPU和存储器之间数据交互的详细步骤:
一、读操作步骤
-
地址输出
- CPU首先会将想要读取数据的存储单元的地址信息输出到地址复用的总线上。这个地址信息包括存储芯片的片内地址(用于确定芯片内具体的存储单元)以及可能的高位地址信号(用于片选)。例如,在一个简单的单片机系统中,假设要读取外部数据存储器的一个字节数据,CPU会先将其地址信息(如0x1000)送到地址总线上。
- 地址总线的宽度决定了可寻址的范围。如果地址总线是16位的,理论上就可以寻址2^16 = 65536个不同的存储单元。
-
片选信号产生
- 同时,CPU会根据地址信息中的高位地址或者其他控制逻辑产生片选信号。片选信号用于选中具体的存储芯片。例如,当使用线选法时,如果高位地址A15为0,那么片选信号CS1可能就会被激活(变为低电平),从而选中第一个存储芯片。如果使用译码片选法,地址译码器会根据输入的高位地址信号组合产生相应的片选信号。
- 片选信号确保只有目标存储芯片能够响应后续的读写操作,避免其他连接在总线上的存储芯片受到干扰。
-
读控制信号有效
- CPU会将读控制信号置于有效状态(通常是使其电平变为低电平)。这个读控制信号会连接到存储芯片的读控制端。当读控制信号有效时,存储芯片被告知CPU要读取数据。
-
数据传输
- 在读控制信号有效的情况下,存储芯片会将指定地址存储单元中的数据输出到数据总线上。数据总线是双向的,但在读操作时,数据从存储芯片流向CPU。
- CPU会在适当的时间点(通常根据时钟信号的同步)对数据总线进行采样,将总线上的数据读取到CPU内部的寄存器或者数据缓存区中,完成数据的输入。
二、写操作步骤
-
地址输出
- 与读操作类似,CPU首先要输出要写入数据的存储单元的地址信息到地址总线上。这个地址同样包括片内地址和可能用于片选的高位地址信号。例如,若要向外部数据存储器的0x1000地址写入一个字节数据,CPU会先将地址0x1000送到地址总线上。
-
片选信号产生
- 根据地址信息或其他控制逻辑,CPU产生相应的片选信号,以选中要写入数据的存储芯片。例如,通过译码片选法,根据高位地址信号的组合,使能特定的片选信号,让目标存储芯片准备好接收数据。
-
写控制信号有效
- CPU将写控制信号置于有效状态(通常使其电平变为低电平),并将其发送到存储芯片的写控制端。写控制信号通知存储芯片,CPU将要向其写入数据。
-
数据传输
- 同时,CPU将要写入的数据输出到数据总线上。这些数据可以是指令、运算结果或者其他需要存储的信息。
- 在写控制信号有效的前提下,存储芯片会将数据总线上的数据写入到指定地址的存储单元中,完成数据的输出。
在整个数据交互过程中,时钟信号起到同步的作用,确保所有的信号(如地址、数据、控制信号)都能在正确的时间点进行操作,从而保证数据交互的准确性和稳定性。
