4

我真的不知道它是什么。甚至不知道如何去寻找它是什么。我将不胜感激任何帮助。

4

2 回答 2

5

想想祖父或其他摆钟的滴答声。在这种情况下,一个完整的滴答和滴答周期通常是一秒。对于钟表,我们从重力和/或弹簧驱动的机械装置转变为水晶驱动的电动装置。某些晶体可以用于电路中,从而产生电振荡。数字电子产品现在使用晶体,您可以获得高速和非常准确的计时。所以这种情况下的时钟是这个晶体振荡器的电输出,一个 10,000,000Hz(或 10MHz)的时钟意味着每秒有 1000 万个电滴答声。将其输入 AND、OR 和 NOT 逻辑,您就可以运行处理器和外围设备。

让我们将讨论限制在较旧的处理器或微控制器上,其中处理器和内存以及所有东西都使用相同的时钟。使用此时钟信号馈送数字逻辑,您可以拥有从内存读取指令并以某种派生速率执行这些指令的逻辑。用内存中的值加载寄存器(读取)可能需要 3 个时钟周期,一个时钟周期用于从内存中获取指令,另一个时钟周期用于解码并开始执行该指令,因为该指令是从内存中读取的,并且内存不能一次做两件事(在这个模型中),然后是第三个时钟周期从内存中读取,然后读取并执行下一条指令,依此类推。所以一些处理器会因为这些原因改变它们的执行时间,总是会从内存中获取指令并进行解码和执行,并且这些步骤中的每一个都需要一个或多个时钟周期。一些处理器设计选择使用固定的假设每个指令周期为 4 个时钟周期,该处理器的最长执行指令为 4 个时钟周期,有些可能只需要一个时钟周期。

然后事情变得更好,你听到了管道这个词,你看到了 x86 能够每个时钟执行一条指令或超标量的广告,它每个时钟执行一条以上的指令。这有点误导。如果您愿意,管道的作用是创建一条装配线。想想工厂电视节目,它是如何制作的等等。制造挂锁的机器,在流水线上有很多步骤,每一步都执行一个简单的操作,在表盘上涂上数字,将表盘移动到轴上,将表盘加轴插入单元等等。如果你看过的话这是最后一步,看起来他们在装配线的每个周期制作一个锁,而实际上每个锁可能需要 30 个时钟。对于一个时钟周期的处理器,管道上的一个成员从 ram 中获取指令,下一个内存解码前一条指令,第三个是前两条指令执行,依此类推。所以当你听到冲洗管道或管道停顿时,那是装配线已经停止,或者他们必须停止装配线并扔掉每个项目上线并重新开始。传统上,当您有一个分支指令,这意味着它之后的两条或几条指令不会被执行时,您必须刷新管道并从分支引导的地址再次开始填充它。

如果您已经存在足够长的时间或进行一些谷歌搜索或维基百科阅读,您会听说 486DX 处理器。这是现在非常普遍的事情的开始。在此之前,处理器中只有一个基于晶体振荡器的时钟,您想以 16MHz 运行您的处理器,您需要使用 16MHz 时钟。一些问题,一个是内存接口跟不上,一个非常简单的解决方案是你可以在你的处理器上使用这些引脚并以降低的速率与内存通信,比如你的处理器以 16Mhz 运行,你可以运行通过创建一个是主时钟频率一半的新时钟来将内存保持在 8Mhz。因此,从 16mhz 的滴答滴答滴答声中,您将输出更改为仅在滴答声上的内存。所以第一个内部滴答在内存总线时钟上打了一个滴答,第一个滴答声,内存输出没有变化,第二个滴答声你在内存总线时钟上放一个滴答声,第三个滴答声在内存上一个滴答声,第四个滴答声在内存总线上的一个滴答声,依此类推。真正的问题出现在 I/O 本身,处理器上的所有引脚都无法以内部晶体管可以运行的时钟速率运行。因此,对于 486DX,他们所做的是采用 25MHz 时钟,并使用一些模拟魔法将其转换为部件内部的 50MHz 时钟,部件的边缘、内存和其他总线以 25MHz 或更慢的速度运行,但是处理器,所以只要您可以足够快地提供指令(这导致谈论缓存),就会以 50MHz 运行管道。在没有停顿或刷新的突发情况下,每秒将有 5000 万条指令。在当时创造一个稳定的 2 倍乘数是一件棘手的事情。但今天它相对微不足道。现代多千兆赫兹处理器不使用千兆赫兹时钟,它们通常使用 100MHz 左右的时钟并将其扩展到处理器内核的几千兆赫兹,然后您可能会听到大约 800mhz DDR 内存或 1066MHz 内存或 1333 等。同样处理 100MHz 时钟参考被乘以为内存总线创建这些速度。

因此,在现代计算机中,与过去一样,您仍然使用基于晶体的振荡器作为时钟源,这是大自然的魔力,您可以为计算机周围的处理器和外围设备创建许多不同速度的时钟。例如,您可以搜索 USB 接口和火线和硬盘接口(ide/sata)等的各种时钟速率。

我已经看到您关于 PIC 编程的其他问题,例如,PIC 处于传统类型的模式中,所有东西都以单个时钟速率运行在单个时钟上,如果您在那里查看我的答案之一,您可以看到计数“时钟”周期,并使用周期单位对它们进行计数。完成后,您可以将时间单位应用于乘法或除法,具体情况可能是使用 4Mhz 时钟或 1MHz 时钟等。同一段代码可能需要 100 个周期才能执行,使用 4MHz 时钟的处理器将执行这 100 条指令的速度比使用 1MHz 振荡器快 4 倍。正如 drhirsch 暗示的那样,它几乎是线性的,至少对于像这样的简单情况。对于现代计算机,如果您使用相同的代码从同一个硬盘驱动器读取数据,3ghz 处理器的速度不会比 1 ghz 处理器快 3 倍,因为硬盘驱动器的速度是相同的慢速,并且 3ghz 处理器和 1ghz 处理器都停滞不前等待来自硬盘的数据。你可能有一辆法拉利的出租车,但如果你住在一个有 1 英里长和宽的年龄较大、速度较慢的人的城镇,那么你的法拉利大部分时间都会停在装卸乘客而不是超速行驶。几百码。小型货车实际上会比法拉利更快(让人们进出是瓶颈)。但是,如果你住在一个有 1 英里长和宽的年龄较大、速度较慢的人的城镇,那么你的法拉利大部分时间都会停在装卸乘客的地方,而不是超速行驶几百码。小型货车实际上会比法拉利更快(让人们进出是瓶颈)。但是,如果你住在一个有 1 英里长和宽的年龄较大、速度较慢的人的城镇,那么你的法拉利大部分时间都会停在装卸乘客的地方,而不是超速行驶几百码。小型货车实际上会比法拉利更快(让人们进出是瓶颈)。

于 2011-03-17T17:32:59.130 回答
0

在这种情况下,时钟频率或时钟速率是执行单个命令或 CPU 中命令的最小不可分割部分的速率。它是时钟周期长度的倒数。

示例:Z80 上的一个时钟周期持续 250 ns(因为其频率为 4 MHz),在 Phenom 上持续 0.333 ns(其频率约为 3 GHz)。

在较旧的 Z80 中,将 8 位数据从一个 cpu 寄存器移动到另一个需要 4 个时钟周期,而在一个现象中,相同的操作需要一个周期 - 最多可以并行执行 3 个这样的指令。

这显然取决于 CPU 的架构,对于给定的 cpu 类型,执行速度和时钟频率几乎呈线性相关。

于 2011-03-17T08:16:55.597 回答