打印
[国产单片机]

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

[复制链接]
楼主: 吾要单片机
手机看帖
扫描二维码
随时随地手机跟帖
141
吾要单片机|  楼主 | 2018-11-27 16:17 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 吾要单片机 于 2019-8-10 22:18 编辑

PUSH/POP指令有改动:

使用特权

评论回复
142
吾要单片机|  楼主 | 2018-12-14 10:56 | 只看该作者
本帖最后由 吾要单片机 于 2018-12-17 23:19 编辑

有更新:
PSR.ASID-----进程号或虚拟内存区号,指示正在运行的进程号或虚拟内存区号,字长为6位,该字段可以支持操作系统管理多个进程,以实现2种虚拟存储模式:

      第一种是所有进程共享4GB虚拟地址空间,PSR.ASID为各进程的标识符,此时进程号可以参与MMU的索引工作,实现进程转换无须清除TLB;
      第二种是PSR.ASID为虚拟内存区号,此时PSR.ASID用于扩展32位访存指针,形成38位的虚拟地址值,这使得操作系统可以管理多达38位(即256GB)的地址空间,突破了传统32位处理器只能寻址4GB地址空间的限制,由于寄存器只有32位,访存的指针也只有32位,所以各虚拟内存区之间是无法直接搬运数据,它必须由操作系统代劳。由于访存的指针只有32位,所以每个进程的代码和数据必须安排在同一个虚拟内存区中,不能跨越2个虚拟内存区。


第二种虚拟存储模式

使用特权

评论回复
143
吾要单片机|  楼主 | 2019-1-9 15:50 | 只看该作者
本帖最后由 吾要单片机 于 2019-2-22 10:51 编辑


增加的内容有:中断处理系统、存储器系统、系统控制协处理器。
修正一些描述的BUG
今年工作暂时到这里,明年继续进行有关MMU、CACHE和DEBUG的工作。



使用特权

评论回复
144
吾要单片机|  楼主 | 2019-2-21 17:53 | 只看该作者
本帖最后由 吾要单片机 于 2019-3-3 17:10 编辑


酷能指令集有更新,1、增加指令:BREAK(软件断点指令)。2、修正SWI指令的说明。





使用特权

评论回复
145
吾要单片机|  楼主 | 2019-3-2 20:22 | 只看该作者
本帖最后由 吾要单片机 于 2019-8-10 21:56 编辑

酷能指令集有更新:1、取消双向栈段结构。
2、取消HI、LO寄存器。
3、增加与SP有关的LOAD/STORE访存指令。
4、调整寄存器组结构。



使用特权

评论回复
146
吾要单片机|  楼主 | 2019-7-15 17:03 | 只看该作者
本帖最后由 吾要单片机 于 2019-8-10 22:14 编辑

酷能处理器架构有较大改进,改进内容有:
1、寄存器组改为2个写端口和2个读端口。
2、SP、FP分别放在R14、R15。
3、取消64位乘加、乘减指令。
4、STORE指令的偏移量不能使用寄存器。
5、只有LOAD/STORE、POP/PUSH才能访问存储器。
6、CALL、RET、SWI、IRET指令不能访问存储器。
7、增加比较设置指令SZLT、SZLE、SZSC、SZLS。
8、增加条件传送指令MOVZ、MOVN。
9、增加REV、REVH指令,加速大端模式数据处理速度。
10、增加饱和处理指令USAT、SSAT,以支持信号处理系统。
11、将位段提取指令FEX分为UFEX(位段提取,无符号数扩展)和SFEX(位段提取,有符号数扩展)。
12、32位指令集取消字节、半字符号位扩展指令SEXB、SEXH、UEXB、UEXH。
13、改进PSR寄存器结构,由原来的32位改为16位,取消虚拟地址区的概念,回归传统的做法。
14、协处理寄存器增加寄存器EPC、DPC、ESR、DSR、MSP、PSP,以支持异常中断处理。
15、存储器系统回归传统的做法。
16、取消16位指令集的JIMM立即数扩展指令。
17、改16位指令集的J<cond>  V12为以下4条指令:
     JMP/JC/JZ/JNZ  V10。
18、将中断返回指令IRET分为ERET(异常返回)和DRET(调试返回)
19、改XCHG指令为LLB指令,LLB指令是带屏蔽中断功能的ULB指令





