了解芯片的频率/振荡

Jim*_*age 4 microcontroller assembly pic

我几乎不知道它是什么.甚至不知道怎么去寻找它是什么.我非常感谢任何帮助.

old*_*mer 5

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

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

事情变得更好,你听到管道这个词,你看到x86的广告能够每个时钟执行一条指令或超标量,每个时钟执行多条指令.这有点误导.管道的作用是创建装配线.想到工厂的电视节目,它是如何制作的和其他人.制作挂锁的机器,沿着装配线有许多台阶,每一步都执行一个简单的操作,在刻度盘上绘制数字,将刻度盘移到轴上,将刻度盘加轴插入单元等等.在最后一步看起来他们每个循环装配线都会锁定一个锁,而实际上每个锁可能需要30个时钟.对于一个时钟周期的处理器,管道上的一个成员从ram获取指令,下一个存储器解码前一个指令,第三个指令执行前两个指令,等等.所以当你听到冲洗管道或管道失速时,那是什么装配线已停止或他们必须停止装配线并扔掉生产线上的每个项目并重新开始.传统上,当你有一个分支指令意味着它不会被执行后立即执行两个或几个指令时,你必须冲洗管道并开始从分支带头的地址再次填充它.

如果您已经存在足够长的时间或者使用谷歌搜索或维基百科阅读,您将听到有关486DX处理器的信息.这是现在非常普遍的事情的开始.在此之前,处理器中有一个基于单个晶体振荡器的时钟,您希望以16MHz的频率运行处理器,并放置一个16MHz的时钟.一些问题,一个是内存接口无法跟上,一个非常简单的解决方案就是你可以将处理器上的那些引脚以较低的速率与内存通信,比如你的处理器以16Mhz的速度运行你可以运行通过创建一个主时钟速率的一半的新时钟,8Mhz的存储器.因此,从16mhz的tick-tock-tick-tock,您只能在刻度线上将输出更改为内存.因此,第一个内部勾号在内存总线时钟上打勾,第一个tock,内存输出没有变化,第二个勾选你的内存总线时钟,第三个勾选内存,第四个勾选到内存在内存总线等.真正的问题出现在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英里长和宽的较老,较慢的人,你的法拉利大部分时间都会停放在装载和卸载乘客而不是超速驾驶几百码.小型货车实际上比法拉利更快(让人们进出是瓶颈).