BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

[业界] 【转帖】龙芯是假的??--用底层代码说话:龙芯不是“中国心”
首页 » 论坛 » IT业界新闻与评论 »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
guazi111
精灵王




UID:343846
注册:2005-12-1
最后登录: 2008-09-04
帖子:295
精华:0

可用积分:293 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
1楼 发表于 2008-7-1 16:23 
rt,只是转帖

前两天俺一个混ic的同学忽然给俺发了这个帖子连接,而且说他也看到了05年时候的龙芯实物,光外围电路板看,和amd的一个mips架构的cpu是一模一样的……

俺冇在ic行业混,大学时候学的单片机和汇编什么的也早都忘到不知哪国去了,帖子里的hello world几乎都是有看冇懂,请cu的各位大牛们评定一下这帖子的楼主说的有道理么……

原帖地址http://topic.csdn.net/u/20070809/19/43c6eb9c-2eaf-4753-bb26-1bd68b3904de.html

原帖内容

QUOTE:
[tr]用底层代码说话:龙芯不是“中国心” [已结贴,结贴人:lptt] [/tr]
加为好友 发送私信 在线聊天
    lptt 专业代写-----课程设计 大作业 毕设
  • 等级:
发表于:2007-08-09 19:42:35 楼主
所谓   发明自己的CPU   我想应该是这样:1.自己老老实实自己用VHDL或VERILOG写
                                                                        ip   core   (其实ip   core几十个VHD或V文件)
                                                                      2.用综合器一步步综合成自己的标准单元电路
                                                                      3.布线制版
一。龙芯的ip   core由来
首先看一段代码(设置好福珑上的编程环境)

.data
mess:   .asciiz   “\n   hello   world   ”
.globl   main
.text
main:
li   $v0,   4   #   打印的系统中断号
la   $a0,   mess#   要打印的字符串的地址
syscall   #   调中断
.end       main      

这是在福珑机子(基于龙芯2E)上简单的一段HELLO   WORLD汇编代码,可以看出所有指令(li   la   还有这个程序没有包含的龙芯指令都和MIPS指令完全一样)都是MIPS指令,代码段和数据段和系统调用的约定都是MIPS指令集约定,为进一步确定龙芯指令集就是MIPS指令集,我查看连接后的二进制代码,再和MIPS手册指令的opcode对比,结果完全一样。连指令的名称到OPCODE都一样,我真是无语了。

cpu的各模块

                                                    ROM <-------|                                         |-----> decode单元
                                                                            -----央控制单元-----
                                                    RAM <-------|                                         |-----> ALU单元

1。中央处理单元从ROM(指令寄存器与内存统一编址)取指令               
2。然后通过decode单元译码(指令---> opcode)
3。ALU单元执行decode单元译出来的码(opcode)
4.   访RAM取数据等操作数
5。回写

我们都知道CPU的IP   CORE基本都是由VHDL或VERILOG写成,而其中必然有一decode模块将指令转化为OPCODE,例如8051的ip   core的i8051_dec.vhd文件中的decode模块:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
--decode单元
--i8051_dec.vhd文件

entity   I8051_DEC   is
        port(rst           :   in     STD_LOGIC;
                  op_in       :   in     UNSIGNED   (7   downto   0);
                  op_out     :   out   UNSIGNED   (8   downto   0));
end   I8051_DEC;

architecture   DFL   of   I8051_DEC   is
begin
        op_out   <=   ( "00 "   &   OPC_ERROR   )   when   rst   =   '1 'else
--call译码         ( "01 "   &   OPC_ACALL   )   when   op_in(4   downto   0)   =   ACALL     else
--加法译码   等   ( "00 "   &   OPC_ADD_1   )   when   op_in(7   downto   3)   =   ADD_1     else           
                            ( "01 "   &   OPC_ADD_2   )   when   op_in(7   downto   0)   =   ADD_2     else
                            ( "00 "   &   OPC_ADD_3   )   when   op_in(7   downto   1)   =   ADD_3     else
                            ( "01 "   &   OPC_ADD_4   )   when   op_in(7   downto   0)   =   ADD_4     else
                            ( "00 "   &   OPC_ADDC_1)   when   op_in(7   downto   3)   =   ADDC_1   else
                            ( "01 "   &   OPC_ADDC_2)   when   op_in(7   downto   0)   =   ADDC_2   else
                            ( "00 "   &   OPC_ADDC_3)   when   op_in(7   downto   1)   =   ADDC_3   else
                            ( "01 "   &   OPC_ADDC_4)   when   op_in(7   downto   0)   =   ADDC_4   else
                            ( "01 "   &   OPC_AJMP     )   when   op_in(4   downto   0)   =   AJMP       else
                                                          .
                                                          .
                                                          .
                                                          .
                            ( "00 "   &   OPC_ERROR   );