使用特权

评论回复
评论
mailshichao 2019-7-16 17:19 回复TA
@吾要单片机 :编译器太高深了,哈哈 
吾要单片机 2019-7-16 16:00 回复TA
@mailshichao :还没有哦,有的话可以推荐啊 
mailshichao 2019-7-15 19:05 回复TA
楼主找到愿意开发编译器的人没 
147
触觉的爱| | 2019-7-16 18:31 | 只看该作者
这是 持之以恒做基础,打造全体系自主的CPU呀,厉害!

使用特权

评论回复
148
吾要单片机|  楼主 | 2019-7-20 13:18 | 只看该作者
触觉的爱 发表于 2019-7-16 18:31
这是 持之以恒做基础,打造全体系自主的CPU呀,厉害!

多谢鼓励!这个项目是我一个人在做,所以进展缓慢,别看大家在网上经常谩骂我国没有自主指令集,实际上真正关心指令集架构的没有几个人。

使用特权

评论回复
149
吾要单片机|  楼主 | 2019-7-25 10:10 | 只看该作者
本帖最后由 吾要单片机 于 2019-8-10 22:20 编辑

修正一些bug:
1、增加一维数组指针的计算指令:EAH和EAW,其中:
     a、对于16位指令集,汇编指令为:
          EAH   R1, Rd, Rj(其操作是:R1=Rd+Rj<<1,即半字数据类型的数组的指针);
          EAW  R1, Rd, Rj(其操作是:R1=Rd+Rj<<2,即字数据类型的数组的指针);
     b、对于32位指令集,汇编指令为:
          EAH   Rd, Rc, Rj(其操作是:Rd=Rc+Rj<<1,即半字数据类型的数组的指针);
          EAW  Rd, Rc, Rj(其操作是:Rd=Rc+Rj<<2,即字数据类型的数组的指针);

2、增加VBA寄存器,以支持中断向量重定位


使用特权

评论回复
150
吾要单片机|  楼主 | 2019-8-10 21:56 | 只看该作者
本帖最后由 吾要单片机 于 2019-8-12 16:21 编辑

经过不断的改进,现在指令集是这样了

看看酷能指令集和其它一些指令集架构比较,可以通过一段插入排序程序,直观比较代码效率。
插入排序程序(源自于RISC-V-Reader-Chinese-v2p1.pdf):


从表中比较可以看出,酷能指令集架构的指令数和代码密度优势明显!

其中:











酷能的代码是以下ARM-64汇编代码的简单代换而来。


使用特权

评论回复
151
吾要单片机|  楼主 | 2019-9-12 12:46 | 只看该作者
本帖最后由 吾要单片机 于 2019-10-8 10:13 编辑

酷能指令集又有新进展:
1、现在酷能汇编器可以输出BIN文件和DATA文件,DATA文件可以直接用于FPGA仿真。
2、取消指令:ADD Rd, PC, SIMM。

使用特权

评论回复
152
吾要单片机|  楼主 | 2019-10-8 10:14 | 只看该作者
本帖最后由 吾要单片机 于 2019-10-8 10:19 编辑

;酷能汇编语言实例:
;指令格式:[标号:] 操作符 [操作数1,操作数2,....] [;注释]        
                ADDR1:                 EQU 50H                    ;伪定义
                PUBLIC                DCHAR                         ;公共符号表
                ADDR2:                 EQU 6H                        ;伪定义
                EXTERN                CHARN, FUNC          ;外部变量表
                PUBLIC                ACK, CHAR1                 ;公共变量表
               
                SEGMENT name1, CONST        ;设置常数段,段名为name1,本段是重定位
                STRING:         DB "HELLO \"\;WOLD",0                        ;字符串(单行写法),字符串后面需要手工补0
                STRING2:        DB "LI CHAO BO"
                                        DB " WUYAOD\"ANPIANJI",0                ;字符串(多行写法)LI CHAO BO WUYAODANPIANJI,字符串后面需要手工补0
                SHUZU_P:         DW DCHAR, CHARS, STRING, AAN, FUC1        ;指针数组                        
                ENDS                                                ;段结束
               
                SEGMENT name2, DATA                        ;设置数据段,段名为name2,本段是重定位
                DCHAR:          DB 12H                        ;公共变量,16进制数要后缀H
                AAN:                DB 0ABH,0CDH,89H;16进制数要后缀H,不是0~9打头则以0打头
                                        DB 0CDH,12H,78H
                BBN:                DH 1234                        ;10进制,以0~9打头
                CHAR:           DB 'H'                        ;单个字符
                CHARS:          DB 'H','E','L','L','O',' ',41H,42H,43H,44H ;多个字符
                ACK:                 BW 1                        ;公共变量,留空1个字
                BAK:                 BH 50h                        ;留空50*16=80个半字
                CHAR1:                 DW 100,34H                 ;公共变量
                CHAR2:                BB 10                        ;留空10个字节
                ENDS                                                ;段结束

                SEGMENT name3, STACK                ;设置栈段,段名为name3,,本段是重定位
                blank:                BD 200                        ;留空200个双字
                ENDS                                                ;段结束
               
                SEGMENT name4, CODE, LOCATE = 80000000H        ;设置代码段,段名为name4,有[LOCATE = 80000000H]字段,则表示本段绝对定位,起始地址是80000000H
                ENTRY        START                                ;本代码段有指定程序入口
