神农鼎 发表于 2023-12-9 00:01:22

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

STC8H新设计产品,将会搭载 新的MDU32 硬件32位乘除加减移位,请提宝贵建议
===我们只是帮您实现您心中的 51 的那双勤劳的手

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

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





杨为民 发表于 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 / 81 / 92 / A3 / B4 / C5 / D6 / E7 / F
8(08H)EDXECX32位名
DX2DXCX2CX16位名
BR8BR9BR10 BR11BR12BR13BR14BR15 / CL8位名
0(00H)EBXEAX32位名
BX2BXAX2AX16位名
BR0BR1BR2BR3BR4BR5BR6 BR7 8位名
在同一地址的不同名寄存器存取的内容是一样的。寄存器的高位在低地址。
3.   STC MDU32+基本操作
(1)寄存器操作
操作助记符操作内容说明
SWAP_ABEAX与EBX的内容互换与之对应的16位、8位寄存器内容也互换。
SWAP_CDECX与EDX的内容互换与之对应的16位、8位寄存器内容也互换

(2)双操作数算术运算
操作助记符操作内容说明
ADDX_EABXEAX=EAX + EBX32位加法
ADDX_ABXAX=AX + BX16位加法
SUBX_EABXEAX=EAX - EBX32位减法
SUBX_ABXAX=AX - BX16位减法
MULX_EABXEDX+EAX=EAX * EBX32位乘法,结果64位,高32位在EDX
MULX_ABXAX2+AX=AX * BX16位乘法,结果32位,高16位在AX2
MULX_KEIL16AX=AX2 * AXKEIL编译器的16位乘法,结果16位在AX
DIVU_EABXEAX+EBX=EAX / EBX32位无符号除法,结果32位商在EAX,32位余数在EBX
DIVS_EABXEAX+EBX=EAX / EBX32位有符号除法,结果32位商在EAX,32位余数在EBX
DIVU_ABXAX=AX / BX16位无符号除法,结果16位商在AX,16位余数在AX2
DIVU_KEIL16AX=AX / AX2KEIL编译器的16位无符号除法,结果16位商在AX,16位余数在AX2
DIVS_ABXAX=AX / BX16位有符号除法,结果16位商在AX,16位余数在AX2
DIVS_KEIL16AX=AX / AX2KEIL编译器的16位有符号除法,结果16位商在AX,16位余数在AX2

(3)单操作数算术运算
操作助记符操作内容说明
SET0_EAXEAX=032位全清0
SET1_EAXEAX=-132位全置1
SET0_EBXEBX=032位全清0
SET1_EBXEBX=-132位全置1
SET0_ECXECX=032位全清0
SET1_ECXECX=-132位全置1
SET0_EDXEDX=032位全清0
SET1_EDXEDX=-132位全置1




NEGS_EAXEAX=-EAX32位求负数
NEGS_EBXEBX=-EBX32位求负数
NEGS_AXAX=-AX16位求负数
NEGS_BXBX=-BX16位求负数




INC1_EAXEAX=EAX+132位加1运算
INC1_EBXEBX=EBX+132位加1运算
INC4_EAXEAX=EAX+432位加4运算
INC4_EBXEBX=EBX+432位加4运算
INC1_AXAX=AX+116位加1运算
INC1_BXBX=BX+116位加1运算
INC2_AXAX=AX+216位加2运算
INC2_BXBX=BX+216位加2运算
DEC1_EAXEAX=EAX-132位减1运算
DEC1_EBXEBX=EBX-132位减1运算
DEC4_EAXEAX=EAX-432位减4运算
DEC4_EBXEBX=EBX-432位减4运算
DEC1_AXAX=AX-116位减1运算
DEC1_BXBX=BX-116位减1运算
DEC2_AXAX=AX-216位减2运算
DEC2_BXBX=BX-216位减2运算

(4)二进制按位运算
操作助记符操作内容说明
BAND_EABXEAX= EAX & EBX32位与运算
BAND_ABXAX= AX & BX16位与运算
BOR_EABXEAX= EAX | EBX32位或运算
BOR_ABXAX= AX | BX16位或运算
BXOR_EABXEAX= EAX ^ EBX32位异或运算
BXOR_ABXAX= AX ^ BX16位异或运算
BCPL_EAXEAX= ~ EAX32位求反运算
BCPL_EBXEBX= ~ EBX32位求反运算

(5)位移运算
操作助记符操作内容说明
SHLX_EAX_CLEAX=EAX << CL32位左移
SHLX_EBX_CLEBX=EBX << CL32位左移
SHLX_AX_CLAX=AX << CL16位左移
SHLX_BX_CLBX=BX << CL16位左移
SHRU_EAX_CLEAX=EAX >> CL32位无符号整数右移
SHRU_EBX_CLEBX=EBX >> CL32位无符号整数右移
SHRU_AX_CLAX=AX >>CL16位无符号整数右移
SHRU_BX_CLBX=BX >>CL16位无符号整数右移
SHRS_EAX_CLEAX=EAX >> CL32位有符号整数右移
SHRS_EBX_CLEBX=EBX >> CL32位有符号整数右移
SHRS_AX_CLAX=AX >>CL16位有符号整数右移
SHRS_BX_CLBX=BX >>CL16位有符号整数右移





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


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


神农鼎 发表于 2023-12-9 00:04:47












神农鼎 发表于 2023-12-9 00:16:01

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

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

社区闲人 发表于 2023-12-9 08:09:50

应该再流行20年+++。

神农鼎 发表于 2023-12-9 08:17:50

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

2023/12/14, 内部研发会议决定
计划先在 STC8H2K32U-45MHz-LQFP32, QFN32, TSSOP28, TSSOP20 中先加入===老许建议的MDU32C版,好像我也建议过===杨老师建议的MDU32D 全面学习中,这好像是64位8051的序曲??? 先筑基
MDU32C,已设计完成,最新为后续STC8系列设计的, 2023/12/15 描述更新:SFR
XFR
FUNCTION

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

_奶咖君_ 发表于 2023-12-9 08:54:59

哇,,太棒了,,串口超时中断!如果有32KRAM 太棒了。

_奶咖君_ 发表于 2023-12-9 09:13:46

啊 还有一个硬件的CRC计算单元,,以后算个CRC不用查表了

社区闲人 发表于 2023-12-9 09:15:25

希望运行MDU32+的频率为100mhz以上。

神农鼎 发表于 2023-12-9 09:19:23

cofmilk 发表于 2023-12-9 08:54
哇,,太棒了,,串口超时中断!如果有32KRAM 太棒了。

串口超时中断!===后续新设计全部支持

游泳的鸟儿 发表于 2023-12-9 09:25:13

希望再加一些 DSP 指令
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: STC8新设计将搭载新MDU32硬件32位加减乘除移位,向64位超算进军,请建议