您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 求教指令周期的计算问题
本帖共有571个阅读者
发表帖子 发表投票 回复主题
求教指令周期的计算问题
derekvvyx(论坛新手)
derekvvyx
头衔:社区公民
帮派:无帮无派
帖数:11
金钱:170
积分:12
注册时间:2013/8/20
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
求教指令周期的计算问题
请教大神,最近在调BF561的板子,看到下边的一段程序:
void Delay(unsigned short msec)
{
    unsigned short i,j;

    for (j = 0; j < msec; j++)
    {
        for (i = 0; i < 0xc49b; i++);  
     }
}

里层for循环的i每增加1,都是一个指令周期的时间吧?但是我不知道一个指令周期是多长时间,该怎么算?
我搜索了一下,一个指令周期由若干总线周期组成,一个总线周期包含一个或多个机器周期,一个机器周期等于12个时钟周期,是这样吗?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/9/13 10:23:03
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

blackfin的指令周期就是其内核时钟,如内核跑400M,执行指令的速度也是400M,最高每个时钟可执行4条并行指令,for是C语言的语句,转为汇编代码后,执行一次需要大约10个内核时钟周期。

所谓的指令周期,是以汇编代码计算的,并非C语言。你用cycles寄存器,执行时看一下就知道占用多少内核时钟




这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/9/16 11:16:34
derekvvyx(论坛新手)
derekvvyx
头衔:社区公民
帮派:无帮无派
帖数:11
金钱:170
积分:12
注册时间:2013/8/20
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
多谢andy!

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/9/16 19:13:14
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159246 Call, 1 Queries, Processed in 0.015991 second(s),