EETOP 创芯网论坛

找回密码

  登录   注册  

搜帖子
电子资料:5G承载光模块测试方案介绍 |有奖下载: 300信元+27个幸运抽奖)
楼主: 吾要单片机

[原创] 本人特别推介:《酷能指令集》及相关专利技术

[复制链接]
 楼主| 发表于 2017-5-18 10:57:48 | 显示全部楼层
特别说明:在发生分支跳转时,如果跳转的目标无法获得完整的指令(有前缀的立即数扩展指令)时,那么立即数扩展指令要延时一个周期,以等待紧随其后的执行指令的到来,除此以外立即数扩展指令不用延迟。仿真结果也证明了这一点。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-18 11:02:07 | 显示全部楼层
本帖最后由 吾要单片机 于 2018-1-28 19:44 编辑

关于中断系统:
      本CPU的硬件中断系统有:
复位,           优先级0, 抢占型中断,入口地址:0x00000000
访问数据错误,优先级1, 抢占型中断,入口地址:0x00000100
取指令错误,   优先级2, 完整型中断,入口地址:0x00000200
硬件中断,      优先级3, 完整型中断,入口地址:0x00000300
软件中断(INT   #IMM),  完整型中断,入口地址:0x00000400
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-18 11:03:33 | 显示全部楼层
本帖最后由 吾要单片机 于 2017-12-24 22:29 编辑

看看立即数扩展指令的使用(16位指令集):(例如计算R3=#76543210+#fedcba98)
f765        ;WIMM    #7654321
4321
0100        ;mov        R1, #0
ffed          ;WIMM   #FEDCBA9
cba9
7318        ;add        R3, R1,#8
计算这个表达式只需要2个周期(64位指令总线)或3个周期(32位指令总线),比ARM和MIPS快了不少啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-18 11:05:59 | 显示全部楼层
本帖最后由 吾要单片机 于 2017-12-24 22:56 编辑

需要说明的是:1、本CPU是哈佛结构,即指令总线和数据总线分开,如果指令总线是64位,这样可以实现前缀的操作数扩展指令和紧随其后的执行指令同步送入译码器,才能达到最高效能。
2、本CPU包含有基于历史记录表的转移预测功能(记录最近的4个分支点),对于循环体的提速很有效。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-18 16:00:08 | 显示全部楼层
CPU结构图 CPU.pdf (73.15 KB, 下载次数: 25 )
回复 支持 反对

使用道具 举报

发表于 2017-5-18 21:15:03 | 显示全部楼层
xuexi yixia
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-18 22:20:05 | 显示全部楼层
本帖最后由 吾要单片机 于 2017-5-18 22:25 编辑

32位指令集比16位指令集具有的优点是:
1、32位指令集拥有32个通用寄存器,而16位指令集只有16个通用寄存器,所以面向大型数据运算时,32位指令集具有优势。
2、32位指令集前缀有立即数扩展指令WIMM时,其32位数据处理指令仍然可以包含有跳转功能。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-23 18:19:08 | 显示全部楼层
没有人愿意讨论,是不是我不够格呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-23 18:23:07 | 显示全部楼层
有谁做过汇编器,我需要帮助。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-25 20:39:55 | 显示全部楼层
本帖最后由 吾要单片机 于 2017-12-24 23:10 编辑

16位指令集介绍
(共78条)
表1 加法、减法运算指令(10条)
  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  ADD   Rd, Rn, Rj
  
  Rd=Rn+Rj
  
  /WIMM/HIMM/CIMM
  
  NZCV
  
  1
  
  SUB   Rd, Rn, Rj
  
  Rd=Rn-Rj
  
  /WIMM/HIMM/CIMM
  
  NZCV
  
  1
  
  ADD   Rd, #uimm4
  
  Rd=Rd+ #uimm4
  
  /WIMM/HIMM/CIMM
  
  NZCV
  
  1
  
  SUB   Rd, #uimm4
  
  Rd=Rd- #uimm4
  
  /WIMM/HIMM/CIMM
  
  NZCV
  
  1
  
  ADD   Rd, SP, #uimm4
  
  Rd=SP+ #uimm4<<2
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  ADD   SP, #uimm8
  
  SP=SP+ #uimm8<<2
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  SUB   SP,#uimm8
  
  SP=SP- #uimm8<<2
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  ADD   Rd, PC, #0
  
  Rd={PC[31:1], 1’b0}+ #0
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  CASEB      Rn, Rj
  
  查找相等的字节
  
  /WIMM/HIMM/CIMM
  
  Z, n
  
  1
  
   CASEH      Rn, Rj
  
  查找相等的半字
  
  /WIMM/HIMM/CIMM
  
  Z, n
  
  1
  

说明:

表2 乘法、除法运算指令(10条)

  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  MUL    Rd, Rn, Rj
  
  Rd=Rn*Rj
  
  /WIMM/CIMM
  
  
  
  1~3
  
  UMAC   Rd, Rn, #uimm16
  
  R1=Rd+Rn[15:0] * #uimm16
  
  HIMM
  
  
  
  1
  
  SMULT  Rd, Rj
  
  (有符号){HI,LO}=Rd*Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  1~4
  
  UMULT  Rd, Rj
  
  (无符号){HI,LO}=Rd*Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  1~4
  
  SMLA   Rd, Rj
  
  (有符号){HI,LO}={HI,LO}+Rd*Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  2~5
  
  UMLA   Rd, Rj
  
  (无符号){HI,LO}={HI,LO}+Rd*Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  2~5
  
  SMLS   Rd, Rj
  
  (有符号){HI,LO}={HI,LO}-Rd*Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  2~5
  
  UMLS   Rd, Rj
  
  (无符号){HI,LO}={HI,LO}-Rd*Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  2~5
  
  SDIV   Rd, Rj
  
  (有符号)LO=Rd/Rj, HI=Rd%Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  4~16
  
  UDIV   Rd, Rj
  
  (无符号)LO=Rd/Rj, HI=Rd%Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  4~16
  

说明:

表3  逻辑运算指令(3条)

  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  AND  Rd, Rn, Rj
  
  Rd=Rn&Rj
  
  /WIMM/HIMM/CIMM
  
  NZ
  
  1
  
  OR   Rd, Rn, Rj
  
  Rd=Rn|Rj
  
  /WIMM/HIMM/CIMM
  
  NZ
  
  1
  
  XOR  Rd, Rn, Rj
  
  Rd=Rn^Rj
  
  /WIMM/HIMM/CIMM
  
  NZ
  
  1
  

说明:

表4  移位操作指令(4条)

  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  LSL  Rd, Rj
  
  Rd=Rd<<Rj
  
  /CIMM/RIMM/HIMM
  
  NZC
  
  1
  
  LSR  Rd, Rj
  
  Rd=Rd>>Rj
  
  /CIMM/RIMM/HIMM
  
  NZC
  
  1
  
  ASR  Rd, Rj
  
  Rd=(signed)Rd>>Rj
  
  /CIMM/RIMM/HIMM
  
  NZC
  
  1
  
  ROR  Rd, Rj
  
  Rd=Rd右环移Rj
  
  /CIMM/RIMM/HIMM
  
  NZC
  
  1
  

说明:

表5 位操作指令(8条)
  
  汇编指令  
  
  操作说明  
  IMM
  PSR
  T  
  BFEX      Rd, Rj, #width5,#lsb5
  位段提取  

  NZ
  1  
  BFIN      Rd, Rj, #width5,#lsb5
  位段插入  

  NZ
  1  
  BITA      Rd, Rj, #x, #y
  (布尔指令)与   Z=Rd.x & Rj.y

  Z  
  1  
  BITO      Rd, Rj, #x, #y
  (布尔指令)或    Z=Rd.x | Rj.y

  Z  
  1  
  BITX      Rd, Rj, #x, #y
  (布尔指令)异或  Z=Rd.x  ^ Rj.y

  Z  
  1  
  BITN      Rd, Rj, #x, #y
  (布尔指令)取反  Z=  ~ Rj.y,
  
Rd.x=  ~ Rj.y

  Z  
  1  
  ZMB<cond>  Rd,  #x
  保存~Z位,即Rd.  x = ~ Z


  1  
  RBIT    Rd, Rj
按位反转

  
  1
      说明:

表6  数制转换指令(3条)
  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  SEXTB   Rj
  
  字节符号位扩展
  
  /CIMM
  
  NZ
  
  1
  
  SEXTH   Rj
  
  半字符号位扩展
  
  /CIMM
  
  NZ
  
  1
  
  CLZ     Rd, Rj
  
  计算前导0的个数
  
  /CIMM
  
  Z
  
  1
  

  

说明:

表7  数据转送指令(21条)
  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  MOV     Rd,  Rj
  
  Rd=Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  CPL     Rd,  Rj
  
  Rd=~Rj
  
  /WIMM/HIMM/CIMM
  
  NZ
  
  1
  
  MOV    Rd,  HRj
  
  Rd=HRj
  
  /CIMM
  
  
  
  1
  
  MOV    HRd, Rj
  
  HRd=Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  MOV    RC,  Rj
  
  RC=Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  MOV    Rj, RC
  
  Rj=RC
  
  /CIMM
  
  
  
  1
  
  MOV    Rj,  PSR
  
  Rj=PSR
  
  /CIMM
  
  
  
  1
  
  MOV    PSR, Rj
  
  PSR=Rj
  
  /WIMM/HIMM/CIMM
  
  
  
  1
  
  XCHG   Ra, [Rb], Rc
  
  Ra=[Rb], [Rb]=Rc
  
  RIMM
  
  
  
  1
  
  SLB    Rd, [Rn, #0]
  
  Rd=(Sbyte)MEM[Rn+ #0]
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  SLH    Rd, [Rn, #0]
  
  Rd=(Shalf)MEM[Rn+ #0<<1]
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  ULB    Rd, [Rn, #0]
  
  Rd=(Ubyte)MEM[Rn+ #0]
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  ULH    Rd, [Rn, #0]
  
  Rd=(Uhalf)MEM[Rn+ #0<<1]
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  ULW    Rd, [Rn, #0]
  
  Rd=(Uword)MEM[Rn+ #0<<2]
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  STRB   Rd, [Rn, #0]
  
  (byte)MEM[Rn+ #0]=Rd
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  STRH   Rd, [Rn, #0]
  
  (half)MEM[Rn+ #0<<1]=Rd
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  STRW   Rd, [Rn, #0]
  
  (word)MEM[Rn+ #0<<2]=Rd
  
  /WIMM/HIMM/CIMM/RIMM
  
  
  
  1
  
  ULD    Rd, [SP, #uimm4]
  
  Rd=(Uword)MEM[SP+ #uimm4<<2]
  
  /WIMM/HIMM/CIMM/
  
  
  
  1
  
  STR    Rd, [SP, #uimm4]
  
  (Uword)MEM[SP+ #uimm4<<2]=Rd
  
  /WIMM/HIMM/CIMM/
  
  
  
  1
  
  PUSH    Rd, #uimm4
  
   (#uimm4+1)个寄存器压栈
  
  /CIMM
  
  
  
#uimm4+1
  
  POP     Rd, #uimm4
  
   (#uimm4+1)个寄存器弹栈
  
  /CIMM
  
  
  
#uimm4+1
  
说明:

表8 程序转移指令(12条)
  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  MJZ     #uimm4
  
分散转移指令
  
  WIMM/HIMM
  
  
  
  2
  
  CALL    #simm12
  
  
  
  /WIMM/HIMM
  
  
  
  2
  
  CALL    Rj
  
  
  
  
  
  
  
  
2
  
  J<cond> #simm4
  
  
  
  /WIMM/HIMM
  
  
  
  2
  
  JMP      Rj
  
  
  
  
  
  
  
  2
  
  CJZ    Rd, Rj,#simm12
  
  If (Rd^Rj)==0 then jmp
  
  WIMM/HIMM
  
  
  
  2
  
  CJNZ   Rd, Rj,#simm12
  
  If (Rd^Rj)!=0 then jmp
  
  WIMM/HIMM
  
  
  
  2
  
  TJZ    Rd, Rj,#simm12
  
  If (Rd&Rj)==0 then jmp
  
  WIMM/HIMM
  
  
  
  2
  
  TJNZ   Rd, Rj,#simm12
  
  If (Rd&Rj)!=0 then jmp
  
  WIMM/HIMM
  
  
  
  2
  
  INT     #uimm8
  
  软件中断
  

  
  
  
  
2
  
  IRET
  
  中断返回
  
  
  
  
  
  
2
  
  RET
  
  子程序返回
  
  
  
  
  
  2
  
说明:
表9 控制指令(3条)
  
汇编指令
  
  
操作说明
  
  
IMM
  
  PSW
  
  T
  
  SLEEP        
  
  睡眠,等待中断唤醒
  

  
  
  
  1
  
  SET     PSR,  #uimm4
  
  将PSR的控制位置1
  
  
  
  I,P,B
  
  1
  
  CLR     PSR,  #uimm4
  
  将PSR的控制位清0
  
  
  
  I,P,B
  
  1
  

说明:


表10 立即数扩展指令(4条)
  
汇编指令
  
  
操作说明
  
  WIMM     #imm28
  
  提供高28位立即数
  
  HIMM     #imm12
  
  提供高12位立即数
  
  RIMM     Ra, Rb, Rc
  
  提供寄存器操作数Ra, Rb, Rc
  
  CIMM     cond  [E]jmp  #v7
  
  提供执行条件码cond、反条件码E和跳转矢量#v7
  

说明:

-----------16位指令集到这结束---------

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-4-6 14:14 , Processed in 0.069517 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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