RISC vs CISC

一、Bit 和 Byte

Bit (比特)

Bit(位)常用小写字母"b"表示,指一位二进制位。是信息技术中的最小存储单位,一位代表一个“1”或者“0”
bps是通常用来衡量带宽的单位,指每秒钟传输的二进制位数。数据传输速率反映了终端设备之间的信息处理能力,它是一段时间的平均值。
bit.png
单位换算关系:(有时为了计算简单记作1Kbps=1000bps,1Mbps=1000000bps)

1Kbps=1024bps
1Mbps=1024Kbps=1024*1024bps

Byte(字节)

Byte(字节)常用大写字母"B"表示。用于表示计算机中的一个字符一个英文字符占一个字节,汉字在不同编码下占位不同(2-4个字节)。一个字节(Byte)由8个位(bit)组成,也就是1Byte=8bits
byte.png
单位换算关系:

1GB=1024MB;
1MB=1024KB=1024*1024B;

区别

1. bit与byte的区别

  • 一字节等于8位,即1B=8b。 在书写单位时一定要注意B字母的大小写和含义。MByte含义是“兆字节”,Mbit的含义是“兆比特”。
  • 与传输速度有关的b一般指的是bit。一般数据及网络通讯的传输速率都是以「bps」为单位。
  • 与容量有关的B一般指的是byte。比如网盘、U盘的存储空间有8G,就是指8GB。

2. bps、kbps、Mbps与B/s、KB/s、MB/s的区别

  • bps属于位每秒的单位,而MB/s ,KB/S这两个属于字节每秒的单位。
  • 通常国际标准使用bps表示各种设备的传输速率,b是位,ps是每秒,bps就是每秒多少位。 在实际所说的1M带宽的意思是1Mbps,是兆比特每秒(Mbps),不是兆字节每秒(MBps)。
  • 平时上网下载软件一般使用KB/秒或者B/s等,因为文件大小的单位是字节(B)。 假设下个100M的视频,花了5秒,下载速度就是20M/s。
  • 单位换算: 1Mbps=1024K/8B/s=128KB/s=0.125MB/s

只要记住M和K之间相差1024倍,B和b相差8倍就很容易换算。

实际应用

由换算关系可知,理论上2M(即2Mbps)宽带的理论速率是256KB/s(即2048Kb/s)。

受用户计算机性能、网络设备质量、资源使用情况、网络高峰期、网站服务能力、线路衰耗,信号衰减等多因素的影响,造成实际速率最多只能达到80%,大约为103–200KB/s。因此4M(即4Mbps)的宽带理论速率是:512KB/s,实际速率大约为200—440KB/s。

简而言之,下载速率的8倍是达不到理论带宽的,可能就70%左右。当本地下载速率显示为1KB/s时,线路实际传输速率约10Kbps。例如:下载显示是50KByte/s时,按照损耗20%(可能30%左右)计算,实际已经达到了500Kbps的速度。

二、RISC CISC

2.1 两种架构指令长度

  • RISC:
    Fixed-length instruction
    ARM:4-byte(32-bit)long

  • CISC:
    Variable-length instruction
    x86:1-15 bytes long

2.2 执行过程

执行过程:取指令fetch——指令译码decoder——指令执行exe——写会write

当CPU在执行软件的时候,它先会从存储器中取二进制的指令,这个二进制的指令再通过CPU的decoder解码器,把指令变为动作,告诉CPU要打开、关闭哪些电路,然后CPU再把要处理的资料放到对的地方去运算。

  • 在RISC架构下,每个指令的长度都相同。所以CPU看到一连串的指令,它知道每隔一个固定的距离就是不一样的指令,解码decoder的时候非常的轻松。
  • 在CISC架构下,每个指令的长度是可以不一样的,所以CPU要去区分哪一段才是新的指令。这增加了解码的困难度,CPU也要花更多的能源来解码,在能源还有散热能力有限的情况下,如果CPU大部分的能耗都花在解码上面,那它的性能的确会受到限制,因为CPU上其他部分就会没有足够的资源可以执行运算。

但事实上,x86指令集处理器来自解码decoder阶段的能耗其实并不大!

数据来源于“How Zen 2’s Op Cache Affects Performance, Chips and Cheese”
How Zen 2’s Op Cache Affects Performance
在这里插入图片描述

根据chips and cheese在Zen 2上的测试结果,来自解码器decoder的能耗大概占了整个CPU能耗的6%,也就是CPU上多数的能耗都是用在运算单位Cache上面,所以decoder的能耗对于整体性能影响有限。当然,6%也不是可以完全忽略的,就像AMD资料中心负责人Forrest Norrod就曾说过,“在I/O上面多用1瓦电,CPU核心就少1瓦电”。每花费1瓦电在decoder上面,CPU核心就少1瓦电用来执行运算,工程师们与其改进解码器,不如跳过解码步骤。

