gpt4 book ai didi

assembly - 了解芯片的频率/振荡

转载 作者:行者123 更新时间:2023-11-30 23:52:08 26 4
gpt4 key购买 nike

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

最佳答案

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

让我们将讨论的时间限制在较旧的处理器或微控制器上,在这种情况下,处理器和内存以及所有事物都使用同一时钟。利用此时钟信号馈入数字逻辑,您可以拥有从内存中读取指令并以某种导出速率执行这些指令的逻辑。从存储器(读取)中加载一个值可能需要3个时钟周期,一个时钟周期从内存中获取指令,另一个时钟周期进行解码并开始执行该指令,并且由于该指令是从内存中读取的,因此内存不能一次执行两项操作(在此模型中),这是从内存读取的第三个时钟周期,然后读取并执行下一条指令,依此类推。因此,由于这些原因,某些处理器会改变其执行时间,总会从内存中获取指令并进行解码和执行,并且这些步骤中的每一步都需要一个或多个时钟周期。一些处理器设计选择在每个指令周期中使用一个固定的数据,例如4个时钟周期,而该处理器执行时间最长的指令是4个时钟周期,有些可能仅占用一个时钟周期。

然后情况变好了,您会听到管道字样,并且看到x86能够在每个时钟或超标量执行一个指令的广告,在x86中,每个时钟可以执行多个指令。这有点误导。如果愿意,管道的作用是创建一条装配线。想起工厂的电视节目,它是如何制作的以及其他。制作挂锁的机器,沿装配线有许多步骤,每一步执行一个简单的操作,在表盘上涂上数字,将表盘移至轴上,将表盘加轴插入装置中,依此类推。在最后一步,看起来他们好像在装配线的每个周期制造一个锁,而实际上每个锁需要花费30个时钟。在处理器处于一个时钟周期的情况下,流水线中的一个成员从ram中提取指令,下一个内存对前一条指令进行解码,第三个内存在前面执行两条指令,依此类推。因此,当您听到刷新管道或管道停顿的声音时装配线已经停止,或者他们必须停止装配线并扔掉生产线上的所有物品并重新开始。传统上,当您有一条分支指令时,即意味着该两条或几条指令将不被执行时,您必须冲洗管道并从分支所在的地址开始再次填充它。

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

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

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

关于assembly - 了解芯片的频率/振荡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5335195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com