计算机的五大组成部分(计组学习一)

贺贺学编程

共 2155字,需浏览 5分钟

 ·

2022-01-13 05:14

大家好,我是贺贺,一个爱唱歌但是五音不全的程序员

计算机的故事

在开始啃计算机组成原理(下文简称计组)这个大骨头之前,先和大家聊聊我对计算机的理解。我对计算机的学习是从C语言开始的,当时的感觉就是神奇,没想到我一这样,计算机就可以那样,其实内部的原理我也曾经想去了解过,说好听点就是实力不允许,不好听就是懒笨呗。正文开始,我们可能听说过,计算机只能识别01,但是我们在编程的时候或者在使用计算机的时候,也没有用01来控制计算机,但是计算机依然能按照我们的想法来执行,例如我们点击鼠标或者敲击键盘,计算机都能识别,再或者,我用代码打印Hello World,计算机也能正常输出,表面上看这是一件很神奇的事情,其实背后隐藏着很大的秘密。


早期的程序员真的是通过01来进行编程的,那个时候的程序员真的是不少费劲,而这种通过01来进行编程的语言有个可爱的名字,叫做机器语言,反正我是看不懂。随着时代的发展,人们为了降低编程的难度,在机器语言的基础上,把各个01的指令用英文代替,例如ADD、SUB等人们容易记忆的形式给出,其实这些英文的背后还是01代码,当我们用这种ADD指令进行编程的时候,计算机会把这些指令翻译成01代码,至于怎么翻译的,可以理解为有一个表,ADD就对应000011,其他的依次对应,而这种用字母来代替01的语言也有个好听的名字,叫做汇编语言。但是由于程序员还是需要记住很多与01对应的英文,整体来看编程的难度还是比较大的,于是后面又有人发明了高级语言,例如我们熟悉的C语言Java语言或者JavaScript。这些语言呢可以通过编译或者解释的方式把高级语言转化成汇编语言,然后再转化成01,或者是直接转化成01。C和Java属于编译型的语言,一次编译之后,后面计算机就可以直接认识,不用二次编译,除非你有改动例如C语言和Java。解释型的语言是,用一句翻译一句,再次使用需要二次翻译例如JavaScript。

计算机的核心部件

计算机由哪几个核心部件组成呢
我觉得是:键盘、鼠标、主机、显示器四大核心部件
专家说:不对,是五大核心部件:
我说,那另一个是什么呢:
专家说,另一个是音响
我说:你不会在开玩笑吧
专家说:是你先开玩笑的


计算机的五大核心部件分别是控制器、运算器、存储器、输入设备和输出设备组成。

输入输出设备

输入设备例如我们的键盘、鼠标,输出设备例如显示器、打印机。

控制器

控制器可以说是计算机的核心部件。控制器里面有一个控制单元,专家们习惯称它为CU(Control Unit),CU是控制器的核心,换句话说就是,CU是计算机的核心的核心。(贺贺有话说,制作CU的时候一般有两种指令集,一个是CISC另一个是RISC,可能大家没怎么听过,但是,由这两种指令集产生的架构你们应该知道,x86架构和ARM架构,如果还没听过,那么Intel应该知道吧,我们熟悉的i5、i7就是x86架构的,另外苹果的M1芯片是ARM架构的,之前苹果电脑用的大部分是intel的芯片,现在他们自己搞了,从理论上说,性能和续航都是明显提高的)。扯远了,控制器里还有两个重要的东西,分别是程序计数器PC(Program Counter)和指令寄存器IR(Instruction Register),其中,程序计数器用来控制下一条要执行的指令,而指令寄存器用来存储当前要执行的指令,套娃开始,指令寄存器又可以分为两个部分,分别是控制码和地址码。

运算器

运算器的重要性仅次于控制器,如果控制器是总指挥,那么运算器就是总实施。故名思意运算器是负责完成各种运算的。其中运算器里面有一个最重要的东西就是算术逻辑单元ALU(Arithmetic Logical Unit),主要负责运算的,另外还有三个(可能更对)寄存器,复杂ALU完成运算,分别是累加寄存器或者叫累加器ACC(Accumulator)、乘商寄存器MQ(Multiplier Quotient Register)和一个操作数寄存器或者叫通用寄存器X。这几个寄存器主要用来存放运算过程中的数字的,例如被加数、加数、和。(说明:他们之间是有数据流通的,这里没有画出箭头,只是画出了各个单元)

存储器

存储器分为主存储器和辅存储器,在我们买电脑的时候,可能有这么两个参数8GB+256GB,其中这个8GB就是主存储器的容量,而这个256GB就是辅存储器的容量(补充:辅存储器通常分为固态硬盘和机械硬盘,不过现在大部分都是固态硬盘了)而主存储器里有一个核心的组成部分,就是存储体M(Memory),另外有两个寄存器分别是地址寄存器MAR(Memory Address Register)和数据寄存器MDR(Memory Data Register),当我们要去存储体取数据的时候,我们需要提供该数据的地址,通过该地址去存储体里取,取出来之后放到数据寄存器中,以供后续使用。


参考文献
  • [1]计算机组成原理 唐朔飞

  • [1]计算机组成原理 王道论坛

浏览 71
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报