打印
[国产单片机]

《酷能指令集》及相关专利技术

[复制链接]
楼主: 吾要单片机
手机看帖
扫描二维码
随时随地手机跟帖
81
吾要单片机|  楼主 | 2017-7-25 12:50 | 只看该作者 回帖奖励 |倒序浏览
为了减小跳转延时,MIPS的做法是使用延迟分支,也就是说跳转指令后的那条指令必须是无条件执行,这应该是MIPS的精髓,但是实际应用并不好,普通情况下都是使用NOP来填充。

使用特权

评论回复
82
linqing171| | 2017-7-25 21:02 | 只看该作者
airwill 发表于 2017-7-24 18:48
我也谈谈看法, 就跳转指令而言, 我感觉 AVR 的跳行指令非常高效, 又不占用跳转位, 又不刷流水线, 可以扩展 ...

提起AVR就伤心,atmel被收购后前途未卜。

使用特权

评论回复
83
blue1025| | 2017-7-30 13:58 | 只看该作者
牛人,膜拜

使用特权

评论回复
84
DQP05| | 2017-8-5 11:46 | 只看该作者
支持楼主

使用特权

评论回复
85
吾要单片机|  楼主 | 2017-9-26 13:14 | 只看该作者
第三项专利《一种处理C语言SWITCH/CASE语句的方法》已经公开,具体内容在第3楼。

使用特权

评论回复
86
吾要单片机|  楼主 | 2017-9-30 10:14 | 只看该作者
本帖最后由 吾要单片机 于 2017-9-30 10:24 编辑

       在32位指令集中,字节查找指令是:CASEB<cond>  Rd, Rj, [E]JMP  #v_6,影响的PSW标志位是Z,n;半字查找指令是:CASEH<cond>  Rd, Rj, [E]JMP  #v_6,影响的PSW标志位是Z,n。它们都可以使用立即数前缀指令WIMM。散转指令是:MJZ        #uimm16,它可以使用立即数前缀指令WIMM    #imm28。       在16位指令集中,字节查找指令是:CASEB  Rn, Rj,影响的PSW标志位是Z,n;半字查找指令是:CASEH  Rn, Rj, 影响的PSW标志位是Z,n。它们都可以使用立即数前缀指令WIMM/HIMM/CIMM。散转指令是:MJZ        #uimm4,它可以使用立即数前缀指令WIMM/HIMM

使用特权

评论回复
87
吾要单片机|  楼主 | 2017-10-17 16:32 | 只看该作者
本帖最后由 吾要单片机 于 2017-12-23 19:51 编辑

更正一下:中断自动保存的寄存器是: LR、PSR.

使用特权

评论回复
88
吾要单片机|  楼主 | 2017-11-11 23:48 | 只看该作者

更正一下,关于中断系统:
      本CPU的硬件中断系统有:
复位,不可屏蔽,优先级0(最高), 抢占型中断,入口地址:0x00000000
数据错误,不可屏蔽,优先级1,             抢占型中断,入口地址:0x00000100
硬件中断,屏蔽或不可屏蔽,优先级2,             完整型中断,入口地址:0x00000200
取指令错误,    不可屏蔽,优先级3, 完整型中断,入口地址:0x00000300
软件中断,优先级4(最低),完整型中断,入口地址:0x00004000

使用特权

评论回复
89
linqing171| | 2017-11-12 00:34 | 只看该作者
最近做了MAXQ核的反汇编器。MAXQ核没有流水线,单周期执行指令。确实有很多独到之处。不过代价也挺大的,比如指令总线接的存储器不能用来当数据读。
最近也研究了一下脚本语言的解释器的效率问题。其实耗时比较多的还是子串查找,Hash计算等几个常用的运算的内循环上。当然快速case也是更底层运算里面必不可少的。
这两年人工智能,神网、类脑等也都是比较热的。看楼主这个系列的已经很多年了,希望楼主早日有个好的项目依托,做个产品出来。

使用特权

