首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cpu时钟如何连接到其他组件

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

Stack Overflow用户
提问于 2019-03-29 16:59:24
回答 1查看 129关注 0票数 1

cpu时钟是如何连接到其他组件的。人们说所有的操作都开始于时钟滴答声是什么意思。

EN

Stack Overflow用户

发布于 2019-03-29 17:09:54

CPU时钟驱动CPU。在内部有一个总线系统,基本上是一个捆绑的电气连接。有些人,而且只有一个人,可能会把他们的数据放在上面。例如,寄存器输出或ALU结果(他们不想这样做,控制单元告诉他们这样做,这确保在写模式下只有一个实体可以访问总线)。

这种操作是不安全的,因为当电信号通过逻辑门时,逻辑可能会多次波动电信号,直到电信号稳定,或者某些信号会比其他信号更早到来。这取决于电容和电感效应等,延迟信号。

因此,在时钟触发之前,没有人会从总线上读取数据。时钟脉冲表明经过了足够的时间,信号应该是安全的,并且假定总线上的信号是稳定的。

这只需在想要从总线读取的器件上使用带时钟信号的and门或边沿检测器即可。

示例:

代码语言:javascript
运行
复制
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]
    [...]
}

当然,这很大程度上取决于您的实际硬件。例如,读使能、写使能和输出使能可以是低有效等。

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

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

每条指令可以由几条微指令组成。例如:

LDA #5,将5加载到A寄存器

代码语言:javascript
运行
复制
' 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时钟完成的。系统时钟与此关系不大。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55413752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档