找回密码
 立即注册
楼主: 神***

讨论稿,向【64位超算中心】前进 ! DSP/DPU351 + TFPU, DPU32@全新32位8051

[复制链接]

该用户从未签到

550

主题

9397

回帖

1万

积分

管理员

积分
13922
 楼主| 发表于 2024-4-1 21:34:19 | 显示全部楼层
截图202404012137117019.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9397

回帖

1万

积分

管理员

积分
13922
 楼主| 发表于 2024-4-1 21:38:01 | 显示全部楼层
截图202404012137466247.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9397

回帖

1万

积分

管理员

积分
13922
 楼主| 发表于 2024-4-1 21:41:53 | 显示全部楼层


内部已有部分建议:

既然有了无符号数的64位/32位除法和32位/16位除法,是否需要一次性做全
===增加 有符号数的 64位/32位除法 和 32位/16位除法

另外,把Status Register CY+OV寫給CPU PSW,这样设计会使DPU251更加好用

增加的BCD和BIN之间的转换,非常有用

【增加的16位和32位的加减法在80251原本的指令就有支持,
===是否需要增加?还是说是为8051内核准备的?】
===是为再转到 STC8H上,暂时保留已有的 STC32的指令

点评

有了无符号数的64位/32位除法和32位/16位除法,必须有有符号数的 64位/32位除法 和 32位/16位除法, 因为两种除法的结果是不一样的。  详情 回复 发表于 2024-4-2 02:21
数据处理中,大部分计算都是有符号的,简单计算才用无符号。 没有留意取32位绝对值C251是有专门指令还是像C51用函数实现?  详情 回复 发表于 2024-4-1 22:14
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

2990

回帖

6741

积分

超级版主

积分
6741
发表于 2024-4-1 21:43:36 | 显示全部楼层
本帖最后由 梁工 于 2024-4-1 22:15 编辑

研究了一晚上,指令都比较齐全。
有点疑问:

加法运算没有说明是否有符号,没看到“32位有符号加法”这样的描述,
大部分加法计算都是要带符号的。
当然,能区分有符号、无符号是更好的。
               

乘加运算一定要是有符号的加法运算。



还有,用户编程一般都是C语言,具体怎么使用呢?
比如我要执行下面的8阶数字滤波算法,其实就是有符号整数乘加运算,每次循环(2阶)计算5次有符号整数乘加运算,8阶就是4*5=20次有符号乘加运算:

#define ORD       8           //滤波器阶数, 必须是偶数
long   edata Xin[ORD/2][3];
long   edata Yout[ORD/2][2];
long   edata Coef[(ORD*5)/2];        //A0 A1 A2 B0 B1
long edata out;
long code Coef[20]={             //low pass, fc=250/8192, 8阶巴特沃斯
   252, 505, 252, -54201, 22446,
   259, 518, 259, -55533, 23803,
   271, 543, 271, -58173, 26492,
   289, 579, 289, -62026, 30417
};

//========================================================================
// 函数: void        filters(u16 adc)
// 描述: 8阶滤波函数.          30MHz计算时间: 19.2us或20.8us @30MHz.
// 参数: adc: 当前采样值.
// 返回: none.
// 版本: V1.0, 2020-9-8
//========================================================================
void        filters(u16 adc)
{
     u8 p;
     out = (long)adc - 2048;        //输入ADC值为12位无符号整数, 转为32位有符号整数

     for(p=0; p<ORD/2; p++)
     {
           Xin[p][2] = Xin[p][1];
           Xin[p][1] = Xin[p][0];
           Xin[p][0] = out;
           out = (Coef[p*5+0] * Xin[p][0] + Coef[p*5+1] * Xin[p][1] + Coef[p*5+2] * Xin[p][2] - Coef[p*5+3] * Yout[p][0] - Coef[p*5+4] * Yout[p][1])/32768; //@30MHz, 整数计算1次乘加运算0.56us.
           Yout[p][1] = Yout[p][0];
           Yout[p][0] = out;
     }
}


这是STC32F12K54的程序,不知道C251编译后,是怎么调用上述的DPU指令的?

