前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机硬件知识大全范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:计算机语言;编程;基础;快乐学习
C语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。其功能强大,不仅用在计算机上广泛用在电子,机械等方面上。windows,Unix,Linux,Mac,os/2,哪一个不是C语言写的?很多新型的语言比如C++,Java,C#,J#,perl... 都是衍生自C语言。掌握了C语言,可以说你就掌握了很多门语言。
在这个暑假,作为一名计算机爱好者并立志在大学中选择并学习好计算机编程的学生,尝试着自学了C语言这门编程的入门语言,这是我学的第一门编程语言,当做是为大学里学习C语言这门计算机专业的必修课程打基础了,在学习中,我把语句设计当成游戏,自己设计出想要的效果很有成就感,让我在炎热的夏天里自己在加玩的不亦乐乎,既学到了知识又丰富了暑假生活。这里我想和大家分享一下我对C语言基础特别是语法基础的个人浅见。
C语言是计算机的基础,大多数软件都需要用C语言来编写,通过学习,使我由初步掌握简单的基本知识到完成深入一些的编程,我在编写一个较大的程序时经常把它分开成几个小程序来看,这样会容易得多。同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。在学习C语言的过程中我也在慢慢探索怎样才能学好C语言,并总结了一点经验:要了解C语言就要从语法基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在C语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础也是C语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。比如说IF ELSE 和 SWITCH CASE 这两种条件语句都是用来判断执行功能的,那我要什么时侯用IF 什么时侯用 SWITCH呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选SWITCH而不会选IF。因为如果条件分支太多时要用IF语句,这样一定会出现IF的嵌套,如果IF的嵌套越多时程序的开销就会随着增大,这样对整个程序的运行效率就大在降底。而SWITCH就不同,它只要比较一次就可以找出条件的结果比起嵌套IF它的效率就大大的提高了很多。不过SWITCH也有它的约束条件,就是它的条件值一定要是一个整型数或是一个字符值,所以碰到它不能解决的问题时我们也会通常使用IF语句,毕竟IF语句它使用起来也比较方便用的范围也比较广。所以说了解语法规则是很重要的,如果没有一个良好的语法基础是很难编出一个好的程序! 学习c语言的初期重点要放在掌握语言的语法和规定上,一定要养成良好的编程习惯,平时写程序注意语法规范格式控制,格式规范了,出了错误也容易找到出错的地方,这是c语言的基础;后期的重点要转移到掌握编程的思路和基本算法上来。课后多做习题,找一些经典例子尝试自己编写,写程序切忌半途而费,想到一个思路,就要按自己思路把它写完,就算错了,也可以让自己了解为什么这样做会错?错在哪里?会出什么结果?以后自己也很难在这个地方犯同样的错误。当学到一个新的知识点,就试着把它运用到以前做的习题上,不但巩固了以前学的内容,也更加能加强新知识的理解。
掌握了语言法规则,仅仅是学习的开始,通过学习我认识到学习编程是要学习一种思想,一种思维方法,首先要确定一种算法,如从1加到100,判断闰年等,我认为这些算法都是一种思维方法。画流程图就是在构建编写程序思路的过程,当画好一个流程图时编程思想也就要出来了,程序也差不多了,再结合掌握的语言方法规则,在计算机里实现就可以了。任何程序只要有思维,有想法,那么实现程序时就不会觉得无从下手。而要学习这种思维方法就是多做,多读,学习别人好的思维方法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会形成一种自己的思维方法。因此我认为不管学什么语言都是这样的。
另外,良好的编程习惯也是学好c语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。
假期在学习中很快就过去了,虽然我对C语言的学习才刚刚入门,但是在这个暑假我收获了很多,在即将到来的大学生活中,我将继续努力学习C语言乃至更对的计算机编程的知识,在新时代的计算机知识海洋中遨游。
参考文献:
[1]C语言程序设计基础教程.陈朔鹰等编著.兵器工业出版社,1994年9月.
[2]C语言程序设计.姜仲秋主编 南京大学出版社,1998年1月.
最近有不少软件领域的牛人进军硬件行业,但不知从何处入手。相信每个人面对一个庞大的知识体系时都一样迷茫。下面就让小编带你去看看计算机硬件新手实用知识,希望能帮助到大家!
码农们如何变得高大上:硬件知识学起来如下:列几个项目,坐地铁时,记得看看。如果对某方面感兴趣可以留言告诉我们哦,小编会为你们整理相关资料的~
1EMC与安规
EMC与安规在规模较大的公司都有专门的团队,但小公司只能硬件工程师亲手来。
CE认证测试项目最多,学习可以先关注CE的相关标准。不同行业的标准是不一样的,汽车电子和信息技术设备的测试方法和要求都不一样。
EMC理论个人觉得已经发展的比较形象(不像电磁场那么理论抽象),精髓就是EMC三要素,干扰源、敏感源和耦合路径。设计分析就是关注共模电路的回流路径或者泄放路径
2
RF与天线
同样的RF与天线在规模较大的公司也有专门的团队。
行业发展到现在,硬件工程师的RF和天线设计工作基本就是选型了。因此,需要明白一些基本的参数如增益、P1dB、IP2、IP3、天线的方向性等等。
3
电源
电源部门在规模较大的公司也有专门的团队,无论板级DCDC电源还是电源适配器都有专人完成设计、选型或测试工作,硬件工程师应用时标准电路拿来用即可。
关于电源大概就以下几个方面。
DCDC有几种基本拓扑?效率与什么有关?
LDO原理是什么?设计需要注意哪些参数?
POE协议是否熟悉?
4
时钟
晶体和晶振有什么区别?怎么设计?
时钟信号有哪些关键参数?
PLL的原理是什么?环路带宽是什么意思?PLL失锁的可能有哪些?
时钟芯片如何选型?
5
小模拟电路和小逻辑电路
硬件工程师的工作是系统级应用,不是IC设计的大神,工作中很少用分立器件设计电路。
二极管、三极管、MOS管和运放的特性要熟悉会分析,简单的电路要设计。
如三极管电平转换电路怎么设计,为毛低温就不工作了?
如MOS管双向电平转换怎么设计?要关注什么参数?
如MOS管的米勒效应,能不能定量的用公式分析?
6
高速信号及信号完整性
建立时间与保持时间?
时钟的抖动分哪几类?
数据相关抖动是什么?
CDR是什么?
抖动与误码率的关系是什么?
EQ、去加重、预加重?
7
低速信号
I2C、UART、SPI是什么?
会不会通过示波器测量判断通信数据对不对?
8
RAM 和ROM
NAND FLASH和NOR FLASH有什么区别?
DDR3 SDRAM原理是什么?CL、AL、RL、WL是什么?各种参数的会不会设置?
9
CPU、SOC、FPGA
X86、ARM、MIPS、POWERPC有什么区别?
FPGA设计需要注意什么?IC设计领域了解嘛?
关注自己的行业不同行业的技术是不一样的,应用环境及解决方案也不一样
如你是设计智能电视的
1、视频相关知识?BT1120是啥?H.264是啥?YUV是啥?4:2:2是啥?什么是HDMI?具体协议是啥?
2、思考下产品,内容重要还是硬件重要?能不能优化下3D?
如你是设计交换机的
1.802.3了解嘛?啥是MAC?啥是PHY?GMII接口如何设计?
2.交换机如何工作的?VLAN是啥?
3.客户是啥?教育网还是运营商?
如果你设计无线路由器的
1.802.11
a/b/g/n/ac的区别?TCP/IP协议是啥?ARP是啥?路由的工作原理?
2.天线如何设计的?增益、方向图是什么?各种PA、LNA如何选型?
3.客户是啥,需求如何?150块卖给普通人,还是1000块卖给企业级用户?
有两个领域值得去深入研究,以后是物联网的时代,网络和无线通信的应用会越来越多。
网络
也是交换机和路由器等应用与组网。现在互联网基于以太网,802.3标准规定了MAC和PHY规范。上层协议如TCP/IP、UDP、ARP、环网等等,总之网络的水很深,值得一探。
无线通信
如移动通讯、WIFI、sub1GHz等等应用会越来越多,之前国家的什么旅游规划,有一条就是景区要实现免费WIFI覆盖。无线通信也基本是802.x协议族。基带和RF都可以深入学习。
最后一点
如果你不是必不得己,还是不要做码农,如果你必须做技术,那就做一个硬件工程师吧,了解下以上知识足够了,每天给供应商打几个电话,看看ppt,开开会,耍几个专业名词,放心,你的老板和那帮码农是听不懂的。
新手必看的电脑硬件知识大全一、CPU
电脑的CPU(中央处理器)就相当于人的大脑,现在市面上的CPU主要分为两大阵营,分别是Intel(英特尔)和 AMD,性能都是以产品型号来区分。这里我们用英特尔来举栗子。
四位数中最重要的是第一位,它表示了 CPU 的代数,因此这一位的数值越大,该 CPU 的架构也就越新,从而带来更高的性能和更低的功耗。后三位数字对 CPU的性能通常影响不大,我们没有必要考虑。
看CPU好坏,最直观的方法是看CPU天梯图,详见最新「CPU天梯图。
二、显卡
显卡作为电脑主机里的一个重要组成部分,是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。对于从事专业图形设计的人来说显卡非常重要。下面以最常见的NVIDIA独立显卡为例,教大家如何判断显卡性能。
显卡分为NVIDIA和AMD两个品牌,两个品牌的命名规则如下:
1、Nvidia显卡
(1)从高到低的显卡系列是:GTX系列、GTS系列、GT系列、GF系列以及iris集成显卡系列。另外还包括为专业工作站而设的Quadro显卡系列(这个系列市场上见的不多,基本数字越大性能越高)
(2)不同的系列命名规则是一样的,以GTX980Ti为例。首先数字9表示的是GTX系列第九代显卡,核心是GM204。后面的数字8就表示在这一代显卡里面的定位,一般在5一下的是属于中低端显卡,比如GT740就是第七代的中低端显卡;而7及以上的就是高端显卡,如GTX 970。
2、AMD显卡:以前使用的是Radeon
HD命名,最新出了以RX系列命名的显卡。
(1)R系列的显卡分为三种:RX5700XT表示高端显卡,如RX 5700和RX 5700XT;RX580表示中端显卡,如RX560;R5表示的是低端的入门级独立显卡,如R5 230。
(2)旧的命名方式更好判断性能,以HD7950为例,首先数字7表示AMD第七代显卡,一般最新的一代在架构上有进步,性能会更好一些。后面的9表示的是在第七代显卡中的性能定位,8和9属于高端显卡,6和7属于中端显卡,5及以下的就属于低端显卡。
看显卡好坏,最直观最方便的则是看显卡天梯图,详见最新「显卡天梯图。
三、主板
主板不像CPU和显卡一般有明显的性能差异,你买了更高端的CPU和显卡就能享受更强的性能,但主板是一个载体,一个支撑所有硬件的骨架,只有根据CPU兼容性和是否支持超频,来合理搭配、选择适合自己的主板才能获得更好的使用效果。
四、内存·
内存是用来暂时存放 CPU 运算数据的硬件,我们大可把它理解为“ 为程序运行提供的空间”,越大越好,如今装机标配8GB大内存,大型游戏或者专业设计则建议上16GB大内存,下面我们用金士顿的内存条来举例子。
内存
五、硬盘
目前,硬盘分为机械硬盘和固态硬盘。简单来说,机械硬盘读写速度慢、容量大、价格便宜、数据恢复方便、但比较笨重,不抗震,适用于存放较多文件;固态硬盘读写速度快,又轻又小,但价格很贵,适用于多系统安装,保证开机速度、系统流畅度。
硬盘
由于固态硬盘体验更好,如今SSD早已经是主流电脑的标配。不过,需要注意的是,常见固体硬盘又分M.2和SATA接口,M.2NVME接口固态硬盘速度最快,价格相对也更高,适合追求高速的朋友推荐,普通用户一般买SATA固态硬盘就够了,价格便宜,兼容性强。
M.2固态硬盘最小是10Gb/s,大的达到了32Gb/s,普通的SSD盘SATA3.0带宽是6Gb/s,机械硬盘HDD速度在100MB/s左右,在读写速度方面M.2 明显超越了普通 SATA SSD和HDD硬盘的;
与MSATA相比,M.2主要有两个方面的优势。第一是速度方面的优势。M.2接口有两种类型:Socket 2和Socket3,其中Socket2支持SATA、PCI-E X2接口,而如果采用PCI-E×2接口标准,最大的读取速度可以达到700MB/s,写入也能达到550MB/s。而其中的Socket 3可支持PCI-E×4接口,理论带宽可达4GB/s。
六、机箱电源
机箱方面,主要是外观部分,根据自己的喜欢,选择就可以了。当然,如果是想要体验水冷,在买机箱的时候,则需要注意下机箱是否支持水冷散热器等。
一般的机箱水冷一般支持到240MM,也就是双风扇水冷,如果要使用360MM水冷的话建议询问一下购买客服,或者自己上网定制。机箱的大小也要考虑到自己的各种硬件能否容纳,比如说三风扇显卡,以及大型主板、塔式风冷散热,小机箱可能无法安装。
电源则相当于电脑的心脏,为电脑各硬件供电。虽然电源在主机硬件中不起眼,但其稳定在起着至关重要的作用,低价山寨电源偷工减料厉害,容易导致电脑频繁死机,甚至烧坏硬件。因此,买电源不仅仅是主看额定功率大小,还要看电源的稳定性与质量,一般强烈建议推荐品牌主流型号电源,以保证稳定与耐用。
80PLUS认证标准
上图为电源的80PLUS认证标准,一般最低保证选用白牌以上的电源,用的比较放心,质量也可以得到保证。
电源还分为全模组与非全模组电源:
全模组电源
非全模组电源
全模组与非模组电源的区别:
1、外观上不同
非模组电源从内部引出一大堆供电线,模组电源则是用模组接口板代替。拆开电源后,可以看到,非模组电源的供电线直接从PCB板上引出,而模组电源则是把从PCB板引出来的供电线在输出接口处连接到模组板。
2、工作效率不同
非模组电源的PCB板和供电线只有一个连接点,所以损耗很低。但是模组电源的PCB板和连接到主机的供电线之间有两个连接点,由于多了连接点,因此损耗更高。同规格下模组电源的效率要比非模组电源低了一点。
3、转换效率不同
实际功率越高,模组电源的损坏也会提高,比如市电下负载百分百的模组电源,要比非模组低了0.6%左右,不同的电源表现不同,但同样状态下,模组电源确实要比非模组电源的转换效率更低。
芯片背后的这些硬件知识你都学会没有?
前言
我们都知道芯片,也知道芯片技术在21世纪是最重要的技术之一,但很少有人能知道芯片技术的一些细节,如芯片是如何构造的、为什么它可以运行程序、芯片又是如何被设计制造出来的等等。本文就尝试从最底层的二极管开始,逐一讲讲二极管、mos管、逻辑门电路、集成电路、大规模集成电路是如何逐步构造成我们所熟知的“芯片”。
二、从二极管到逻辑门电路
二极管
二极管是大家熟知的基本器件之一,可以说二极管的发明和大规模使用是现代工业腾飞最重要的基础之一。二极管的特性就是电流单向导通,如下图所示,一般情况下电流只能从A到B而不能从B到A,且这种单向导通还有个特点就是施加的电压必须大于某个数值,如硅二极管为0.5V才能导通,且导通后继续增加电压会导致电流大幅增加(相当于电阻下降)。
在逻辑上可以这样理解:施加在二极管上的电压小于0.5V时它是不通电的(表现为极高的电阻),当电压等于0.5V时二极管突然就导通了(表现为极低的电阻)。所以我们总结一下二极管的特性:
1、只能单向导通
2、施加电压低于0.5V时完全不导通
3、施加电压等于0.5V时突然完全导通
事实上,科学家们正是利用上述的简单特性构建了庞大复杂的电子世界。
三极管
在二极管的基础上,科学家们进一步研究出了三极管。三极管的特点就是增加了一极,不由施加在两端的电压大小决定是否导通,加入了第三极,使用三极间压差来决定是否导通。如下图所示,工作时b、c、e极都施加了一定的电压,这里不探究具体电压差是如何导致c、e间导通的,简单来说就是通过各极间压差实现c、e间先是逐渐导通(表现为压差增大电流增大),而后变为完全导通(表现为压差增大而电流不变)。且这种特性也是挑方向的,只能是c到e的导通而不能是e到c的导通(即施加反向电压再高也不会反向导通)。
逻辑上我们可以做如下总结:
1、只能c到e导通(反向施加电压无法反向导通)
2、压差低于某值A时完全不导通(无电流)
3、压差高于某值A时逐渐导通(电流随压差增大)
4、压差高于另一值B时完全导通(电流不随压差变化)
逻辑门电路
了解了基本器件后,我们再来说说数学。在数学上我们有三个基本逻辑:与、或、非。
与(&):0&0=0、1&0=0、0&1=0、1&1=1
或(|):0|0=0、1|0=1、0|1=1、1|1=1
非(!):!0=1、!1=0
科学家们使用二极管、三极管、电阻、电容在电路上实现了上述的三个基本逻辑,具体表现为:
1)与门:A、B两端同时输入5V则L端输出5V,否则L端输出0V
2)或门:A、B任意一端输入5V则L端输出为5V,A、B端同时为0V时L端输出为0V
3)非们:A端输入5V则L端输出0V,A端输入0V则L端输出5V
这里我们就不探究逻辑门的具体原理了,大家只要知道二极管、三极管的物理特性使得这种逻辑电路运行的非常稳定,以非门为例,当A端输入小于5V时L端输出稳定为5V,当A端等于5V时L端会立即输出为0V(这里忽略了很多电路细节和器件特性)。为便于使用,科学家们使用符号将这三个逻辑门进行了抽象:
为便于使用,我们将其进一步抽象,如下图所示:
从数学上来说,所有复杂的逻辑式最终都可以分解为最基本的三个逻辑组合,我们先温习一下高中的代数课:
那在电路上,是不是就可以使用与、或、非这三个基本的逻辑门电路来分解?
三、从逻辑运算到电路运算
以加法为例
下图是二进制加法的真值表,S是A+B,C是进位。
科学家们使用逻辑式来总结了这个真值表,从真值表到逻辑式的转化是高中代数的基本内容。
我们发现,S和C的输出可以由A与B的逻辑运算得到(一个异或门、一个与门)。那么,如果我们使用逻辑电路来实现逻辑运算,是不是就可以用电路来实现加法?
第一步,我们先用逻辑符号来绘制上述的公式:
第二步,将逻辑符号转为电路(没找到半加器电路,这个是全加器):
第三步,焊接物理电路
逻辑叠加
通过加法的例子我们实现了从逻辑到电路的转变,根据这个原理我们可以简单的实现:
1)减法器
2)乘法器
3)除法器
4)8位加法器
实际上我们发现所有的运算都是逻辑的叠加,逻辑最终可以转化为电路,所以我们可以得出结论:所有的运算最终都可以使用电路实现。
四、从电子电路到集成电路
庞大的电子计算机
前面的内容,我们知道了所有逻辑运算都可以使用电路实现,那么加法器、减法器、乘法器、除法器都是可以实现的,事实上一开始的“计算机”就是用于做这些加减乘除运算。使用逻辑门的好处显而易见,所有逻辑叠加问题都可以用电路的“叠加”来解决,无论是10位的加法、100位的减法、还是1000位的乘法,理论上来说只要二极管、三极管、电容电阻足够我们都可以实现。但是随着计算需求越来越大,计算器的体积变得越来越大,“耗电”成了一个大问题。下图是第一台通用计算机ENIAC,它可以每秒5000次加法或400次乘法运算,但是它使用了17,468根真空管(电子管)7,200根晶体二极管,1,500个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关。抛开成本因素,光耗电量就是一个天文数字。
MOS管与集成电路
体积庞大、造价高昂、耗电量成为制约计算机的核心问题所在,如果有办法缩小元器件的体积,体积、造价、耗电的问题都迎刃而解了。在这个需求的基础上集成电路诞生了,它不是使用电路将各种元器件连接起来,而是将各种元器件、线路直接“做”到了硅片上。
下图是一个典型的PNP三极管示意图,本质上P与N的材质是一样的(硅),只是掺杂了不同的杂质改变了其电特性(二极管、三极管就是这么制造的)。所以有没有办法在一片硅上面按需求“做”出P结、N结,而后用“线路”将各P结和N结连接成电路,只要前期规划做好,数量庞大的三极管、二极管、线路就可以集成到一个硅片上了。
mos管是金属(metal)、氧化物(oxide)、半导体(semiconductor)场效应晶体管,名字复杂其实本质就是由金属、氧化物、半导体组成的元器件。前面说到要将三极管、二极管、线路集成到硅片上,其中MOS管中的“半导体”就是P结或N结,用来组成三极管或二极管。“金属”就是连接各结的线路,“氧化物”就是各结间用以绝缘的隔离层。简单点说,集成电路就是在硅片上制造了很多的半导体(PN结)、金属(线路)、氧化物(绝缘层),这些半导体、金属、氧化物组成的器件我们称之为MOS管,无数MOS管按逻辑电路进行组合就是所谓的集成电路了。
集成电路工艺
现在我们找到了办法将器件缩小,下一步就是如何实现PN结、金属线路、氧化物。下图是一个典型的PNP晶体管剖面示意图
在工艺上要做成这样需要很多步骤,大概有:
1)切割:将工厂生产的硅锭切割成片
2)影印:在硅片上涂一层光阻物质(想象成防护膜),然后按设计要求溶解部分光阻物质(让部分区域露出来)。工艺上是在紫外灯上面加一层有很多孔的遮罩,被紫外灯照射的光阻物质就溶解了,没有照射的地方还有保护。如下图所示,通过影印将部分光阻清除,露出部分硅片。
3)刻蚀:露出该露的、遮住该遮的部分后,就使用刻蚀技术将没被遮住的区域“蚀”出一个沟,如下图所示。
4)掺杂:有了沟之后就使用原子轰击这个“沟”使其掺入杂质形成P型衬底
5)沉积:接着在P型衬底上沉积一层N型硅
就这样反复影印、刻蚀、掺杂、沉积就得到了我们需要的MOS管。
五、从集成电路到CPU
我们将一块晶圆上制作了大量MOS管的叫集成电路,MOS管特别多的叫大规模集成电路,MOS管超级超级多的叫超大规模集成电路,其实就是工艺进步了。一块芯片上集成的电子器件越多、电路越复杂能实现的功能也就越多,所以我们不能只满足于做加减乘除这样简单的运算。但当时的科学家并没有“未来”的视野,他们当时急需的问题不是发明CPU,而是解决数据如何存储的问题。如果数据可以存储在电路里,那就可以实现很多复杂的操作,比如简单的编程。
D触发器
为了将数据“锁”在电路里,科学家们使用逻辑门组成了D触发器。其中CP是时钟控制信号(这里将其当做一个控制信号即可),当CP值为1时D输入一个信号则Q输出同样的信号,当CP值不为1时D输入任何信号则Q输出不变,如此就实现了将D信号“锁”在了Q。
寄存器
数个D触发器的组合就实现了一个寄存器,如下图所示就是一个4位寄存器,可以存储一个4位的数据,如“0101”:
根据寄存器的工作内容又细分了:指令寄存器、程序计数器、地址寄存器、通用寄存器等等。
运算器
将数个寄存器与前面所说的加、减、乘、除计算电路结合起来就是运算器了,运算器的作用就是对寄存器(一个或多个)中的内容进行算数计算,而后将结果存入寄存器。
控制器
上图可以看到,运算器内有数个寄存器,那何时执行计算任务、计算那几个寄存器的数据、最终存储到哪里呢,这些都由控制器来完成。控制器由指令寄存器、指令译码器、程序计数器、堆栈指针、数据指针组成,它从指令寄存器中获取指令而后根据指令从外部存储中获取数据、控制运算器执行运算、获取下一步指令等等。这一且都是通过“时钟控制信号”和复杂的逻辑运算实现的。
对于时钟控制信号,可以理解为一个节拍器,时钟源向CPU发送有节奏的高低电平信号,让控制器内部逻辑电路被激活,该逻辑电路又根据指令寄存器的内容生成各种控制信号指挥运算器读取数据、执行运算、读取下一步指令、存储计算结果等等。下图就是一个完整的控制器与运算器的示意。
存储器
存储器又叫高速缓冲存储器,它的作用就是存储即将交付CPU处理的数据并保存CPU处理的结果。实际上各种控制信号、数据都是放置于存储器中,控制器从这里获取下一步的数据和指令。
CPU
存储器、控制器、运算器的结合就是一个基本的CPU了,等等?似乎CPU没有什么特殊的功能啊,那它是如何执行这么多复杂工作的呢?实际上CPU的原理就是这么简单。当我们写好代码后,编译器就将这些代码翻译成CPU可以识别的数据格式,而后按顺序放入存储器中即可,控制器会根据预设的程序按节奏从存储器中获取指令和数据,控制运算器处理这些数据,最终实现代码功能。
六、CPU运作示例
为便于理解其工作原理,我们做一个简单的示例。比如我们写了一段代码:
A=1;
B=2;
C=A+B;
输出C到屏幕
编译器编译时可能会做如下翻译:
1)将0001放入寄存器A、将0010放入寄存器B
2)执行寄存器A+寄存器B,结果放入寄存器C
3)读取屏幕显示器的存储地址,放入寄存器E
4)根据寄存器E的数据(屏幕显示器地址),将寄存器C的数据(运算结果)写入该存储地址
至此CPU就实现了一个简单的计算和屏幕显示。当然具体操作过程可能会比这个复杂无数倍。但是CPU的核心功能就是简单的算数运算,以及各种数据的读写。而编译器的工作就是将复杂的代码翻译成简单的算数运算和数据存储、数据移动。
七、总结