返回

第52章 ARM指令集

首页
关灯
护眼
字:
上一页 回目录 下一章 进书架
在于设计者考虑问题方式的不同,具体实现的方式也就不同。

    比如说我们要命令一个人吃饭,那么我们应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺子,然后舀起一勺饭,然后张嘴,然后送到嘴里,最后咽下去”。

    从这里可以看到,对于命令别人做事这样一件事情,不同的人有不同的理解,有人认为,如果我首先给接受命令的人以足够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单的命令让他去做很复杂的事情――比如只要说一句“吃饭”,他就会吃饭。

    但是也有人认为这样会让事情变的太复杂,毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜怎么办?难道继续训练他吃菜的方法?我们为什么不可以把事情分为许多非常基本的步骤,这样只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作,无非是下达命令的人稍微累一点――比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”,问题就解决了,多么简单。

    这就是X86和ARM的逻辑区别。

    这个区别导致了X86和ARM分道扬镳――前者更加专注于高性能但同时高功耗的实现,而后者则专注于小尺寸低功耗领域。实际上也有很多事情X86更加合适,而另外一些事情则是RISC更加合适,比如在执行高密度的运算任务的时候X86就更具备优势,而在执行简单重复劳动的时候ARM就能占到上风。

    比如假设我们是在举办吃饭大赛,那么X86只需要不停的喊“吃饭吃饭吃饭”就行了,而ARM则要一遍一遍重复吃饭流程,负责喊话的人如果嘴巴不够快(即内存带宽不够大),那么ARM就很难吃的过X86。但是如果我们只是要两个人把饭舀出来,那么X86就麻烦得多,因为X86里没有这么简单的舀饭动作,而RISC就只需要不停喊“舀饭舀饭舀饭”就OK。
上一页 回目录 下一章 存书签