NEC Electronics (China) NEC ELECTRONICS (CHINA)
日电电子 NEC
主  页
应  用
产  品
技  术
支  持
购  买
最  新  消  息
关  于  我  们
header
产品名称搜寻
关键字搜寻
文档搜寻
参数搜寻
    网页指南  联系我们  

FAQ



执行时间
内容    
FAQ-ID = 78exec-nnnn
0001: 关于指令的执行时间不同于手册中所述的时间的若干问题。
0002: 关于SUBW指令执行时钟周期的若干问题。[78K/4]
0003: 为什么会有好几种类型的指令执行时间? [78K/4]
0004: 当有好几种指令字节周期时,应该使用哪一种? [78K/4]
0005: 最快的78K/4器件是哪一个?[78K/4]
0006: 指令队列的长度是几个字节?[78K/4]
0007: 指令队列的状态是否能确定?[78K/4]

78exec
-0001
关于指令的执行时间不同于手册中所述的时间的若干问题。
1 计算出来的指令执行时间要比实际的指令执行时间要长(估计是两倍左右)。
我使用的是fxt (32.768kHz).
1 clock = 32768/2 = 16384 (61μs).
此处, NOP = 4 clocks = 244μs,但是实际上用ICE执行的时候,这个操作用了122μs.
1 122μs是修正值。
NOP的执行时间是2个时钟而不是4个。
NOP的指令执行时间在"2.4.2. Operation List"的最后一页有所列出。
78exec
-0002
关于SUBW指令执行时钟周期的若干问题。 [78K/4]
1 在78K4的指令手册中,SUBW AX, #Word这条指令的时钟周期是3个时钟, 但是当真正执行这个计算的时候却需要5个时钟周期,和使用另外一种寄存器的耗时相同,等待时间也相匹配。
除此之外,等待时间不会更改,甚至当寄存器被改为另外一个寄存器的时候也不会改变。
请问这是否是手册中的一个错误?
1 你所说的3个时钟周期是在假设一条指令已经被加入到预取指令队列中的情况下所估计出的值。
你所说的案例可以参照执行分支指令之后而使指令队列为空时的执行情况。
SUBW指令执行时钟周期并非3个时钟是因为除了这3个时钟之外还要加上取指令时间。
另外,执行时钟周期的不一致还取决于该地址是奇地址还是偶地址。
78exec
-0003
为什么会有好几种类型的指令执行时间?[78K/4]
1 每一条指令的指令执行时间都在指令集手册中列举了出来, 但是为什么CALL,BR和RET指令存在几种时钟周期计数?
如果这些指令象MOV指令那样可以操纵RAM,那么我还能够理解,但是诸如RET此类指令真的能够在某些场合下使用RAM吗?
1 致使这样的原因是,有些存储器访问涉及到指令执行。
所列出的执行时钟周期中有一个是关于BR指令的,它并不需要存储器访问,但是,当使用寄存器所指定的存储器内容作为分支目的地址时,执行的速度就会有所不同,具体情况取决于存储器是否已经定位。
就CALL和RET而言,执行时间也会不同,具体情况取决于堆栈是否已经定位。
78exec
-0004
当有好几种指令字节周期时,应该选择哪一种?[78K/4]
1 关于78K/4指令集的时钟周期,这样写道:
"如果一条指令显示用"/"分开的两种类型的字节数时。 这种指令的执行时间就是和字节数相对应的一侧所显示的时钟数。"
那么我想知道应该选择哪个指令字节数?
答1 你可以参阅78K4系列指令手册中的图例6.1章节中的表格部分“(1)操作数的标识符及其种类。或者(6)操作数包括saddr,saddrp,r,以及rp的指令字节数”。

如何解答你所提出的问题取决于你说的寄存器以及saddr地址。
例如,关于这个寄存器,当r1被选中的时候指令是short型的,而当r2被选中的时候指令是long型的。
在78K4系列指令手册的6.1章图例中有这样一个部分“(1)操作数的标识符及其种类”,其中列举了关于r1(X,A,B,C)和r2(D,E,H,L)的内容。

同样,saddr也根据地址分为两个部分,saddr1(FE00H至FEFFH)和saddr2(FD20H至FDFFH以及FF00H至FF1FH)。
当使用saddr1时,long指令被选中。而使用saddr2时,被选中的就是short指令了。
这个在上述表格中也有详细的描述。
另外,在16位的情况下也是这样分类应用的。
78exec
-0005
最快的78K/4器件是哪一个? [78K/4]
1 对于uPD784038,3.3V的情况下,外部共鸣器的最高频率是多少?
3.3V时,哪一个78K/4设备是最快的?外部共鸣器的最高频率是多少?
1 在所有78K4产品中,3.3V条件下最快的器件是uPD78403X。
该产品的共鸣器频率是16MHz。
78exec
-0006
指令队列的长度有几个字节? [78K/4]
1 uPD784036指令队列有多长?(具体有几个字节)
1 指令字节长度为4个字节。
78exec
-0007
指令队列的状态是否能确定?[78K/4]
问1 我曾经考虑过,如果指令队列的状态并不完全知道的话,指令执行时间就不能精确的计算出来了。
那么如何才能完整地确定指令队列的状态呢?
1 如果想要完全确定指令队列的状态,的确是很难的一件事情。
如果真的需要确定的话,必须完整地模拟指令队列和并发指令执行(CPU自身操作)。
指令队列操作的不同依赖于被执行指令。
该队列将由一个分支程序清除,并且该操作也会受到分支目标地址为奇或为偶的影响。
此外,当总线被用于指令执行时,取指令操作就无法进行,另外,取指时间也是一个要素。
所有这些要素综合起来就大大增加了完整地确定指令队列状态的难度。



   LEGAL    最新之产品资料, 请参阅英文版
 请用Internet Explorer浏览本网站以达最佳效果。
  © 2005-2008  NEC Electronics China Limited