" 发射" 作为计算机术语的时候,对应的是英文的 "issue"
龙芯2是"4发射"的意思就是龙芯2内部可以在一个时钟周期内"发射"出四个"内部指令"到执行机构. 这里的"内部指令"是指一些很基本的事情,比如"让寄存器A加上寄存器B,把结果放在寄存器C里"或者"从内存XXXX:XXXX读取4个字节放入寄存器 D"之类的.  (Intel管这种"内部指令"叫做"微指令(Micro-Instruction)",而Intel的奔腾和扣肉实际执行的是x86指 令,所以,奔腾和扣肉实际上是先把x86指令翻译成微指令然后才执行的,通常由于x86是复杂指令集,有可能一条x86指令会翻译出几条甚至是一串微指令 (据说最BT的一条x86指令能翻译出上千条微指令.....果然是复杂指令集啊....), 所以,虽然扣肉是4发射(如果我没记错的话), 但是并不代表扣肉一个时钟周期能执行4条x86指令) 龙芯2使用类似MIPS的精简指令的,所以基本省去翻译的过程, 基本可以认为一条龙芯2指令就等同于一条内部指令. (也未必全是这种情况,听说龙芯2加入了多媒体指令,不知是如何处理的)

那么"发射"了半天,到底发射给谁了? 
"发射"给执行机构了 (Execution unit), 所谓的执行机构就是一些能做加减乘除的(学名:算术逻辑单元,Arithmetic Logic Unit (ALU)),外带读内存(Load),写内存(Store)的电路而已. 既然是4发射的cpu, 那么执行机构必须够用才行, 不知龙芯2是如何设计的, 不过 相信ALU至少有4套, Load 应该有两套, Store有一套 (猜的......请龙芯的大侠指教....) . 也就是说, 在任何时刻,如果不管龙芯是几发射, 龙芯2应该能同时(未必是在一个时钟周期内完成)进行: 4个算术运算, 从内存读2个数, 向内存写1个数 (如果我上面的猜测是正确的话). 那么你要问了:如果一次"发射"4个向内存写数的内部指令如何处理? 答:一个一个慢慢来吧....这种情况本来就是极其少见的....多路Store的电路很复杂的,没必要为百万分之一的可能性费太大的劲....

然后说这个"乱序执行"(英文: out of order execution)的东东:
我们知道:程序里面有很多判断指令 (比如,如果寄存器A+寄存器B的结果是1, 那么就干这个, 否则就干那个) , 我们还要注意一点就是龙芯2有"管线"(也叫流水线)(Pipeline)的CPU,所谓"管线"就是把一条指令切成n份,一个时钟周期做一份 (如果是9级的管线/流水线,那么n=9, 就是把一条指令切成9个步骤.....),也就是说一条指令的完成实际需要n个时钟周期.

于是问题来了, 如果是下列的指令顺序, CPU该怎么办?
1:如果A=0, 就转去执行4
2:把B+1的结果放入C
3:转去执行5
4:把B+200的结果放入C
5:把C存入内存

当CPU执行1的时候,还不能知道A到底是不是0, 因为那是n个时钟周期后才能知道的事情(也就是说n个时钟周期后CPU才能完成A=0这个判断)...那么这n个时钟周期就这么闲着吗?当然不是, CPU会假设一个结果,然后继续执行下去, 当然这是冒风险的,如果猜错了, 那么就白干了, 而且还要把流水线清空(猜错了, 干错了, 当然要从头来了....)猜的这个过程就叫分支预测....(听着很耳熟吧...), 分支预测的越准,那么就效率越高.

因为这个执行过程并不是完全按照正常的程序应该走的顺序(正常顺序是等结果出来再看应该走哪一步)所以叫乱序执行.
还有一种可能就是如:
1:把A+B的结果放入C
2:把C+D的结果放入E
3:把F+J的结果放入H

CPU执行到2的时候, 会发先C的值还不确定,因为1正在执行,还需要n-1个时钟周期才能出结果.... CPU当然不能发呆,于是就先去执行3了, 等1的结果出来才执行2, 所以这3条指令的实际执行顺序是 1 3 2, 而不是正常的 1 2 3 (乱序了吧^_^)

乱序执行还有另一种情况:
我们知道,内存比CPU要慢差不多2个数量级.....(就是说,如果CPU的速度是100的话,内存的速度差不多是1,CPU如果要真要从内存读一个数 的话,CPU要等上n百个时钟周期....这就是我们为什么要给CPU加缓存的原因,L1缓存的速度基本上只比CPU慢一点...CPU一般只要等十个时 钟周期左右,数据就能从L1缓存送来,L2缓存要比L1慢一些,但是比L1大一些),这就造成 Load和Store的动作异常缓慢, 运气不好的,真的要从内存读数据的时候就要等上n百的时钟周期......如果这时其他的执行机构也在等的话,那是多么的浪费啊....所以,解决办法: 让那个Load或Store去干他的, CPU接着向下执行那些不依赖那个Load和Store的指令, 比如:
1: Load 内存0031:00312 到 A
2: 把 A+B 放入 C
3: 把 D+E 放入 F
CPU执行到1的时候就会让Load单元去慢慢干,然后先去执行 3 了, 等Load完了才去执行2

