龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 3637|回复: 7

以靳国杰为代表的二进制团队,还是走全美达的硬件翻译之路,不过升级为并行多核模拟

  [复制链接]
发表于 2013-1-26 22:02:46 | 显示全部楼层 |阅读模式
本帖最后由 hswz 于 2013-1-26 22:26 编辑

http://epub.cnki.net/grid2008/br ... ab=normal&navicode=
代码块转换方法和装置         
【申请号】         CN201210143321.8         【申请日】         2012-05-09
【公开号】         CN102693146A         【公开日】         2012-09-26
【申请人】         龙芯中科技术有限公司         【地址】         100190 北京市海淀区中关村科学院南路10号
【发明人】         张晓春;靳国杰;高翔
【专利代理机构】         北京康信知识产权代理有限责任公司 11240         【代理人】         吴贵明;江舟
【国省代码】         11
【摘要】         本发明提供了一种代码块转换方法和装置,其中,该方法包括:判断与正在执行的当前代码块相关的后继代码块是否已转换;若未转换,则在执行当前代码块的同时并行地对未转换的后继代码块进行转换。本发明通过并行地处理执行和转换工作解决了相关技术中的二进制翻译过程在程序启动时需要实时转换大量代码,使得代码转换的时间所占比重高、程序启动较慢的问题,达到了减少转换代码在程序启动过程中的时间的效果。
【主权项】         一种代码块转换方法,其特征在于,包括:判断与正在执行的当前代码块相关的后继代码块是否已转换;若所述后继代码块未被转换,则在执行所述当前代码块的同时并行地对未转换的后继代码块进行转换。
【页数】         14
【主分类号】         G06F9/45
【专利分类号】         G06F9/45



间接分支指令处理方法和装置         
【申请号】         CN201210069463.4         【申请日】         2012-03-15
【公开号】         CN102662631A         【公开日】         2012-09-12
【申请人】         龙芯中科技术有限公司         【地址】         100190 北京市海淀区中关村科学院南路10号
【发明人】         廖银;靳国杰;高翔
【专利代理机构】         北京康信知识产权代理有限责任公司 11240         【代理人】         吴贵明;江舟
【国省代码】         11
【摘要】         本发明公开了一种间接分支指令处理方法和装置,其中,该方法包括:加载与当前执行的间接分支指令所在的当前基本块对应的缓存数组,其中,缓存数组中的记录项用于记录当前基本块中已执行过的间接分支指令的目标地址;判断当前执行的间接分支指令的目标地址是否与缓存数组中对应的记录项中记录的目标地址相同;若当前执行的间接分支指令的目标地址与缓存数组中对应的记录项中记录的目标地址相同,则跳转到当前执行的间接分支指令的目标地址,并从当前执行的间接分支指令的目标地址开始执行代码。本发明解决了二进制翻译的过程中上下文切换的次数过多导致翻译效率低的问题,达到了提高二进制翻译系统的效率的效果。
【主权项】         一种间接分支指令处理方法,其特征在于,包括:加载与当前执行的间接分支指令所在的当前基本块对应的缓存数组,其中,所述缓存数组中的记录项用于记录所述当前基本块中已执行过的间接分支指令的目标地址;判断所述当前执行的间接分支指令的目标地址是否与所述缓存数组中对应的记录项中记录的目标地址相同;若所述当前执行的间接分支指令的目标地址与所述缓存数组中对应的记录项中记录的目标地址相同,则跳转到所述当前执行的间接分支指令的目标地址,并从所述当前执行的间接分支指令的目标地址开始执行代码。
【页数】         17
【主分类号】         G06F9/34
【专利分类号】         G06F9/34;G06F9/45




虚拟机的模拟方法和计算机设备         
【申请号】         CN201210097039.0         【申请日】         2012-04-01
【公开号】         CN102662726A         【公开日】         2012-09-12
【申请人】         龙芯中科技术有限公司         【地址】         100190 北京市海淀区中关村科学院南路10号
【发明人】         靳国杰;高翔;胡伟武
【专利代理机构】         北京亿腾知识产权代理事务所 11309         【代理人】         陈霁
【国省代码】         11
【摘要】         本发明涉及一种虚拟机中旁路转换缓冲的模拟方法和装置。其中,虚拟机将目标CPU中的TLB表项填写到本地CPU的TLB中,当目标CPU要执行一个访存指令时,虚拟机将该访存指令翻译为本地CPU可执行的访存指令;虚拟机执行翻译后的访存指令时,本地CPU的TLB将访存指令携带的虚拟地址转换为物理地址,供翻译后的访存指令访问,由此完成目标CPU要执行的访存指令的访存操作。本发明使用硬件和软件结合的方法实现了异构虚拟机中TLB的模拟,提高了TLB的模拟效率
【主权项】         一种虚拟机的模拟方法,其特征在于,所述方法包括:虚拟机取出目标CPU要执行的第一访存指令;虚拟机获取所述第一访存指令对应的第二访存指令,所述第二访存指令为虚拟机翻译所述第一访存指令而得到的本地CPU可执行的指令;虚拟机执行所述第二访存指令时,本地CPU的旁路转换缓冲TLB将所述第二访存指令携带的虚拟地址与TLB中的表项进行匹配检查,判断是否存在所述虚拟地址对应的表项;本地CPU的TLB中存在所述虚拟地址对应的表项时,本地CPU的TLB将所述虚拟地址转换为物理地址,用以使本地CPU将所述物理地址作为所述第二访存指令的实际访问地址,正常执行所述第二访存指令。
【页数】         14
【主分类号】         G06F9/455
【专利分类号】         G06F9/455;G06F12/10




