﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-More than C++-随笔分类-汇编</title><link>http://www.cppblog.com/Lee/category/8743.html</link><description>Beyond  C++</description><language>zh-cn</language><lastBuildDate>Fri, 03 Apr 2009 21:51:26 GMT</lastBuildDate><pubDate>Fri, 03 Apr 2009 21:51:26 GMT</pubDate><ttl>60</ttl><item><title>时钟周期  机器周期  指令周期</title><link>http://www.cppblog.com/Lee/archive/2009/04/01/78527.html</link><dc:creator>David Lee</dc:creator><author>David Lee</author><pubDate>Wed, 01 Apr 2009 00:49:00 GMT</pubDate><guid>http://www.cppblog.com/Lee/archive/2009/04/01/78527.html</guid><wfw:comment>http://www.cppblog.com/Lee/comments/78527.html</wfw:comment><comments>http://www.cppblog.com/Lee/archive/2009/04/01/78527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee/comments/commentRss/78527.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee/services/trackbacks/78527.html</trackback:ping><description><![CDATA[时钟周期<br />                时钟周期是一个时间的量，人们规定10纳秒（ns）为一个时钟周期。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。对于PC100规格的内存来说，它的运行时钟周期应该不高于10纳秒。纳秒与工作频率之间的转换关系为：1000 / 时钟周期 = 工作频率。例如，标称10纳秒的PC100内存芯片，其工作频率的表达式就应该是1000 / 10 = 100MHZ，这说明此内存芯片的额定工作频率为100MHZ。目前市场上一些质量优秀的内存通常可以工作在比额定频率高的频率下，这为一些喜欢超频的朋友带来了极大的方便。例如KingMAX的PC100内存，此类内存多采用8纳秒的芯片，相对于其100MHZ的频率来说，频率提高的余地还很大，许多用户都可以让它们工作在133MHZ甚至更高的频率下。能不能超频使用很大程度上反应了内存芯片以及PCB板的质量。不过，仅仅凭借时钟周期来判断内存的速度还是不够的，内存CAS的存取时间和延迟时间也在一定程度上决定了内存的性能。<br /><br />简单理解　<br /> 　由输入输出接口来控制数据在主存器和外围设备之间的数据块传输，而不需要由CPU来对每个字节的传输进行控制。这种传输方式称为直接存储器访问方式。<br /><br />单片机时钟周期　　<br />        时钟周期是单片机的基本时间单位。<br /><div class="spctrl"></div>　　若时钟晶振的振荡频率为fosc，则时钟周期Tosc=1/fosc。<br /><div class="spctrl"></div>　　如：晶振频率为6MHZ，则时钟周期Tosc=166.7ns。<br />////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />机器周期<br />       机器周期:通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是 <b>计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间</b><br /><div class="spctrl"></div>　　),它一般由12个时钟周期组成。而时钟周期=1秒/晶振频率，因此单片机的机器周期=12秒/晶振频率 <br /><div class="spctrl"></div>　　补充其他几个周期：<br /><div class="spctrl"></div>　　指令周期：取出并执行一条指令的时间。 <br /><div class="spctrl"></div>　　时钟周期：处理操作的最基本单位。(CPU的主频) <br /><div class="spctrl"></div>　　存储周期：也就是一个访存指令周期。 <br /><div class="spctrl"></div>　　指令周期、机器周期和时钟周期之间的关系：指令周期通常用若干个机器周期表示，而机器周期时间又包含有若干个时钟周期。<br />/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />指令周期<br />        CPU从内存取出一条指令并执行这条指令的时间总和。 <br /><div class="spctrl"></div>　　指令周期是执行一条指令所需要的时间，一般由若干个机器周期组成，是从取指令、分析取数到执行完所需的全部时间。指令不同，所需的机器周期数也不同。对于一些简单的的单字节指令，在取指令周期中，指令取出到指令寄存器后，立即译码执行，不再需要其它的机器周期。对于一些比较复杂的指令，例如转移指令、乘法指令，则需要两个或者两个以上的机器周期。<br /><div class="spctrl"></div>　　通常含一个机器周期的指令称为单周期指令，包含两个机器周期的指令称为双周期指令。 <img src ="http://www.cppblog.com/Lee/aggbug/78527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee/" target="_blank">David Lee</a> 2009-04-01 08:49 <a href="http://www.cppblog.com/Lee/archive/2009/04/01/78527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>