嵌入式C语言自我修养:从芯片、编译器到操作系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 计算机体系结构与CPU工作原理

嵌入式开发很大一部分工作跟底层紧密相关,如系统移植、BSP开发、驱动开发等,和芯片、硬件打交道的地方比较多。笔者认为,要想成为一名真正的嵌入式工程师,除了要精通C语言编程,还要对计算机原理和系统结构、CPU工作原理、ARM汇编语言、硬件电路等基础知识和理论有一定的掌握。掌握了CPU的工作原理,可以更好地理解指令到底是如何执行的;掌握计算机的工作原理和系统结构,可以更好地理解程序的编译、链接、安装和运行机制;掌握一门汇编语言,可以从底层的角度去看C语言,可以帮助我们更好地理解C语言。我们编写的C程序,最终都会转换成CPU所支持的二进制指令,而汇编语言又是这些指令集的助记符,通过反汇编代码,我们可以更加深刻地理解编译器的特性和C语言的语法。如果你有幸在芯片原厂从事嵌入式研发工作,可能还要和一帮IC工程师、硬件工程师打交道,和他们一起解决芯片、硬件电路中的各种问题。为了更好地和他们沟通,你可能还需要对半导体知识、IC行业的专业术语有一定的了解,如逻辑综合、前端设计、后端设计、仿真验证、tap-out、Die等。

从事嵌入式开发的朋友可能来自不同专业,专业背景和知识体系各不相同。基于这个现实背景,本章打算从半导体工艺开始,给大家科普一下CPU的制造过程,科普一下一款处理器是如何从一堆沙子变成市场上销售的芯片的,以及CPU的工作原理和计算机体系结构的相关知识。预期目标是希望通过本章的学习,让大家对半导体工艺、芯片、CPU、指令集、微架构、计算机系统架构、总线与地址等有一个完整的认知框架,为后续的学习打下基础。