并行多核虚拟机的原子指令模拟方法及虚拟机装置         
【申请号】         CN201210127348.8         【申请日】         2012-04-26
【公开号】         CN102662730A         【公开日】         2012-09-12
【申请人】         龙芯中科技术有限公司         【地址】         100190 北京市海淀区中关村科学院南路10号
【发明人】         靳国杰;高翔
【专利代理机构】         北京亿腾知识产权代理事务所 11309         【代理人】         陈霁
【国省代码】         11
【摘要】         本发明公开了一种并行多核虚拟机的原子指令模拟方法及虚拟机装置。虚拟机根据目标CPU的内核个数,创建与CPU内核个数相等的多个CPU线程,方法步骤包括:所述多个CPU线程中的第一CPU线程向其他CPU线程发送请求等待信号;接收到所述请求等待信号的其它CPU线程在原执行地址暂停,并返回确认信号;第一CPU线程接收到所有其他CPU线程的确认信号后执行原子访存指令;向处于原执行地址暂停的CPU线程发送撤消等待信号;接收到所述撤消等待信号的CPU线程由原执行地址继续执行。本发明具有较高的通用性和执行效率。
【主权项】         一种并行多核虚拟机的原子指令模拟方法,所述虚拟机根据目标CPU的内核个数,创建与所述CPU内核个数相等的多个CPU线程,其特征在于,所述方法包括以下步骤:所述多个CPU线程中的第一CPU线程向其他CPU线程发送请求等待信号;接收到所述请求等待信号的其它CPU线程在原执行地址暂停,并返回确认信号;所述第一CPU线程接收到所有其他CPU线程的确认信号后执行原子访存指令;向处于原执行地址暂停的CPU线程发送撤消等待信号;接收到所述撤消等待信号的CPU线程由原执行地址继续执行。
【页数】         10
【主分类号】         G06F9/455
【专利分类号】         G06F9/455;G06F9/38



虚拟机中的内存访问方法和装置及查找器         
【申请号】         CN201210096592.2         【申请日】         2012-04-01
【公开号】         CN102662869A         【公开日】         2012-09-12
【申请人】         龙芯中科技术有限公司         【地址】         100190 北京市海淀区中关村科学院南路10号
【发明人】         姜海涛;靳国杰;高翔;胡伟武
【专利代理机构】         北京康信知识产权代理有限责任公司 11240         【代理人】         吴贵明;江舟
【国省代码】         11
【摘要】         本发明提供了一种虚拟机中的内存访问方法和装置及查找器,其中,该方法包括:根据来自虚拟机的访问指令中的虚拟地址在第一查找器中查找与虚拟地址对应的物理地址,其中,第一查找器为由CAM和物理地址查找逻辑组成的软硬件协同物理地址查找器;若在第一查找器中查找到与虚拟地址对应的物理地址,则访问查找到的物理地址指示的物理内存。本发明解决了相关技术中的虚拟机技术使用纯软件TLB进行内存访问会带来额外性能开销的问题,达到减小了虚拟机工作过程中的开销的技术效果。
【主权项】         一种虚拟机中的内存访问方法,其特征在于,包括:根据来自虚拟机的访问指令中的虚拟地址在第一查找器中查找与所述虚拟地址对应的物理地址,其中,所述第一查找器为由CAM和物理地址查找逻辑组成的软硬件协同物理地址查找器;若在所述第一查找器中查找到与所述虚拟地址对应的物理地址,则访问查找到的所述物理地址指示的物理内存。
【页数】         14
【主分类号】         G06F12/10
【专利分类号】         G06F12/10;G06F9/455




