有没有什么MDR到MAR不通过总线的途径
时间: 2023-06-16 17:06:52 浏览: 138
MDR (Memory Data Register) 和 MAR (Memory Address Register) 是计算机中与内存交互的两个寄存器,它们通常是通过总线进行数据传输的。不过,如果想要不通过总线来实现 MDR 到 MAR 的数据传输,可能需要使用一些非常特殊的硬件或软件技术。
一种可能的方法是使用直接内存存取(Direct Memory Access,DMA)技术。DMA 是一种让外设直接访问内存的技术,可以避免 CPU 的干预,提高数据传输速度。在 DMA 中,外设可以直接访问内存,而不需要通过 CPU,在这个过程中,MDR 和 MAR 可以直接进行数据传输。
另一种方法是使用共享内存技术。共享内存是一种让多个进程可以共享同一块物理内存的技术。在这个过程中,MDR 和 MAR 可以直接访问共享内存,进行数据传输。
总之,这些方法都需要特殊的硬件或软件支持,而且需要谨慎地实现,以避免出现数据一致性或安全性问题。
相关问题
T0 PC→ MAR ;PC通过总线送MAR T1 M(MAR)→MDR, (PC)→ALU+1→R2 ;PC送ALU完成(PC)+1→R2 T2 MDR→IR ;MDR通过总线送IR OP(IR)→微操作命令形成部件 T3 R2→PC ;R2通过总线送PC
这是经典的基于冯·诺伊曼体系结构的计算机指令周期,包括取指令(Fetch)、译码(Decode)、执行(Execute)、访存(Memory Access)和写回(Write Back)五个阶段。在取指令阶段,程序计数器(PC)中存储的下一条指令的地址通过总线被送到内存地址寄存器(MAR)中,同时PC的值加1后送到寄存器R2中。在访存阶段,MAR中存储的地址被送到内存中,对应的指令被读取到内存数据寄存器(MDR)中。在译码阶段,指令被送到指令寄存器(IR)中。在执行阶段,根据指令的操作码,相应的微操作命令形成部件被激活。在写回阶段,执行结果被写回到相应的寄存器中,例如在这个周期中,寄存器R2中存储的(PC)+1的结果被写回到PC中。
和mar和mdr有什么区别
MAR和MDR是计算机内部的两种不同类型的寄存器,其主要作用如下:
- MAR(Memory Address Register):用于存储将要访问的内存地址。
- MDR(Memory Data Register):用于存储从内存中读取或写入的数据。
它们与通用寄存器的区别在于,通用寄存器是用于存储CPU内部的计算数据,而MAR和MDR则是用于处理CPU与内存之间的数据交互。MAR和MDR通常被用于实现CPU对内存的读取和写入操作,以及CPU与输入输出设备之间的数据传输。在这个过程中,MAR用于存储要访问的内存地址,而MDR则用于存储从内存中读取或写入的数据。
阅读全文