也就是说CPU上多数据的能耗都是来用在运算单位和cache上面。
x86指令集会首先将复杂指令进行拆解,叫做mico-operation或microcode,比如做矩阵乘法,这个指令其实可以被拆成加法和乘法两个部分,这个microcode可以被存起来,放在cache里面,这样,下一次CPU遇到一样的指令就可以直接跳过解码的步骤,省下解码指令的时间和能源,这个功能其实也不是CISC处理器才有,ARM从Cortex A77开始也加入了这个设计,由此可见,即使是ARM处理器,它decoder的能耗也不能忽略。

x86历史包袱:
诞生1978年,x86已经43岁了,累计超过1500个不同的指令,其中有不少已经过时,基于兼容性考虑,开发者没办法把他们移除,形成一种累赘。这些指令和它的micro operation都要被存在CPU上的ROM里面,占用掉芯片上实体的空间。在过去ROM的结构很大,大到会影响晶片的设计,但随着制程进步,ROM的体积变得很小,不会影响x86晶片的设计,足够放下这些指令。

Jim Keller:参与AMD Zen、Apple A、Tesla自驾车芯片、Intel接下来要推出的产品。他在访谈中提到,真正影星CPU性能的是:

  • Data locality

  • Branch predication
    ——>

  • CPU Cache

  • Branch predictor
    这两部分硬体架构的设计

和指令集没有什么关系

所以,你是RISC还是CISC对于你的性能针对没有影响

但是,为什么会存在x86比较耗电,ARM处理器比较盛典的既定印象呢?

现在的手机、平板这种低功耗的设备都是用ARM的处理器,Intel以前也尝试做手机晶片,但也因为能耗的问题而失败,但也是由于硬体设计问题,近30年来,主流电脑市场都是适用x86的处理器,这些处理器的TDP都介于15W-280W之间,工程师在设计芯片的时候都是抱着"这些晶片都能够有主动散热系统"的这个前提下去设计它的CPU,而ARM正好相反,它早期都是被拿来做控制元件这种不需要主动散热、简单的晶片,他必须要能够把能耗压在个位数,所以要很好的效能。Intel和AMD从PC到服务器都用的同一种架构,它是以高性能为出发点来设计,ARM则是以低功耗、被动散热的环境为出发点来设计。Apple M1的成功是因为他优秀的硬体架构还有软体最佳化,跟他是ARM这件事没有关联,根据Chips and Cheese的另一个测试,ARM 针对服务器设计的Neoverse N1的功耗确实比较低,但性能也大幅落后AMD Zen2

现在,我们看到Intel开始放更多经理在开发低功耗的Atom Core,AMD未来也要推出盛典的小核心,同时也看到ARM推出针对服务器开发的Neoverse V1和N2架构,两个阵营都开始针对不同的需求,不同的环境开发最适合的架构,弥补各自的不足,在未来我们有机会看到低功耗的x86处理器,高性能的ARM处理器,说到这里,既然指令集跟性能无关,那为什么我们还要有这么多不同的指令集呢?一定有什么东西和指令集有关,所以我们才需要这么多选择,跟指令集有关有两件事:

  1. 晶片设计:ARM和RISC-V是RISC架构,解码器相对简单,RISC-V才过了11年的时间,x86束手束脚,但都已经解决
  2. 商业考量:更重要的考量是商业利益,Sifive的James Prior上了Linus Tech Tip的节目,当他被Linus问道为什么要有这么多不同的指令集,它是这样回答的:x86、ARM、RISC-V之间的好坏,从来就不是科技上的问题,而实和商业模式、专利授权,还有如何跟客户合作有关,针对不同需求,找出成本最低、效能最好的产品,从来和你是RISC和CISC没有关系,这里的成本不光是晶片本身的价格,对于业者来说,那通常是最不重要的环节,就服务器产业为例,软件支援、营运成本、安全性、还有后勤支援都远比晶片的售价来的重要,这些因素全部都能换算成钱和时间,你知道为什么AMD EPEC明明在性能、能耗都吊打Intel Xeon,又能够用更低的价格买到更多CPU核心,云端业者却没有全部都换成AMD,这是因为很多软件根本不支持AMD的平台,云端业者也还是对AMD的产品保持着怀疑,虽然Intel的产品在过去又需多安全性问题,但这些厂商也很清楚这些问题和解决办法,他们害怕AMD的产品哪天发生什么重大的问题,到时候AMD的后勤支持远远比不上Intel,他们服务器的运作会受到影响。

指令集已经被武器化,这些公司用指令集把客户绑在他的生态系里面,还记得Itanium(2001-2021)么?一个由Intel和HP共同开发的指令集,还有像IBM,它之所以到现在每年还都会推出新的CPU,也是因为它的客户被绑定在它的生态里,它的产品不需要在各方面都非常由竞争力,只要能迎合客户的需求,它就很难失去这些订单,RISC和CISC之间性能的好坏,纯粹是一种行销的话数,再经过媒体的转述,演变成一种约定俗称的迷思

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值