《第四届中国科学院博士后学术年会暨工业经济与可持续发展学术会议论文集》2012年
加入收藏 获取最新
二进制翻译器中间接分支目标地址查找方法
廖银  孙广中  姜海涛  靳国杰  陈国良  
【摘要】:分支跳转指令在二进制翻译器中需要较高的模拟代码,是影响动态二进制翻译系统性能的重要因素。利用其局部性,提出一个带私有缓存的间接分支目标的快速查找算法。为每一个间接分支增加一个私有缓存,缓存该分支的目标地址提供给下一次预测查找。分支目标良好的局部性带来了高的预测成功率,基本达到了与直接分支类似的基本块间链接效果,从而减少了上下文切换的次数,并且使得X86体系结构下SPECCPU2000INT测试集程序在龙芯平台上翻译执行时间平均减少了10%-20%。
【作者单位】:中国科学技术大学计算机科学与技术学院 中国科学院计算技术研究所
【关键词】:动态二进制翻译 间接分支 局部性 私有缓存
【基金】:国家自然科学基金(61033009) 工信部“核心电子器件、高端通用芯片及基础软件产品”科技重大专项(编号:2009ZX01028-002-003)
 楼主| 发表于 2013-1-26 22:22:32 | 显示全部楼层
 楼主| 发表于 2013-1-26 22:39:53 | 显示全部楼层
本帖最后由 hswz 于 2013-1-26 22:56 编辑

用哈希硬件查表法,TLB法,cam法 搞二进制翻译是速度最快,代价最小的,不过是水磨功夫,太考验人的耐心了,看来二进制翻译进入攻坚的最后阶段了
 楼主| 发表于 2013-1-26 22:58:45 | 显示全部楼层
http://bbs.lemote.com/viewthread.php?tid=22568&extra=&page=2
还是走的大家预测的道路
参考以前的评论
看来GS3是个雄心勃勃的计划,Network on Chip Based Heterogeneous Reconfigurable Architecture,NB大了!!

好像我看到X86的支持是BT的?那倒是不会涉及专利问题。不过看样子Mesh的确是用HT搭的。赫赫不错,NB。以后有机会学习学习

====================================================================
过去intel如此
从龙芯又一次很遗憾的让人看到
一个芯片稳定后微结构就不会有什么改变
只有在系统结构上做文章了
sigh...

其实我倒觉得继续优化微结构
把主频拼上1.5G
还是有可能的...
====================================================================
transmeta是怎么解决专利问题的?
=====================================================================transmeta是软件翻译所以应该没有问题
=====================================================================计算所不是专门有个BT组么,是那边的成果么? 那边的BT应该是是基于SW的……

对于ISA的专利我还是没搞明白,那假如说,我的Decoder用的是CAM那种结构呢?就好像TLB那样,不过开机启动的时候还是跑Mips,然后Bios把所有的X86所需要的Decode信息都输入到这个CAM中,每次Decoder的时候做一个查找。如果Entey比较多的Cam会慢,那就弄一个Level N Cache的那种层次化结构,等等……。这就不会侵犯专利了吧?

就算还是专利,那也可以使用比较流氓的招数。说,“我们本身不提供X86的硬件解码,我们出厂的时候CAM是空的,但是客户非要把我们做研究用的X86 Decode Table写道这个CAM里面去,我们也没办法。”呵呵。有点类似专用的FPGA,没配置前啥也不是,配置以后立马变身为X86 GS 。哈哈

=====================================================================我觉得这涉及到了一个核心竞争力的问题,在资源有限的情况下,如何选择市场定位和研发路线。

从企业构架的角度上来说,我觉得IC这边不是计算所的强项,而且很吃钱,不如在Arch上的研究能体现更多的优势。而且如果要是跟大牌公司拼IC的话,我认为计算所有点自不量力。

从市场定位来说,Server会更加具有TLP,从而弱化了对ILP的要求,在Arch几乎相同的情况下,ILP主要是拼IC方面的技术积累,而TLP更多的会体现出Arch的重要。这也是计算所的优势。而且考虑到各个厂商在Manycore上的Roadmap,在加上之前说的有限的资源,我感觉GS3的选择方向我感觉还是对的。但是,如果龙芯那边有个几万人马,我觉得那肯定还是要展开全面攻势的。
发表于 2013-1-27 19:33:36 | 显示全部楼层
翻译不一定非要建立在CPU上。。。CPU也不一定是电脑中一切的主导。。。
发表于 2013-1-29 15:08:39 | 显示全部楼层
接收到所述撤消等待信号的CPU线程由原执行地址继续执行。
发表于 2013-2-6 10:11:04 | 显示全部楼层
老文了,去年他们还信心满满,可后来就遇到瓶颈、效率已经无法继续提升,再加上龙芯本来性能也不高。目前转向弄Java支持了。BT这条路也很难走的。
或许,应该考虑BT arm架构。

本版积分规则

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

GMT+8, 2019-7-18 01:36 , Processed in 0.187454 second(s), 21 queries .

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