end   DFL;

不难推断龙芯CPU的ip   core中肯定存在类似文件(也许叫loognxin_dec.vhd,或者其实就是MIPS_dec.vhd)包含decode模块,形式和这个近似。
////////////////////////////////////////////////////////////////////////////////////////////////////////
--央控制单元
--i8051_ctr.vhd
architecture   BHV   of   I8051_CTR   is

        type   CPU_STATE_TYPE   is   (CS_0,   CS_1,   CS_2,   CS_3);
        type   EXE_STATE_TYPE   is   (ES_0,   ES_1,   ES_2,   ES_3,   ES_4,   ES_5,   ES_6,   ES_7);
        
        signal   reg_pc_15_11   :   UNSIGNED   (4   downto   0);
        signal   reg_pc_10_8     :   UNSIGNED   (2   downto   0);
        signal   reg_pc_7_0       :   UNSIGNED   (7   downto   0);
        signal   reg_op1             :   UNSIGNED   (7   downto   0);
        signal   reg_op2             :   UNSIGNED   (7   downto   0);
        signal   reg_op3             :   UNSIGNED   (7   downto   0);
        signal   reg_acc             :   UNSIGNED   (7   downto   0);
        signal   reg_cy               :   STD_LOGIC;
        signal   reg_ac               :   STD_LOGIC;
        signal   reg_f0               :   STD_LOGIC;
        signal   reg_rs1             :   STD_LOGIC;
        signal   reg_rs0             :   STD_LOGIC;
        signal   reg_ov               :   STD_LOGIC;
        signal   reg_nu               :   STD_LOGIC;
        signal   reg_p                 :   STD_LOGIC;

        signal   cpu_state   :   CPU_STATE_TYPE;
        signal   exe_state   :   EXE_STATE_TYPE;
begin

        process(rst,   clk)

                                --   execute   state
                                --
                                when   CS_3   =>
                                        case   dec_op_in(6   downto   0)   is

