找回密码
 立即注册
查看: 4639|回复: 109

STC8新设计将搭载新MDU32硬件32位加减乘除移位,向64位超算进军,请建议

[复制链接]

该用户从未签到

550

主题

9344

回帖

1万

积分

管理员

积分
13894
发表于 2023-12-9 00:01:22 | 显示全部楼层 |阅读模式
STC8H新设计产品,将会搭载 新的MDU32 硬件32位乘除加减移位,请提宝贵建议
===我们只是帮您实现您心中的 51 的那双勤劳的手

STC8H后续再设计的新产品:
将会搭载 MDU32硬件32位乘除,并扩充MDU16中的其他功能到32位
===还应该增加32位的加减
形成新的 MDU32+, 即后续 STC8H 的运算能力会大幅度提升到32位

大家认为这个 MDU32+ 还要增加哪些功能放到 STC8H系列中,抓紧提
===计划给 STC8H8K64U 进行全面升级到 STC8H32K64U

截图202312082357416352.jpg

截图202312082358147783.jpg


回复 送花

使用道具 举报

该用户从未签到

63

主题

649

回帖

1万

积分

荣誉版主

积分
10802
发表于 2023-12-10 23:08:41 | 显示全部楼层
本帖最后由 杨为民 于 2023-12-10 23:14 编辑

STC8H MDU32+功能设计
1.   STC MDU32+简介
(1)STC MDU32+是一款32位多功能数字运算单元。
(2)STC MDU32+使用一组扩展的32位/16位/8位通用寄存器来实现扩展运算的功能。
(3)由于STC8H的DATA空间很小,并且Keil的C51编译器缺省只使用8051的BANK0寄存器地址(DATA地址范围为00H~7H),因此STC MDU32+的扩展通用寄存器映射到地址00H~0FH的DATA空间,可以用传统的8051指令对其内容进行存取,实现了对8051的兼容。
(4)除了扩展通用寄存器,STCMDU32+还包含了一个扩展操作寄存器EOP(SFR)和一个扩展状态寄存器ESR以及一个扩展操作出错(比如除以0,操作溢出)专用中断INT_MDU32。

2.  STC MDU32+寄存器8位、16位、32位地址映射表
STC8H单片机系列
  
地址
  
0 / 8
1 / 9
2 / A
3 / B
4 / C
5 / D
6 / E
7 / F
808H
EDX
ECX
32位名
DX2
DX
CX2
CX
16位名
BR8
BR9
BR10
BR11
BR12
BR13
BR14
BR15 / CL
8位名
000H
EBX
EAX
32位名
BX2
BX
AX2
AX
16位名
BR0
BR1
BR2
BR3
BR4
BR5
BR6
BR7
8位名
在同一地址的不同名寄存器存取的内容是一样的。寄存器的高位在低地址。

3.   STC MDU32+基本操作
(1)寄存器操作
  
操作助记符
  
操作内容
说明
SWAP_AB
EAX与EBX的内容互换
与之对应的16位、8位寄存器内容也互换。
SWAP_CD
ECX与EDX的内容互换
与之对应的16位、8位寄存器内容也互换

(2)双操作数算术运算
  
操作助记符
  
操作内容
说明
ADDX_EABX
EAX=EAX + EBX
32位加法
ADDX_ABX
AX=AX + BX
16位加法
SUBX_EABX
EAX=EAX - EBX
32位减法
SUBX_ABX
AX=AX - BX
16位减法
MULX_EABX
EDX+EAX=EAX * EBX
32位乘法,结果64位,高32位在EDX
MULX_ABX
AX2+AX=AX * BX
16位乘法,结果32位,高16位在AX2
MULX_KEIL16
AX=AX2 * AX
KEIL编译器的16位乘法,结果16位在AX
DIVU_EABX
EAX+EBX=EAX / EBX
32位无符号除法,结果32位商在EAX,32位余数在EBX
DIVS_EABX
EAX+EBX=EAX / EBX
32位有符号除法,结果32位商在EAX,32位余数在EBX
DIVU_ABX
AX=AX / BX
16位无符号除法,结果16位商在AX,16位余数在AX2
DIVU_KEIL16
AX=AX / AX2
KEIL编译器的16位无符号除法,结果16位商在AX,16位余数在AX2
DIVS_ABX
AX=AX / BX
16位有符号除法,结果16位商在AX,16位余数在AX2
DIVS_KEIL16
AX=AX / AX2
KEIL编译器的16位有符号除法,结果16位商在AX,16位余数在AX2

(3)单操作数算术运算
  
操作助记符
  
