SMX

认识多种处理芯片的特性和实战(上篇)

ε祈祈猫儿з 提交于 2020-01-09 14:14:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者 | 高剑林 高剑林,腾讯架构平台部,平台开发中心基础研发组组长。先后从事过通讯设备的开发和存储设备的研发工作。目前致力于一体化的涉及—从硬件和软件的结合,以及OS多个层面综合考虑系统设计,找出最优路径的设计思想。 以x86体系为代表的CPU已经占有了桌面和服务器处理器的绝大部分份额,而且这个趋势还在不断增强。CPU具有兼容性强、易编程、应用资源丰富、价格低廉的优势,但是在某些领域,CPU存在天然的缺陷,以 FPGA 、 GPU 为代表的硬件可以克服CPU的缺陷,因此也拥有自己的市场。 1.1 图解各类型芯片 从设计软件进行计算任务的软件工程人员的角度,可以将芯片分为CPU、 GPU 、 FPGA 和ASIC等类型。 对处理器芯片的特性和应用,理论上是软件人员具有最大发言权。但每一类芯片的使用和理解都不是一件简单的事情,以CPU为例:即使从事CPU环境的编程设计多年,也很难谈得上深入理解了CPU的设计思想。能深入各种芯片编程的软件人员更是凤毛麟角,更别谈进行分析和比较。另外一个问题是软件和硬件设计已分离多年,软件设计人员,很难深入理解芯片的设计思路,即使操作系统的设计人员也一样。而芯片的设计厂商由于利益相关,往往只宣扬各自的优点,回避缺陷,在测试对比中选择有利的测试条件,产生对己有利的测试数据