当前位置:首页 > 原创 > 振南技术干货集(风云录)
[导读]下面振南要介绍的是“单片机的体系架构模型”,是超脱于任何一种具体型号的单片机芯片之上的(我感觉我要成仙),它具有很强的普适性。几乎所有的单片机,或是ARM、DSP以及更为高端的处理器都遵循这一模型。或者说,这一模型中的几大要素是必需的。

经历了十多年的单片机开发,站在我现在的高度来回看单片机,可谓望眼欲穿。

下面振南要介绍的是“单片机的体系架构模型”,是超脱于任何一种具体型号的单片机芯片之上的(我感觉我要成仙),它具有很强的普适性。几乎所有的单片机,或是ARM、DSP以及更为高端的处理器都遵循这一模型。或者说,这一模型中的几大要素是必需的。

我认为只有在这个层面上,才能真正“看穿单片机”。

CPU模型

CPU,即中央处理单元,它是计算机系统的核心,占有至高无上的地位,拥有绝对的管理权与控制权,如图1.6。

图1.6 CPU在计算机系统中占有核心地位

CPU的核心要务是执行指令,比如计算两个数的和、读写寄存器、操作总线读写内存等等。每一个CPU都有自己事先设计好的一套指令集,或称指令系统,每一条指令完成一项具体的操作和功能。但是指令集并不是凭空存在的,每条指令必然都对应着一套电路。当CPU执行一条指令时,其实就是相应的电路在工作。所以,一个CPU的性能是否优异,一部分因素就在于指令集是否丰富,指令功能是否强大,指令电路是否强大而高效。

从复杂程度上来说,CPU指令集主要分为两种:复杂指令集(CISC)与精简指令集(RISC)。大多数的嵌入式CPU都是RISC的,这一方面表现在指令的数量上:指令少,则对应的电路就少,可以很大程度上降低CPU设计的难度,同时也降低了功耗;另一方面则表现在指令的功能量级上:指令本身一般不宜实现过于复杂的功能,这使得指令执行效率比较高。CISC则不同(x86就是最为经典的CISC指令集),它的指令数量庞大(少的有300条左右,多的甚至超过500条,而RISC通常不超过100条),而且指令的功能都比较强大。这意味着采用CISC指令集的CPU在电路设计上的难度很大,研发周期比较长。但是它在功能和性能上都是RISC所无法企及的(一条CISC指令所完成的工作可能需要若干条RISC指令才能完成)。所以在大型服务器、工作站这些计算机系统中大多使用CISC指令CPU。

实际上,CISC与RISC只是为了适应不同的需求而产生的,它们并非对立,反而是相互促进,取长补短的关系。CISC中已经开始加入部分RISC指令,而在嵌入式领域中也出现了一些CISC指令的CPU。融合了CISC与RISC双重指令集的新型CPU将是以后的发展趋势。

上面是振南对CPU指令集的简要介绍,其实与指令集密切相关还有一些关键技术,比如流水线、指令预取、乱序执行等等,是它们让CPU的性能有了更大的提升(振南早期就职于Intel中国研究院,主要就是研究这方面技术,所以深有感触)。不过在这里振南不对其进行讲解,有兴趣的读者可以自行研究。

直到现在,仍然有很多人向我咨询关于计算机基本原理、体系架构、硬件组成等等方面的问题,我在解答之余,也在问他们:“你们对计算机基础如此感兴趣,为什么起初不学计算机专业呢?”我其实明白,很多人在高考报志愿的时候,都是有些盲目的。

指令的实质是什么?是C语言中的a=0?是汇编语言中的MOV?不,大家看到的这些语句只是指令的一种表达形式而已。指令的实质上是一个有一定长度的二进制序列(比如0101111010101010或1011010111011011等)。CPU在得到指令之后,首先由指令译码电路从中分离中操作码、操作数,如图1.7所示(以51的MOV指令为例进行说明)。

图1.7 对指令码的译码

01110100即为指令74H,它的功能是将后面的操作数(00010000,即10H)传送到A寄存器(51 CPU中的累加器)。这条指令如果使用汇编语言来表示就是MOV A,#10H,它通过汇编器翻译之后,就是上图中的16位指令码(汇编语言的提出,只是对最原始的CPU二进制指令进行了封装,用一些便于记忆的标识,比如MOV、ADD、INC等对指令进行表示,经过汇编器翻译后,就是可直接进入CPU进行执行的指令码序列了)。

振南经常想像在CPU问世初期人们是如何向CPU输入指令的—“打孔纸带”,如图1.8。

图1.8 人们使用纸带打孔方式向CPU输入指令

在汇编语言产生之前,程序指令的编制都要完全靠人工来完成。人们将编好的若干条指令通过纸带打孔方式输入到CPU中,让它可以依次执行,最终完成整个计算任务(纸带上的‘孔’与‘实’代表了1和0)。从某种意义上来说,“纸带”才是第一代编程语言,然后“汇编语言”是第二代编程语言。它们都是离CPU指令最近的语言,所以我们称之为“低级语言”。最后才产生了C语言,它与我们人类日常使用的自然语言(英语)已经非常接近,这意味着它离CPU指令很远了。它需要经过专门的编译器进行预处理、语义分析、编译等加工处理,生成中间代码(汇编),然后再进一步进行汇编、连接等处理才能得到真正可由CPU执行的指令码。所以,C语言被称为“高级语言”。

综上所述,我们可以认为CPU就是一个取指令执行的机器,这就是CPU的主要功能和工作。但是CPU的体系结构又并非仅仅这么简单,如何协调取指令的过程,防止出错?指令存储在哪里?CPU如何从存储器中取出指令?这些问题我们都要深刻理解,否则C语言和单片机是无法真正精通的。

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