评论回复
90
chunk| | 2017-11-14 05:51 | 只看该作者
这里有一个开源的汇编器,http://shop-pdp.net/ashtml/asxxxx.htm

它支持一系列的CPU,每支持一个新的CPU,原则上只需要修改源代码中的4个文件就可以。

使用特权

评论回复
91
吾要单片机|  楼主 | 2017-11-14 10:41 | 只看该作者
本帖最后由 吾要单片机 于 2017-11-14 10:43 编辑

      感谢两位的鼓励和支持!本处理器能否推广成功关键是开发工具,主要是C编译器、汇编器、连接器以及硬件仿真器,目前本人正在研究C编译器、汇编器、连接器,但是由于本人才疏学浅,进展缓慢。      
再更正PSR的内容:
      
其中:P是指示当前选择的堆栈指针SP使用的是MSP还是PSP
          B是中断响应时P的备份,中断返回时用于恢复P的数值。(这点和当前主流的CPU不同,其目的是改善任务切换的效率)
          n是本专利的查找指令CASEB/CASEH的结果值(Z,n)中的一个。


使用特权

评论回复
92
吾要单片机|  楼主 | 2017-11-14 10:53 | 只看该作者
更正:本CPU是哈佛结构,即指令总线和数据总线分开,指令总线和数据总线都是32位.

使用特权

评论回复
93
McuPlayer| | 2017-11-14 14:19 | 只看该作者
从C编译器角度看,循环移位指令,确实很少用到了
非常难得还有人仔细研究CPU指令架构

使用特权

评论回复
94
吾要单片机|  楼主 | 2017-11-20 22:16 | 只看该作者
本帖最后由 吾要单片机 于 2017-12-19 21:08 编辑

XCHG指令有改进。

使用特权

评论回复
95
linqing171| | 2017-11-21 10:54 | 只看该作者
本帖最后由 linqing171 于 2017-11-21 10:57 编辑
吾要单片机 发表于 2017-11-14 10:41
感谢两位的鼓励和支持!本处理器能否推广成功关键是开发工具,主要是C编译器、汇编器、连接器以及硬 ...

链接器、硬件仿真器内容都不多。
而C编译器不是一朝一夕的功夫。 能使用第三方的还是尽量的借用。 如果用GCC的话,前端应该不要变吧?

使用特权

评论回复
96
零点飞越| | 2017-11-21 20:34 | 只看该作者
关注下,坐等量产。

使用特权

评论回复
97
吾要单片机|  楼主 | 2017-12-2 10:25 | 只看该作者
本帖最后由 吾要单片机 于 2017-12-19 21:19 编辑
吾要单片机 发表于 2017-11-20 22:16
XCHG指令有改进, 其内部操作如下:
    第1步读内存单元到暂存器:temp

取消该更新,维持原来XCHG指令操作方法,即:单周期完成交换操作:直接读Rd<---[Rn]和直接写Rn] <---- Rj。

使用特权

评论回复
98
吾要单片机|  楼主 | 2017-12-10 16:49 | 只看该作者
需要补充的是:中断响应时系统进入16位指令集模式

使用特权

评论回复
99
吾要单片机|  楼主 | 2017-12-19 21:13 | 只看该作者
吾要单片机 发表于 2017-12-2 10:25
取消该更新,维持原来XCHG指令操作方法,即:第一周期直接读Rd

再次更正XCHG指令:单周期完成交换操作,即单周期执行Rd<--[Rn]和[Rn]<--Rj。

使用特权

评论回复
100
吾要单片机|  楼主 | 2017-12-21 18:34 | 只看该作者
本帖最后由 吾要单片机 于 2017-12-23 19:54 编辑
airwill 发表于 2017-7-24 18:48
我也谈谈看法, 就跳转指令而言, 我感觉 AVR 的跳行指令非常高效, 又不占用跳转位, 又不刷流水线, 可以扩展 ...

你的建议很好,现在中断响应时,硬件自动保存的寄存器是:LR,PSR。其它通用寄存器由用户自行保护。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则