这是一本专门为嵌入式读者打造的C语言进阶学习图书。本书的学习重点不再是C语言的基本语法,而是和嵌入式、C语言相关的一系列知识。作者以C语言为切入点,分别探讨了嵌入式开发所需要的诸多核心理论和技能,力图帮助读者从零搭建嵌入式开发所需要的完整知识体系和技能树。
《嵌入式C语言自我修养——从芯片、编译器到操作系统》从底层CPU的制造流程和工作原理开始讲起,到计算机体系结构,C程序的反汇编分析,程序的编译、运行和重定位,程序运行时的堆栈内存动态变化,GNU C编译器的扩展语法,指针的灵活使用,C语言的面向对象编程思想,C语言的模块化编程思想,C语言的多任务编程思想,进程、线程和协程的概念,从底层到上层,从芯片、硬件到软件、框架,几乎涵盖了嵌入式开发的所有知识点。
《嵌入式C语言自我修养——从芯片、编译器到操作系统》适合嵌入式学习者、开发者阅读学习,同样适合从事Linux下C语言开发工作的人员作为参考。阅读本书需要读者有一定的C语言基础,无论你是在校学生,还是需要充电学习的工程师,掌握了C语言的基本语法和编程技能后再阅读本书,学习效果会更佳。
在摩尔定律快要失效的大背景下,各大芯片厂商通过异构计算,集成不同的处理单元来提升处理器的整体性能。XPU们层出不穷,甚至有人预言:在后摩尔时代,每隔18周,集成电路领域就会多一个XPU,直到26个字母被用完。如果你不信,就先看看目前市面上已经出现的XPU家族吧。
● APU:Accelerated Processing Unit,加速处理器,AMD推出的加速图像处理芯片。
● BPU:Brain Processing Unit,地平线公司给自家AI芯片的命名。
● CPU:Central Processing Unit,中央处理器,目前PC上的主流处理器芯片。
● DPU:Deep learning Processing Unit,深鉴科技设计的深度学习处理器。
● EPU:Emotion Processing Unit,情绪处理单元,通过情绪合成引擎让机器人具有情绪。
● FPU:Floating Processing Unit,浮点计算单元,通用处理器中的浮点运算模块。
● GPU:Graphics Processing Unit,图形处理单元,为图像处理而生。
● HPU:Holographics Processing Unit,全息图像处理器,微软出品的全息计算芯片与设备。
● IPU:Intelligence Processing Unit,Graphcore公司设计的AI处理器。
● KPU:Knowledge Processing Unit,杭州嘉楠耘智推出的人工智能边缘计算芯片。
● MPU/MCU:Microprocessor/Micro controller Unit,微处理器/微控制器。
● NPU:Neural Network Processing Unit,神经网络处理器。
● OPU:Optional-Flow Processing Unit,光流处理器。
● TPU:Tensor Processing Unit,张量处理器,Google公司推出的人工智能专用处理器。
● VPU:Video Processing Unit,视频处理单元,主要用于视频硬解码。
● WPU:Wearable Processing Unit,可穿戴处理片上系统芯片。
● XPU:百度与Xilinx公司在2017年Hotchips大会上发布的FPGA智能云加速,含256核。
● ZPU:Zylin Processing Unit,由挪威Zylin公司推出的一款32位开源处理器。
后摩尔时代,伴随着AI和物联网技术的发展,百家争鸣,群雄并起,涌现出越来越多的芯片玩家。不同的玩家根据实际市场需求,将通用处理器与各种创新的处理单元(各种XPU)进行融合,来应对大数据时代不同类型的海量数据处理需求。不同的运算单元各有自己的编程模型、指令集甚至存储空间,在一个芯片内,如何让各个运算单元协同工作,如何高效互连以减少通信延迟和开销,如何发挥出芯片的最大性能,成为NoC最近几年的研究热点。也许未来有一天,随着传统计算机架构向异构计算方向不断迭代和演进,软硬件生态将发生颠覆性变革,是否有统一的编程框架和标准出来,让我们拭目以待吧。
未来很遥远,现实很骨感。我们还是回到当前,继续学习与计算机体系结构相关的知识吧。