wrina 发表于 2009-12-15 10:46:33

关于指令周期的疑问

最近在学习Skyeye时从其源码中看到NumScycles, NumNcycles, NumIcycles, NumCcycles四个变量是用来统计指令周期的,我从ARM7TDMI Technical Reference Manual-r4p1.pdf中看到ARM的指令周期(执行一条指令所需要的时间)可分为N、S、I、C四类:

      N:非连续周期,在此周期中ARM7TDMI内核请求与一个内存地址进行数据传送,该地址与前一个周期所使用的地址无关。

      S:连续周期,在此周期中ARM7TDMI内核请求与一个内存地址进行数据传送,该地址比前一个周期所使用的地址大一个字或半个字。

      I:内部周期,在此周期中ARM7TDMI内核不请求内存数据传送,因为它正在执行一个内部功能,这时没有有用的预取指能够被执行。

      C:协处理器传输周期,在此周期中ARM7TDMI内核使用数据总线与协处理器进行通信,但不请求内存操作。

      据我了解,指令周期还可以再细分为若干个CPU时钟周期(由CPU时钟频率决定),一个N、S、I、C周期都有可能包含若干个CPU时钟周期,如当CPU执行从内存中取操作数操作,若cache miss时则需要从内存中读取数据,此时指令周期中就有可能插入若干个CPU时钟周期来等待内存(我们把它称为等待周期)。那么,如果我们把D- cache和I-cache都关掉,在N、S、I、C这四种周期中究竟应该插入多少个等待周期呢?

wrina 发表于 2009-12-28 09:03:00

有谁对ARM的CPU核熟悉,帮帮我啊兄弟们~~:oops:
页: [1]
查看完整版本: 关于指令周期的疑问