操作内容
说明
SET0_EAX
EAX=0
32位全清0
SET1_EAX
EAX=-1
32位全置1
SET0_EBX
EBX=0
32位全清0
SET1_EBX
EBX=-1
32位全置1
SET0_ECX
ECX=0
32位全清0
SET1_ECX
ECX=-1
32位全置1
SET0_EDX
EDX=0
32位全清0
SET1_EDX
EDX=-1
32位全置1



NEGS_EAX
EAX=-EAX
32位求负数
NEGS_EBX
EBX=-EBX
32位求负数
NEGS_AX
AX=-AX
16位求负数
NEGS_BX
BX=-BX
16位求负数



INC1_EAX
EAX=EAX+1
32位加1运算
INC1_EBX
EBX=EBX+1
32位加1运算
INC4_EAX
EAX=EAX+4
32位加4运算
INC4_EBX
EBX=EBX+4
32位加4运算
INC1_AX
AX=AX+1
16位加1运算
INC1_BX
BX=BX+1
16位加1运算
INC2_AX
AX=AX+2
16位加2运算
INC2_BX
BX=BX+2
16位加2运算
DEC1_EAX
EAX=EAX-1
32位减1运算
DEC1_EBX
EBX=EBX-1
32位减1运算
DEC4_EAX
EAX=EAX-4
32位减4运算
DEC4_EBX
EBX=EBX-4
32位减4运算
DEC1_AX
AX=AX-1
16位减1运算
DEC1_BX
BX=BX-1
16位减1运算
DEC2_AX
AX=AX-2
16位减2运算
DEC2_BX
BX=BX-2
16位减2运算

(4)二进制按位运算
  
操作助记符
  
操作内容
说明
BAND_EABX
EAX= EAX & EBX
32位与运算
BAND_ABX
AX= AX & BX
16位与运算
BOR_EABX
EAX= EAX | EBX
32位或运算
BOR_ABX
AX= AX | BX
16位或运算
BXOR_EABX
EAX= EAX ^ EBX
32位异或运算
BXOR_ABX
AX= AX ^ BX
16位异或运算
BCPL_EAX
EAX= ~ EAX
32位求反运算
BCPL_EBX
EBX= ~ EBX
32位求反运算

(5)位移运算
  
操作助记符
  
操作内容
说明
SHLX_EAX_CL
EAX=EAX << CL
32位左移
SHLX_EBX_CL
EBX=EBX << CL
32位左移
SHLX_AX_CL
AX=AX << CL
16位左移
SHLX_BX_CL
BX=BX << CL
16位左移
SHRU_EAX_CL
EAX=EAX >> CL
32位无符号整数右移
SHRU_EBX_CL
EBX=EBX >> CL
32位无符号整数右移
SHRU_AX_CL
AX=AX >>CL
16位无符号整数右移
SHRU_BX_CL
BX=BX >>CL
16位无符号整数右移
SHRS_EAX_CL
EAX=EAX >> CL
32位有符号整数右移
SHRS_EBX_CL
EBX=EBX >> CL
32位有符号整数右移
SHRS_AX_CL
AX=AX >>CL
16位有符号整数右移
SHRS_BX_CL
BX=BX >>CL
16位有符号整数右移




(6)高精度/快速运算
  
操作助记符
  
操作内容
说明
MMD32_EABX
EAX=EAX*EBX/EDX
32位混合乘除,先乘为64位中间结果,再除为32位结果在EAX
MMD16_ABX
AX=AX*BX/DX
16位混合乘除,先乘为32位中间结果,再除为16位结果在AX
LTC32_EAX
EAX=(EAX-EBX)*ECX/EDX
32位线性定标,中间结果为64位(不损失精度)。EAX为测量值,EBX为零点值,ECX为满刻度信号值,EDX为AD变换级数
LTC16_AX
AX=(AX-BX)*CX/DX
16位线性定标,中间结果为32位(不损失精度)。AX为测量值,BX为零点值,CX为满刻度信号值,DX为AD变换级数
MA32_EDX
EDX=EDX+EAX*EBX
32位乘加运算


以上是根据个人编程经验的总结出来的,提出给大家分享和讨论。希望通过对STC8H系列单片机增加MDU32+硬件处理器的方法,将STC8H系列8位单片机的核心性能提高到32位的水平,为用户提供一款低价位高性能的8051单片机。
如果MDU32+实现了上述功能,本质上是为8位的CISC的8051内核增加一颗32位的RISC的APU,这将使STC8H成为第一颗双核的8051单片机


点评