点评

“这是STC32F12K54的程序,不知道C251编译后,是怎么调用上述的DPU指令的?” 下面以MAC乘加指令为例来说明: (1)由于C251编译器是依据80251指令集来设计的,在80251指令集里没有“STC 80351”指令集中的乘加“M  详情 回复 发表于 2024-4-4 23:42
问题:加法运算没有说明是否有符号,没看到“32位有符号加法”这样的描述 解答: (1)无论有符号无符号的数,在计算机中均以补码形式存在,只是解读不同 (2)如果是两个32位(16位、8位)的整数相加(相乘)的  详情 回复 发表于 2024-4-2 01:39
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

2990

回帖

6741

积分

超级版主

积分
6741
发表于 2024-4-1 22:14:00 | 显示全部楼层
神农鼎 发表于 2024-4-1 21:41
内部已有部分建议:

既然有了无符号数的64位/32位除法和32位/16位除法,是否需要一次性做全,

数据处理中,大部分计算都是有符号的,简单计算才用无符号。
没有留意取32位绝对值C251是有专门指令还是像C51用函数实现?
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

696

回帖

1万

积分

荣誉版主

积分
10878
发表于 2024-4-2 01:39:57 | 显示全部楼层
梁工 发表于 2024-4-1 21:43
研究了一晚上,指令都比较齐全。
有点疑问:
加法运算没有说明是否有符号,没看到“32位有符号加法”这样的 ...

问题:加法运算没有说明是否有符号,没看到“32位有符号加法”这样的描述

解答:
(1)无论有符号无符号的数,在计算机中均以补码形式存在,只是解读不同


(2)如果是两个32位(16位、8位)的整数相加(相乘)的结果为64位(32位、16位)的整数
那么就需要区分32位(16位、8位)有符号加法(乘法)”和32位(16位、8位)无符号加法(乘法)”。



(3)如果是两个32位(16位、8位)的整数相加(相乘)的结果为32位(16位、8位)的整数
那么就不需要区分32位(16位、8位)有符号加法(乘法)”和32位(16位、8位)无符号加法(乘法)”。
原因是:无论是32位(16位、8位)有符号加法(乘法)”或者32位(16位、8位)无符号加法(乘法)”,
运算结果的低32位(16位、8位)的二进制都是一样的,并且按补码来解读,都是正确的



(4)因此在上面指令中,32位乘法的结果是64位的,所以分有符号和无符号的乘法。
而32位的加法结果是32位+CY的,所以不需要区分有符号和无符号的加法。16位运算同理





点评

谢谢解答!  详情 回复 发表于 2024-4-2 09:40
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

696

回帖

1万

积分

荣誉版主

积分
10878
发表于 2024-4-2 02:21:24 | 显示全部楼层
神农鼎 发表于 2024-4-1 21:41
内部已有部分建议:

既然有了无符号数的64位/32位除法和32位/16位除法,是否需要一次性做全,

有了无符号数的64位/32位除法和32位/16位除法,必须有有符号数的 64位/32位除法 和 32位/16位除法,

因为两种除法的结果是不一样的。
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    昨天 12:02
  • 签到天数: 34 天

    [LV.5]常住居民I

    0

    主题

    51

    回帖

    90

    积分

    注册会员

    积分
    90
    发表于 2024-4-2 08:22:53 | 显示全部楼层
    从未如此激动,8051进展神速
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2990

    回帖

    6741

    积分

    超级版主

    积分
    6741
    发表于 2024-4-2 09:40:45 | 显示全部楼层
    杨为民 发表于 2024-4-2 01:39
    问题:加法运算没有说明是否有符号,没看到“32位有符号加法”这样的描述

    解答:

    谢谢解答!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 07:28
  • 签到天数: 74 天

    [LV.6]常住居民II

    4

    主题

    454

    回帖

    1226

    积分

    金牌会员

    积分
    1226
    发表于 2024-4-2 10:01:12 | 显示全部楼层
    给一个大大的赞
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-12 05:37 , Processed in 0.071919 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表