关于龙芯CPU几发射的问题相关推荐

  1. 基于国产龙芯 CPU 的气井工业网关研究与设计(一)

            当前,我国气田的自动化控制程度还未完全普及,并且与世界已普及的气井站的自 动化程度也存在一定的差距.而在天然气资源相对丰富的国家,开采过程中设备研发资 金投入较大,研发周期较长,更新了 ...

  2. 中国自主可控的全数字实时仿真软件SkyEye支持龙芯CPU指令级仿真

    传统的系统开发过程,都是由工程师根据项目需求书来编写代码完成系统的开发,但随着功能的完善和版本迭代,系统中庞大的代码量很难确保正确无误,给后期测试和仿真带来了很大的压力和成本,在航空航天.卫星系统.核 ...

  3. linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU)

    linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU) 一.查看yum源中pgsql版本 二.安装readline-devel 三.下载pgsql库的源码 四.解压下载的源码.co ...

  4. SuperMap iDesktopX安装 ---(保密机:龙芯CPU+银河麒麟系统)

    文章目录 SuperMap iDesktopX软件获取 SuperMap iDesktopX安装 运行 SuperMap iDesktopX软件获取 直接找超图软件技术支持中心(电话:400-8900 ...

  5. 北桥(龙芯的北桥主要是amd的 没有内存控制器 内存控制器在龙芯cpu中)

    简介 随着"龙芯"等拥有完全自主产权CPU的诞生,我国结束了无"芯"的历史.但这还不够,因为要构成一个完整的拥有自主产权的计算机系统,还必须有操作系统,芯片组和 ...

  6. 中标麒麟linux系统忘记root密码,中标麒麟(龙芯CPU)--忘记root密码怎么修改?

    中标麒麟桌面版和服务器版均采用GRUB2为启动器,无法通过单用户模式重置root密码.下面将介绍如何重置中标麒麟系统的root密码: 桌面版 1.修改grub2引导 在正常系统入口上按下"e ...

  7. 中标麒麟matlab,中标麒麟(龙芯CPU)--忘记root密码怎么修改?

    中标麒麟桌面版和服务器版均采用GRUB2为启动器,无法通过单用户模式重置root密码.下面将介绍如何重置中标麒麟系统的root密码: 桌面版 1.修改grub2引导 在正常系统入口上按下"e ...

  8. 基于国产龙芯 CPU 的气井工业网关研究与设计(二)

    3.1 系统硬件的总体设计 从硬件架构上,该 RTU 主要包括三大部分的设计: (1)外围电路设计:电源电路设计.RTC 电路设计和 EEPROM 电路设计. (2)RTU 本体 I/O 端口设计:A ...

  9. 基于龙芯CPU麒麟操作系统的国产半实物仿真系统ETestDEV

最新文章

  1. mongoDB简明教程-python
  2. 机器学习如何改变大数据管理
  3. python随机抽取人名_python的random
  4. 业界资讯:adobe 技术开发中心 放出游戏单元
  5. 一个 Accept-Encoding 引发的 requests 爬虫乱码问题
  6. 松下plc安装序列号afpsgr7_安装松下PLC软件步骤.pdf
  7. Linux傲腾DC128G内存设置,Intel傲腾DC可持续内存开放:单条512GB内存时代来临
  8. python复制上一条语句快捷键_pycharm快捷键及一些常用设置
  9. Ubuntu自己动手本地模拟搭建git服务器
  10. 最先进的智能采茶机器人_采茶机器人、挑茶机器人、智能立体仓储系统等这些在常人眼中颇具科幻气息的设备-新闻头条5dainban...
  11. 远程主机和本地文件互传的2种方法
  12. 论文阅读:A Unified Span-Based Approach for Opinion Mining with Syntactic Constituents
  13. 信息与计算机科学丛书,信息与计算科学丛书: 典藏版
  14. (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest
  15. C# Excel导出超出65536行报错
  16. 大数据中数据挖掘技术的挑战
  17. 数据库课程设计——学生信息管理系统
  18. c++ 多线程 “锁”
  19. 二维数组实现n阶方阵
  20. 我认识的几个哈工大本科生毕业后出路

热门文章

  1. android nfc扇区加密,android NFC MifareClassic 读IC卡加密扇区方法
  2. [Go] String型常用操作
  3. 优秀课件笔记之视听巧记汉英成语2
  4. Qt小游戏教程之贪吃蛇(带源码)
  5. 半导体初创企业中的RISC-V
  6. python_cv2_图片黑白操作
  7. 建筑计算机综合应用能力实训,计算机综合应用能力实训.doc
  8. Python 架设网站
  9. 游戏策划入门(5)——开始绘制系统的结构流程图
  10. 以终为始,向死而生——5月份英语总结