-------------------------------------------------------------------------------
--
                                                --   acc   <-   acc   +   (r)
                                                --
                                                when   OPC_ADD_1     =>             --注意这一行   表示加法
                                                        case   exe_state   is
                                                                when   ES_0   =>
                                                                        GET_RAM_ADDR_1(v;
                                                                        START_RD_RAM(v;
                                                                        exe_state   <=   ES_1;

                                                                when   ES_1   =>
                                                                        exe_state   <=   ES_2;

                                                                when   ES_2   =>
                                                                        alu_op_code   <=   ALU_OPC_ADD;
                                                                        alu_src_1   <=   reg_acc;
                                                                        alu_src_2   <=   ram_in_data;
                                                                        alu_src_cy   <=   '0 ';
                                                                        exe_state   <=   ES_3;

                                                                when   ES_3   =>
                                                                        ram_out_data   <=   alu_des_1;
                                                                        START_WR_RAM(R_ACC);
                                                                        reg_cy   <=   alu_des_cy;
                                                                        reg_ac   <=   alu_des_ac;
                                                                        reg_ov   <=   alu_des_ov;
                                                                        exe_state   <=   ES_4;

              when   OPC_CJNE_3   =>     --注意这一行表示不等跳转   下面还有许多不一一列

                                                        case   exe_state   is
                                                                when   ES_0   =>
                                                                        GET_RAM_ADDR_1(v;
                                                                        START_RD_RAM(v;
                                                                        exe_state   <=   ES_1;

                                                                when   ES_1   =>
                                                                        exe_state   <=   ES_2;

                                                                when   ES_2   =>
                                                                        GET_PC_H(pch);
                                                                        GET_PC_L(pcl);
                                                                        alu_op_code   <=   ALU_OPC_PCSADD;
                                                                        alu_src_1   <=   pcl;
                                                                        alu_src_2   <=   pch;
                                                                        if(   ram_in_data   /=   reg_op2   )   then

问题点数:20 回复次数:36  修改 删除 举报 引用 回复  

加为好友 发送私信 在线聊天
    lptt 专业代写-----课程设计 大作业 毕设
  • 等级:
发表于:2007-08-09 19:42:431楼 得分:0
/////////////////////////////////////////////////////////////////////////////////////
--ALU单元   
--i8051_alu.vhd
begin
        process(rst,   op_code,   src_1,   src_2,   src_3,   src_cy,   src_ac)

                variable   v16   :   UNSIGNED   (15   downto   0);
                variable   v8   :   UNSIGNED   (7   downto   0);
                variable   v_cy,   v_ac,   v_ov   :   STD_LOGIC;
        begin
                if(   rst   =   '1 '   )   then

                        des_1   <=   CD_8;
                        des_2   <=   CD_8;
                        des_cy   <=   '- ';
                        des_ac   <=   '- ';
                        des_ov   <=   '- ';
                else

                        case   op_code   is                       --判断opcode是哪个,分别进行处理
                                when   ALU_OPC_ADD         =>
                                        DO_ADD(src_1,   src_2,   src_cy,   v8,   v_cy,   v_ac,   v_ov);
                                        des_1   <=   v8;
                                        des_2   <=   CD_8;
                                        des_cy   <=   v_cy;
                                        des_ac   <=   v_ac;
                                        des_ov   <=   v_ov;
                                       
                                when   ALU_OPC_SUB         =>
                                        DO_SUB(src_1,   src_2,   src_cy,   v8,   v_cy,   v_ac,   v_ov);
                                        des_1   <=   v8;
                                        des_2   <=   CD_8;
                                        des_cy   <=   v_cy;
                                        des_ac   <=   v_ac;
                                        des_ov   <=   v_ov;

                                when   ALU_OPC_MUL         =>
                                        DO_MUL(src_1,   src_2,   v16,   v_ov);
                                        des_1   <=   v16(7   downto   0);
                                        des_2   <=   v16(15   downto   ;
                                        des_cy   <=   '- ';
                                        des_ac   <=   '- ';
                                        des_ov   <=   v_ov;
                                       
                                when   ALU_OPC_DIV         =>
                                        DO_DIV(src_1,   src_2,   v16,   v_ov);
                                        des_1   <=   v16(7   downto   0);
                                        des_2   <=   v16(15   downto   ;
                                        des_cy   <=   '- ';
                                        des_ac   <=   '- ';
                                        des_ov   <=   v_ov;
////////////////////////////////////////////////////////////////////////////////////

rom和ram单元就不列举   
列举这么多代码主要为了说明decode模块与其他各个模块密切相关,紧密偶合,此模块相同,其他模块必然相同


                                                                                                                                       
龙芯_指令集=MIPS_指令集   龙芯_OPCODE=MIPS_OPCODE   ====>   decode模块:loognxin_dec.vhd就是MIPS_dec.vhd     中央处理模块:loognxin_ctr.vhd就是MIPS_ctr.vhd     其他模块也是相同的====> 龙芯的ip   core就是照抄MIPS的ip   core                                                                                                                                                         

龙芯的ip   core还不是完全的MIPS的ip   core,实际就是超级烂的版本的MIPS的ip   core。据说是向法意半导体买来的,结果人家给的是一个不能完全调通的代码
这就好理解法意半导体为什么要全程代工,因为中科院的调不出来,还生产什么啊



2.用综合器一步步综合成自己的标准单元电路   3.布线制版
网上传说   这两步都由ST代工   我也不太清楚。                                                                       


写完之后   我心是痛的。劳苦大众的的血汗钱,被这帮人渣中饱私囊。我就坚信一句话:不是不报,时候未到。
修改 删除 举报 引用 回复  




您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
guazi111
精灵王




UID:343846
注册:2005-12-1
最后登录: 2008-09-04
帖子:295
精华:0

可用积分:293 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
2楼 发表于 2008-7-1 16:28 
接下来的主要回复:

QUOTE:
加为好友 发送私信 在线聊天
发表于:2007-08-09 21:32:164楼 得分:5
人家本来就说了是兼容MIPS的,而且也没有讳言是使用了网上能找到的MIPS核心实现。
用得着你在N年之后卖弄聪明吗?

但是“龙芯_指令集=MIPS_指令集”是错误的,人家还有自己扩展的数十条指令。
还有“据说是向法意半导体买来的”那真的是“据说”,但是说反了,是授权给法意半导体龙芯2E的生产和全球销售权。

不要不懂装懂。
你以为贴个8051的VHD就可以吓得住人吗?
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
    lptt 专业代写-----课程设计 大作业 毕设
  • 等级:
发表于:2007-08-09 22:05:495楼 得分:0
我是用8051的opcode和指令对应关系   来说明龙芯的opcode和指令   
(   你没仔细看我的文章   我也没说这不是51的VHDL文件   我有注释的   而且我都标明了文件名   要不你也看不出是51吧   ^o^   在decode单元中
                           
                            ( "01 "   &   OPC_ADDC_2)   when   op_in(7   downto   0)   =   ADDC_2   else
                            ( "00 "   &   OPC_ADDC_3)   when   op_in(7   downto   1)   =   ADDC_3   else
                            ( "01 "   &   OPC_ADDC_4)   when   op_in(7   downto   0)   =   ADDC_4   else
                            ( "01 "   &   OPC_AJMP     )   when   op_in(4   downto   0)   =   AJMP       else
                                                          .
                                                          .
                                                          .
                                                          .
                            ( "00 "   &   OPC_ERROR   );
end   DFL;

不难推断龙芯CPU的ip   core中肯定存在类似文件(也许叫loognxin_dec.vhd,或者其实就是MIPS_dec.vhd)包含decode模块,形式和这个近似。
////////////////////////////////////////////////////////////////////////////////////////////////////////

从而说明龙芯是照搬的MIPS的核


两个毫不相干的指令集何谈“兼容”   这句话本身就有问题   ,
你见过X86指令集兼容ARM7指令集的吗?只能说明龙芯指令集从来就没有过
  
还有所谓龙芯“自己扩展的数十条指令”不是10条而是只有4条,就这4条根本就没有调通过   所以才跟法意半导体“合作”
弄来了整个的MIPS@64位架构的使用权   我想我还是没有说反的   见下:
http://tech.sina.com.cn/it/2007-03-28/14261437442.shtml

还有我没想吓唬谁
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
发表于:2007-08-09 22:22:196楼 得分:5
我对VHDL并不精通,不过想说一点:龙芯刚研制出来时就声明用的是MIPS,一块CPU,除了是自身科技水平的展示外,还应该考虑一些市场推广方面的因素,也许我们可以自己设计实现一套指令集,但国际上不会有哪个厂商说因为是你中国自己设计的就一定要用你的产品,况且用了MIPS龙芯现在也还没能广泛的应用,如果是自己来一套,恐怕可能会更加举步维艰,我们研究自己的CPU的最终目的是要应用的,最终不能广泛应用的产品我们为什么还要做呢?

毕竟我们没能处在大规模集成电路刚刚普及的年代,那时的8086还没能形成气候,而现在国际上已有巨头垄断,他们几十年的技术积淀是我们短时间难以超越的,但我们还是要去做,只是策略上得好好把握。

个人觉得LZ所说的:“劳苦大众的的血汗钱,被这帮人渣中饱私囊。我就坚信一句话:不是不报,时候未到。”实在是有些偏激,当然LZ的知识知识远比我丰富,我也根本没资格指责LZ什么,只是希望,大家都能冷静下来,关注这些,耐住性子,让时间来证明一切。
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
发表于:2007-08-09 23:23:507楼 得分:0
其实静心想想,龙芯都这么多年了..

如果真的那么厉害,早就扬威海外了.

还像现在这样..


---个人愚见,偶不懂技术---
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
发表于:2007-08-10 08:17:428楼 得分:0
我觉得   Via   C3   挺好的~   就是周边配套的太少了,资料也很少。
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
发表于:2007-08-10 09:28:479楼 得分:0
CSDN的YY高手还真多
人家龙芯老总一句“我们只是要一个MIPS兼容的商标”,你们就YY起来了。

MIPS和ARM公司是靠什么赚钱的???
是靠卖IP   core的授权。
他们自己从来不做CPU,就靠卖这个授权赚钱

CPU设计里面最关键的就是这个IP   core
我们做嵌入式板的软件开发的时候,通常都说,这个是ARM的板子,那个是MIPS的板子,但是从来也不说是某某公司做的兼容ARM的板子。

就以MIPS为例,breadcom公司的路由器和网卡芯片就是MIPS兼容的,但是从来也没见他们自称过什么核心知识产权(知识产权还是有的);珠海炬力也是做MIPS   CPU的,也没见他们整天吹嘘什么;反而是现在一个中科院的,代表中国最高水平的研究机构,做出来一个MIPS兼容的芯片就像跳梁小丑一样的到处宣传,还说要和intel一争高下,要争也是人家ARM和MIPS去争吧,和你有关系吗。

顺便说一下,龙心一开始是想造假的,最后被MIPS公司发现了,要打国际官司,这才付了专利费变成了MIPS兼容产品。
如果是一开始就只想要一个牌子,为什么不直说,而是等谎言被揭穿吃了官司以后才去付专利费
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
发表于:2007-08-10 15:20:4211楼 得分:0
lptt,显然你连龙芯的基本结构都不了解。
所谓“4条指令”,那是因为MIPS科技公司有专利保护,龙芯没办法加进去,所以才需要以合作的方式获得这部分专利的使用权,不是自己实现不了。龙芯自己已经扩展数十条媒体指令,与基本的MIPS指令集完全不同。
同样的指令集,其实现可能完全不同,性能也不一样。就象AMD和intel的处理器,基本相同的指令集,但是有的指令在AMD处理器上执行快,有的在intel处理器上执行快,这就是实现上的不同造成的差异,你说是谁抄谁的?
计算所的人还是下了很大工夫的,龙芯的实现和传统的MIPS架构差别也是很大的,并非照搬,而是兼容。比如传统的MIPS处理器是超级流水线架构,已经过时了,龙芯2E使用的是超标量架构,2个定点单元+2个浮点单元,比PIII/PIV的3个执行单元还多,和intel新的core架构是一样的。再比如,MIPS   R10000是7级流水线,龙芯2E是9级流水线。
就凭龙芯2E在1GHz的频率下,spec2000可以跑到500分以上的成绩,就不是传统的MIPS架构能做到的。
意法半导体的说明中都明确承认龙芯是计算所自己开发的架构。
http://www.stmicroelectronics.com.cn/stonline/products/families/computer/microprocessors/loongson.htm
“Loongson   (龙芯)   处理器是中国科学院计算技术研究所(ICT)和意法半导体公司共同开发研制的。它们整合了ICT开发的高级CPU架构和意法半导体公司的前沿工艺技术、设计专长和制造可靠性。意法半导体公司现已成为Loongson   (龙芯)系列微处理器的独家制造商和销售商。”

如果龙芯真的是象某些人所说的那样是MIPS的逆向工程仿制品(其实逆向工程也不是什么大不了的事,连intel、AMD这种水平的公司也还要互相逆向工程呢)、是网上就可以找到的MIPS基本指令集实现(在opencores.org上就有)的修改版,那意法半导体会去买它的生产权和销售权?会每颗处理器向计算所支付2美元的专利费?你当人家傻呀?
欺世盗名的人是有的,但不是什么事情都搞出个“阴谋论”来才能证明自己的高明。
事实上,从头开始搞一个全新的架构,比兼容现存的架构继续增强更容易。否则intel也不会不顾市场风险抛开IA-32搞Itanium了。这个道理你还懂吧。
兼容就是财富,连intel、IBM都没能力对抗市场的惯性,更何况计算所了。
如果计算所真的搞了一个全新的架构,恐怕某些人还会继续跳出来骂“垃圾”、“没市场”、“作秀”之类的。
在网上诋毁龙芯的人,除了一部分利益受损的洋买办,就是北大的人最多了,因为他们的“方舟”无疾而终了。
至于楼主你,连这些人都不如,也就是不懂装懂、目高于顶的菜鸟罢了。从你虚张声势贴51的VHD就可以看出来了。
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
发表于:2007-08-10 15:43:1012楼 得分:0
回复人:dxcnjupt()   (   一级(初级))   信誉:100   2007-08-10   09:28:47   得分:0
?   
CSDN的YY高手还真多
人家龙芯老总一句“我们只是要一个MIPS兼容的商标”,你们就YY起来了。

MIPS和ARM公司是靠什么赚钱的???
是靠卖IP   core的授权。
他们自己从来不做CPU,就靠卖这个授权赚钱

CPU设计里面最关键的就是这个IP   core
我们做嵌入式板的软件开发的时候,通常都说,这个是ARM的板子,那个是MIPS的板子,但是从来也不说是某某公司做的兼容ARM的板子。

就以MIPS为例,breadcom公司的路由器和网卡芯片就是MIPS兼容的,但是从来也没见他们自称过什么核心知识产权(知识产权还是有的);珠海炬力也是做MIPS   CPU的,也没见他们整天吹嘘什么;反而是现在一个中科院的,代表中国最高水平的研究机构,做出来一个MIPS兼容的芯片就像跳梁小丑一样的到处宣传,还说要和intel一争高下,要争也是人家ARM和MIPS去争吧,和你有关系吗。
======================================================================
又一个不懂装懂的东西。
龙芯只是指令集兼容MIPS,具体实现上是有很大差别的,你不懂就先找些资料学习一下,不要跳出来沐猴而冠、骚扰别人的耳目。
设计龙芯需要的技术水平和那些做定制MIPS芯片的厂家完全不是一个档次。那些厂家怎么能吹得起来呢?


顺便说一下,龙心一开始是想造假的,最后被MIPS公司发现了,要打国际官司,这才付了专利费变成了MIPS兼容产品。
如果是一开始就只想要一个牌子,为什么不直说,而是等谎言被揭穿吃了官司以后才去付专利费
======================================================================
又一个编故事的,可惜水平太次。
什么叫做“造假”?
就算计算所逆向工程出一个一模一样的产品,那也不算造假,AMD一开始就是这么起家的。
你懂不懂?
更何况计算所还没有这么低级呢。
汉芯那种直接拿别人的产品印上自己的商标那才是造假。
龙芯在设计之初,宣称的目标就是“兼容MIPS”,这是早就公开的事实,不是你们这帮半掉子的新发现,“谎言”在哪里?
为了避开专利限制,龙芯1就没有支持全部MIPS指令集,吃了什么“官司”?
不要不懂装懂。
修改 删除 举报 引用 回复  
加为好友 发送私信 在线聊天
发表于:2007-08-10 16:00:4013楼 得分:0
龙芯与MIPS在实现上的差异,   胡伟武早在05就说明了:
http://www.xtrj.org/godson/godson2-notes.htm

如果某些“阴谋论”者,能在“技术上”证明胡伟武说谎,我很愿意领教。
修改 删除 举报 引用 回复  




您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
guazi111
精灵王




UID:343846
注册:2005-12-1
最后登录: 2008-09-04
帖子:295
精华:0

可用积分:293 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
3楼 发表于 2008-7-1 16:31 
其他回复

QUOTE:
加为好友 发送私信 在线聊天
    lptt 专业代写-----课程设计 大作业 毕设
  • 等级:
发表于:2007-08-10 16:22:3414楼 得分:0
大哥   我求求你看看我的文章   再说行吗
我一再强调
“我是用8051的opcode和指令对应关系   来说明龙芯的opcode和指令”

“不难推断龙芯CPU的ip   core中肯定存在类似文件(也许叫loognxin_dec.vhd,或者其实就是MIPS_dec.vhd)包含decode模块,形式和这个近似。”

MIPS的ip   core是没有公开的   你看到的其实是网络上一些组织或大学的研究或学生的大作业,
而发在网上缩水版的实现。(你没仔细看,那些基本都是MIPS-I的,能拿来用吗?而且大部分只译拉几条指令)。由于略微复杂   所以我没有采用,而用了最简单的51核   来说明
“我是用8051的opcode和指令对应关系   来说明龙芯的opcode和指令”

我是搞嵌入式的   从学校的实验室到公司   研究信令测试仪器相关   arm核的三星的44B0   PHILLPS的lpc2104     powerpc的mpc   8260   8280也都用过。我从来没见过龙芯这样的datasheet(还是网上找了很久才找到,最后找到的是一本才有55页 "datasheet "和mpc   8260的1000多页的datasheet怎么比,怎么拿来用),里边连最基本的芯片内的模块图Block   Diagram都没有   只有外部接口简略说明,内部如何布局完全是个黑盒   这叫什么datasheet啊。
你给的网页所列举的所谓:
  超标量架构   
  64-位、四发射乱序执行   
  典型时钟频率:700   MHz   
  64-Kbyte指令高速缓存、64-Kbyte数据高速缓存、片上512-Kbyte   L2高速缓存   
  片上DDR存储器控制器   
  同类产品中最佳的功耗:4   W   @   700   MHz   TDP(热设计功率)   
  基于MIPS**   
  领先的90-nm工艺技术
  2个定点单元+2个浮点单元
  龙芯2E是9级流水线
在DATASHEET里   全部是用嘴“说”出来的而且只有几页。我想这些应由Block   Diagram来“说”而且别的章节要详细说。真是让我长见识了。这只能说明里边见不得人啊。

引用你的话“事实上,从头开始搞一个全新的架构,比兼容现存的架构继续增强更容易”
是容易   结果同样的工艺你只能达到几百MHZ   人家老外是几GHZ(抄了别人的东西还不行呢   别说不抄了   不要老看说出来的   要看测出来的   龙芯2E能跑到1GHz吗?能达到800MHZ就不错了)

请达人多看资料(不是新闻啊)   再说话行吗   先看别人说拉什么再反驳   行吗   


  
加为好友 发送私信 在线聊天
发表于:2007-08-10 19:39:5215楼 得分:0
lptt,
你说了什么?全是臆测,不是吗?
那个说明是意法半导体的正式说明,你要否定那是需要拿出点真东西的,不是你大嘴一撇“里边见不得人啊”就否定了。
你拿“8051的opcode和指令对应关系”能证明龙芯抄了MIPS吗?
你没脑子啊?
你也说了“MIPS的ip   core没有公开”,那么你有龙芯的吗?
两者都没有,你又根本没有技术能力拿出两者的逆向工程结果对比,你就敢说谁抄了谁的???
还真是“让我长了见识”!
至于所谓“结果同样的工艺你只能达到几百MHZ   人家老外是几GHZ”纯粹是白痴言论,意法半导体和intel、AMD相比,有同样的工艺技术水平吗???
龙芯2E的典型频率是700MHz,0.18微米工艺就可以做到500MHz,0.13微米上到1GHz是很容易的,发布会上是有实际样品的。如果采用更先进的90nm、65nm工艺,主频还可以进一步提升。
而且你所谓的“几GHZ”到底是几GHz?1GHz和9GHz的差别可是太大了。除了intel高频低能的Pentium4突破了3GHz,就是现在的core架构,65nm工艺也只有2.xGHz。AMD目前也只能做到2.xGHz。
而且主频不仅仅与工艺相关,与设计也密切相关,同样的工艺,Pentium4能到3.6GHz,PentiumM就只能2GHz出头。你怎么能说主频低就证明抄袭?简直是笑话。
还有,龙芯面向的主要是嵌入式市场,不是台式机,很多情况下降低功耗比提高性能更重要,要那么高主频干什么?你查查MIPS   R10000的典型频率是多少?
懂了吗?

In-Stat公司关于龙芯的报告中明确说到了:
“After   analyzing   this   information,   MPR   believes   the   Chinese   already   are   capable   of   designing   world-class   microprocessors,   assuming   they   have   access   to   world-class   fabrication   technology.”
这是美国人说的,你以为人家的研究还不如你半通不通的几句臆测?

关于所谓龙芯“侵权”、“抄袭”的说法,基本都是从In-Stat公司关于龙芯的报告中关于兼容MIPS部分的说明:
“The   Godson   architecture   is   a   close   imitation   of   the   MIPS   architecture   and   is   about   95%   MIPS   compatible.   The   Godson-2   is   similar   to   the   MIPS   R10000,   introduced   in   1995.   These   similarities   could   raise   some   controversial   intellectual-property   issues”
捕风捉影幻想出来的。
人家说的意思只是这种高兼容度可能涉及到MIPS专利保护的部分,而没有说龙芯实际侵犯了MIPS的知识产权,更没有说龙芯的设计是照搬了MIPS   R10000。
否则还会有后面“PR   believes   the   Chinese   already   are   capable   of   designing   world-class   microprocessors”这种结论???

至于MIPS   R10000的技术指标,你不了解就找找资料,能和龙芯2E比吗???
抄能抄到这种程度,也只能说青出于蓝而胜于蓝了。
我并不怀疑龙芯在研发时对MIPS处理器进行过某些逆向工程(这不过是业界惯例,连intel、AMD都在搞,没什么丢人的),或者借鉴了某些开源设计。
但是在最终产品中绝对不是简单的照搬抄袭,这从公开的技术指标中就可以明确反映出来。
除非你能证明这就是指标是假的。
但是目前看来这是不可能的,因为意法半导体已经买了生产和销售权,开始生产了。如果技术指标达不到它的说明,那才是一大丑闻。
  
加为好友 发送私信 在线聊天
    lptt 专业代写-----课程设计 大作业 毕设
  • 等级:
发表于:2007-08-10 21:39:4516楼 得分:0


怎么讲你都不明白   我的方法我再简要概述一下:
总思路:指令集相同推出decode模块相同   从而证明所有模块相同(既所有VHD文件相同)最后推出他们ip   core相同
一:验证龙芯指令基就是MIPS的指令集
1.福珑(基于龙芯2E芯片)的机子上调试我的hello   world汇编代码(就是所谓的龙芯指令基)   
2.编译,连接,调试得到其二进制代码opcode(也就得到了龙芯指令(汇编代码)与龙芯opcode的对应关系)
3.将上一步得到的opcode与对MIPS手册上opcode对比
4.得出结论   龙芯指令(汇编代码)对应的opcode与MIPS的指令的opcode完全相同
    也就是说龙芯指令基就是MIPS的指令集(完全照抄)

二:以下是证明:从龙芯指令集就是MIPS的指令集,推出他们ip   core相同
5.两个指令集相同的CPU   推出他们ip   core中的decode模块必然相同,因为译码时指令和opcode是一一对应的关系
(具体见译码模块)
6.也就可以说明decode模块所在的vhd文件   必然相同   decode模块与其他各个模块密切相关,紧密偶合,此模块相同,其他模块必然相同。再说既然买了一个   肯定也就买了其他的ip   core的vhd文件
7.既然两个CPU的ip   core中的VHD全部文件相同,则推出龙芯的ip   core就是MIPS   的ip   core
8.证毕

任何cpu的基本模块都肯定是下边这种形式,我从指令集相同入手推出decode单元相同(既所在的vhd文件相同),再到央控制单元和ALU单元   都相同   证明所有VHD文件都相同,则推出龙芯的ip   core就是MIPS   的ip   core.   用一个实际的IP   CORE(51核)只是更好理解一点,在拿不到龙芯和MIPS的核的条件下,只能用这种方法

                                                    ROM <-------|                                         |-----> decode单元
                                                                            -----央控制单元-----
                                                    RAM <-------|                                         |-----> ALU单元
如果还不明白   见我上边的对每个VHD文件的注释

DelphiGuy()   你不要老拿些新闻搪塞   有时间去看datasheet,还有如果你有更好的办法   请用“技术”方式提出来,不要老骂谁谁没脑子,别人这样说你   你也不会好受   技术这方面你不一定比我强   我也不一定比你强   所以不要说些侮辱的话
还有你不要怀疑我受哪个利益集团的驱使来当枪手   我认定在龙芯上我比你更爱国   我自己掏腰包买来了福珑电脑
我们都希望龙芯好   但我希望龙芯完全是中国自己的(虽然有点偏激)
  
加为好友 发送私信 在线聊天
发表于:2007-0