MULTAD  MACRO         x, y, z                                ;宏指令定义
                ADD                R<x>, R<y>, R<z>        ;形参用<>包围起来
                MOV     R<z>, R<x>
                ENDM                                                ;宏定义结束
               
START:        MOV         R1, 8765H                        ;16进制立即数,后缀H
                MOV         R2, R7
                MOV         R3, HR1
                MOV         HR0, R1
                MOV         HR1, HR0
                MOV         CR6, R10
                MOV         R6, CR9
                MOV         CR6, HR0
                MOV         HR1, CR9
                MOV         cr1, cr12
                MULTAD  1, 2, 6                                ;宏指令调用
                CALL        FUNC
                ALIGN 3                                                ;地址对齐
FUC1:         ADD         R1, C
                OR          R2, R4, 1234        
                SUB         R2, 12                                ;10进制立即数,无后缀H
                JMP         GHFN
               
                ORG                80000100H                        ;设置绝对地址
               
                SLB         R2, [R5+, 45]
                SLB         R3, [+R2, -145]
                ;其它汇编代码
                STRB         R3, [R3+, 123H]
                STRB         R3, [R3, 12345H]
               
                ;其它汇编代码
GHFN:   ADD         R1, R5, 1000
                ;其它汇编代码
                ENDS                                                ;段结束
                END                                                 ;文件结束

使用特权

评论回复
153
吾要单片机|  楼主 | 2020-1-2 19:08 | 只看该作者
本帖最后由 吾要单片机 于 2020-5-29 16:00 编辑

酷能处理器架构有更新!

使用特权

评论回复
154
吾要单片机|  楼主 | 2020-5-29 16:00 | 只看该作者
本帖最后由 吾要单片机 于 2020-6-5 22:41 编辑

好久没有来更新了,现在酷能指令集架构进化到这地步了.
改进的地方有:
1、寄存器组
2、拆分PSR寄存器
3、信号量指令
4、增加同步指令
5、条件传送指令
6、增加LOAD乱序指令


使用特权

评论回复
155
wwd8888| | 2020-5-30 11:30 | 只看该作者
反正必须顶一下

使用特权

评论回复
156
吾要单片机|  楼主 | 2020-6-5 22:34 | 只看该作者
本帖最后由 吾要单片机 于 2020-6-7 20:18 编辑

酷能指令集有更新。

使用特权

评论回复
157
吾要单片机|  楼主 | 2020-6-5 22:37 | 只看该作者
本帖最后由 吾要单片机 于 2020-6-7 20:19 编辑

取消PUSH/POP指令

使用特权

评论回复
158
吾要单片机|  楼主 | 2020-6-5 22:54 | 只看该作者
本帖最后由 吾要单片机 于 2021-3-10 13:02 编辑

酷能处理器架构.pdf (1.61 MB)


使用特权

评论回复
159
24kdewhite| | 2020-6-6 09:19 | 只看该作者
NB,不过要有人用才有价值,x86和arm的香终究是别家锅里的菜

使用特权

评论回复
160
24kdewhite| | 2020-6-6 09:21 | 只看该作者
搞指令集难度不是很高,困难的是重新造轮子,你根植底层和低端,那没意义,你要进高端,那就是重新造轮子,难

使用特权

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

本版积分规则