很好很强大!!!  发表于 2023-12-11 08:37
感谢杨老师为 【喀秋莎】 升华为 【远火】 保驾护航  发表于 2023-12-11 07:27
回复 支持 1 反对 0 送花

使用道具 举报

该用户从未签到

550

主题

9344

回帖

1万

积分

管理员

积分
13894
 楼主| 发表于 2023-12-9 00:04:47 | 显示全部楼层
截图202312090002005542.jpg

截图202312090002301526.jpg


截图202312090003083163.jpg

截图202312090003544723.jpg

截图202312090004351083.jpg

回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9344

回帖

1万

积分

管理员

积分
13894
 楼主| 发表于 2023-12-9 00:16:01 | 显示全部楼层
估计杨老师会认为 STC8H系列8051 会再流行50年以上
===请杨老师为 51世界 多提宝贵意见
===咱把这 MDU32+ 搞强悍些,再增加些功能
===发挥 R0 ~ R7 传输,MDU32+运算的优势

估计老许对 STC8H系列8051再流行20年以上或永恒,会完全认可
===请老许为 51世界 多提宝贵意见
===咱把这 MDU32+ 搞强悍些,再增加些功能
===发挥 R0 ~ R7 传输,MDU32+运算的优势

回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 162 天

    [LV.7]常住居民III

    17

    主题

    371

    回帖

    1323

    积分

    荣誉版主

    积分
    1323
    发表于 2023-12-9 08:09:50 | 显示全部楼层
    应该再流行20年+++。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9344

    回帖

    1万

    积分

    管理员

    积分
    13894
     楼主| 发表于 2023-12-9 08:17:50 | 显示全部楼层
    大家认为这个 MDU32+ 还要增加哪些功能放到 STC8H系列中,抓紧提
    ===计划给 STC8H8K64U 进行全面升级到 STC8H32K64U


    2023/12/14, 内部研发会议决定
    计划先在 STC8H2K32U-45MHz-LQFP32, QFN32, TSSOP28, TSSOP20 中先加入
    ===老许建议的MDU32C版,好像我也建议过
    ===杨老师建议的MDU32D 全面学习中,这好像是648051的序曲??? 先筑基

    MDU32C,已设计完成,最新为后续STC8系列设计的, 2023/12/15 描述更新:
    SFR
    截图202312151006158963.jpg
    XFR
    截图202312151006473652.jpg
    FUNCTION
    截图202312151007286499.jpg

    老眼昏花,不知上面是不是,杨老师,老许 认可的:
    ===万里长征第一步,筑基,向 STC64位8051进军

    点评

    没什么大问题, 小问题有一点 [attachimg]29706[/attachimg] 1. 绿色部分 寄存器 , 必须为 R0R1R2R3 ! 否则与 C51无法匹配 ! 2. 红色部分强列建议取消, 其参数可 放在 ACC 或 B 寄存器中, 好处: 函  详情 回复 发表于 2023-12-14 21:18
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 136 天

    [LV.7]常住居民III

    20

    主题

    1047

    回帖

    2483

    积分

    金牌会员

    积分
    2483
    发表于 2023-12-9 08:54:59 | 显示全部楼层
    哇,,太棒了,,串口超时中断!如果有32KRAM 太棒了。

    点评

    串口超时中断!===后续新设计全部支持  详情 回复 发表于 2023-12-9 09:19
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 136 天

    [LV.7]常住居民III

    20

    主题

    1047

    回帖

    2483

    积分

    金牌会员

    积分
    2483
    发表于 2023-12-9 09:13:46 | 显示全部楼层
    啊 还有一个硬件的CRC计算单元,,以后算个CRC不用查表了
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 162 天

    [LV.7]常住居民III

    17

    主题

    371

    回帖

    1323

    积分

    荣誉版主

    积分
    1323
    发表于 2023-12-9 09:15:25 | 显示全部楼层
    希望运行MDU32+的频率为100mhz以上。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9344

    回帖

    1万

    积分

    管理员

    积分
    13894
     楼主| 发表于 2023-12-9 09:19:23 | 显示全部楼层
    cofmilk 发表于 2023-12-9 08:54
    哇,,太棒了,,串口超时中断!如果有32KRAM 太棒了。

    串口超时中断!===后续新设计全部支持
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-16 14:21
  • 签到天数: 53 天

    [LV.5]常住居民I

    0

    主题

    12

    回帖

    254

    积分

    中级会员

    积分
    254
    发表于 2023-12-9 09:25:13 | 显示全部楼层
    希望再加一些 DSP 指令

    点评

    请具体描述下  详情 回复 发表于 2023-12-9 14:08
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-7 16:14 , Processed in 0.079888 second(s), 75 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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