输出寄存器数据路径如何在6502中工作?

时间:2017-10-10 12:24:48

标签: processor 6502

我目前正在LogiSim中开发6502的子集,在目前阶段,我正在确定要实施哪些部分以及可以削减哪些部分。我的主要资源之一是Hanson's Block Diagram

我目前正在尝试确定输出寄存器及其数据路径的工作原理。在此图中,我看起来像数据输出寄存器通过输入数据锁存器返回总线,但也返回到指令寄存器。

Confusing part of diagram

这让我感到困惑,因为通常图表右侧的地址线被发送回程序存储器(未图示),而不是如图所示返回总线。

此数据路径究竟如何运作?作为后续工作,是否可以简化此区域以仅获取输出并将其发送到显示器而不是如图所示返回处理器?

1 个答案:

答案 0 :(得分:1)

  

这使我感到困惑,因为通常将图右侧的地址线发送回程序存储器(未显示),而不发送回总线,如图所示。

地址总线的工作方式不同于数据总线。地址总线总是 输出,但数据总线可以是Input或Output。我们说数据总线是三态的。它要么读,要么写,或者都不做。每个引脚d0d7都有一个简单的电路,其中包含几个控制该晶体管的晶体管。对于6502,CPU的每个周期都在读取或写入内容。换句话说,从6502的角度来看,每个周期都是读或写周期。

  

我目前正在尝试确定输出寄存器及其数据路径的工作方式。

看看:每个φ2加载了输入数据锁存器和预解码寄存器。但是输出数据寄存器中的每个φ1都已加载。 φ1和φ2是CPU时钟的两个阶段。这种安排留下了足够的时间,例如一个值可以从输入数据锁存器通过ALU传递到例如输出数据寄存器。

数据输出寄存器的输出进入数据总线三态缓冲器。如您所见,这由R/Wφ2控制。如果是读取周期,则那里什么也没有发生。因此,如果是写周期,则意味着数据输出寄存器中的值(之前的φ1已加载)将被放置到数据总线上。它还将被加载到预解码寄存器和输入数据锁存器中。

  

在此图中,在我看来,数据输出寄存器通过输入数据锁存器返回到总线,但又回到指令寄存器。

绝对。 CPU输出的所有内容也都可以加载到输入数据锁存器和预解码寄存器中。但这没关系,因为一条指令将始终以读取周期开始,这就是操作码的提取,因此输入数据锁存器和预编码寄存器将被覆盖并带有适当的值。