cpu时钟如何连接到其他组件

问题描述 投票:1回答:1

cpu时钟如何连接到其他组件。人们的意思是说所有的操作都是从时钟开始的。

clock cpu-architecture
1个回答
2
投票

CPU时钟驱动CPU。在内部有一个总线系统,基本上是一组电气连接。有人,也只有一个人可以将数据放在上面。例如,寄存器输出或ALU结果(嗯,他们不想,控制单元告诉他们这样做,这确保只有一个实体可以在写模式下访问总线)。 该操作是不安全的,因为逻辑可能在电信号移动通过逻辑门时多次波动电信号直到其稳定,或者某些信号将比其他信号更早出现。这取决于电容和电感效应等延迟信号。 因此,在时钟触发之前,没有人会从总线读取数据。时钟脉冲表示已经过了足够的时间,信号应该是安全的,并且假设总线上的信号是稳定的。 这是通过在想要从总线读取的设备上简单地使用和门或边缘检测器和时钟信号来完成的。

例:

Data-Bus ----/8----- [   ]
Data-In  ----------- [ R ]
Data-Out ----------- [ E ]
Clk      ----------- [ G ]

' Data-Out may be asyncronous like this, though not recommended, or on falling/low clock pulse, or the Data-Out signal is clock synced:
Data-Bus[0] = Data-Out AND Data[0]
Data-Bus[1] = Data-Out AND Data[1]
Data-Bus[2] = Data-Out AND Data[2]
[...]
' Data-In will almost always be clock synced
If (Data-In AND Raising-Clk-Edge)
{
    Data[0] = Data-Bus[0]
    Data[1] = Data-Bus[1]
    [...]
}

这当然高度依赖于您的实际硬件。例如,读使能,写使能和输出使能可以是低电平有效等。

有一个人在实际上在面包板上构建CPU的great youtube series。当然,就现代cpu而言,这是过分简化的,它有助于理解基础知识。

cpu时钟本身通常不直接连接到其他硬件,而是cpu产生触发脉冲,告诉其他人现在可以安全地从/向总线读/写。

每条指令可以由几个微指令组成。例如: LDA #5,将5加载到A-Register中

' Fetch
Put IP on Address bus, Enable memory out => Opcode for LDA-Immediate is now on Data-Bus
Write-Enable Instruction Register, Increment IP
' Decode with combinatorial logic
' CU realizes it needs another word from memory (the value) and it needs to go to the A-Register
' Execute
Put IP on Address bus, Enable memory out => #5 now on data-bus
Increment IP, Write-Enable A-Register => #5 now in A-Register
' Done

这是由cpu时钟完成的。系统时钟与此无关。

© www.soinside.com 2019 - 2024. All rights reserved.