龙芯开源社区

 找回密码
 注册新用户(newuser)
楼主: 吾要单片机

在此公开本人的一项发明专利,可能对龙芯有用!

  [复制链接]
 楼主| 发表于 2013-6-1 21:27:06 | 显示全部楼层
本帖最后由 吾要单片机 于 2013-6-1 22:02 编辑

本指令集重复操作的使用方法:
举例:复制一块数据块200字。
             LPCD   R0, [PC, #XXXX];
             LPCD   R1,  [PC, #XXXX];
             MOV    R2, #200;
             RPT      R2;
LOOP1:  LDDRP  R2, [R0], #4, FJMP LOOP2;
             STRD    R2, [R1], #4, JMP   LOOP1;
LOOP2: 。。。
 楼主| 发表于 2013-6-1 21:44:46 | 显示全部楼层
本帖最后由 吾要单片机 于 2013-6-1 22:02 编辑

本指令集重复操作的使用方法:
举例:比较两块数据块200字,不等则退出。
             LPCD   R0, [PC, #XXXX];
             LPCD   R1,  [PC, #XXXX];
             MOV    R2, #200;
             RPT      R2;
             BIS      PSW,   Z;            
LOOP1:  LDDRZ  R2, [R0], #4, FJMP LOOP2;
             LDD      R3, [R1], #4;
             CMP     R2, R3, JMP   LOOP1;
LOOP2: 。。。
发表于 2013-6-2 07:15:06 | 显示全部楼层
看了你的汇编,看起来结构清晰。
发表于 2013-6-2 07:50:33 | 显示全部楼层
你为什么把每个指令都加上跳转呢?
 楼主| 发表于 2013-6-2 11:49:56 | 显示全部楼层
也不是每条指令都跳转啊。
 楼主| 发表于 2013-6-2 11:52:18 | 显示全部楼层
本帖最后由 吾要单片机 于 2013-6-2 19:20 编辑

我的观察:
1、ARM所有指令都是有条件执行,这一点比MIPS灵活,值得表扬!。
2、ARM所有指令都具有执行后可选择更新状态码的功能,这一点似乎也比MIPS灵活。
3、ARM工作寄存器只有16个(实际上用户随意使用的只有13个),甚至在16指令模式下使用不到8个工作寄存器。用户可任意使用的工作寄存器太少,对R型CPU来说是个硬伤,它将无法应用在大量数据运算的场合(如大型机),由于可用工作寄存器太少,如果自动变量定义过多的话,将无法定义在工作寄存器中,所以需要频繁访问主存,性能不会好到哪里去。对于这一点,MIPS应该完胜ARM,所以ARM在嵌入式领域应用比较合适,而MIPS无论在嵌入式领域还是大型机领域都能胜任,两样通吃。
4、ARM的推广工作远好于MIPS,ARM资助了不少人出版ARM的学习、开发资料,更为可贵的是ARM的开发工具几乎免费,其结果是学习和应用ARM的电子工程师多的是,所以ARM气势如虹也是理所当然的,从这一点可以证明,江山是靠自己打下来的。
本人技术方案的技术特点:
1、所有指令都是有条件执行,这一点与ARM相同。
2、所有指令都带有跳转功能,这一点前所未有,独具特色。
3、有重复计数器配合条件码RP、RZ、RN指示重复操作,重复计数器计数零开销,这一点也是独具特色。
4、可重复操作一定数量指令组,指令组大小由跳转矢量决定。(比X86灵活得多了)
5、重复操作过程中可以随时被中断。(我不知道X86在进行重复操作时能不能响应中断)
6、CPU可以工作于半寄存器模式(即16个工作寄存器、8位跳转矢量),也可以工作于全寄存器模式(即32个工作寄存器、6位跳转矢量),这两种模式可以由程序员随意切换,可以做到处于全寄存器模式的子程序能够调用处于半寄存器模式的孙程序,反之亦然(这一点也是独具特色)。所以它也和MIPS一样,既可以应用于嵌入式领域,也可以应用于大型机领域。
7、优化的指令可以显著减少在多维数组下标计算时使用的指令数量,这一点比ARM和MIPS都减少一半。

以上是我的观察,希望大家指正!
 楼主| 发表于 2013-6-2 19:12:11 | 显示全部楼层
开会啦!人都到哪里去了?
发表于 2013-6-2 20:22:55 | 显示全部楼层
楼主开会了,我旁听下。
本人不懂这样的技术,看后感觉云里雾里。纯粹捧个人场。
 楼主| 发表于 2013-6-3 20:05:08 | 显示全部楼层
本帖最后由 吾要单片机 于 2013-6-3 21:32 编辑

数组操作,基于本指令集
三维数组a[7][8][9],
a[j][k]=5;

ADD    R0, SP,#XXX
AMUL  Rj,  Ri, #8;        A=j+i*8
AMUL  Rk, A,  #9;        A=k+A*9
ADDL  R0, A,  #2;       R0=R0+A<<2,数据类型
MOV    R1, #0X05;
STRD    R1, [R0], #0;

MIPS需要多少条指令?ARM需要11条指令。当然大家的操作时间可能差不多。
发表于 2013-6-3 21:33:04 | 显示全部楼层
你这个数组有电路实现吗?

本版积分规则

Archiver|手机版|小黑屋|Lemote Inc.

GMT+8, 2020-11-1 03:52 , Processed in 0.141264 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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