计算机硬件概述

第二节:计算机硬件基础

2.1 冯诺依曼结构

冯诺依曼
1944年,冯·诺伊曼参加原子弹的研制工作,该工作涉及到极为困难的计算。在对原子核反应过程的研究中,要对一个反应的传播做出“是”或“否”的回答。解决这一问题通常需要通过几十亿次的数学运算和逻辑指令,尽管最终的数据并不要求十分精确,但所有的中间运算过程均不可缺少,且要尽可能保持准确。他所在的洛·斯阿拉莫斯实验室为此聘用了一百多名女计算员,利用台式计算机从早到晚计算,还是远远不能满足需要。无穷无尽的数字和逻辑指令如同沙漠一样把人的智慧和精力吸尽。

被计算机所困扰的诺伊曼在一次极为偶然的机会中知道了ENIAC计算机的研制计划,从此他投身到计算机研制这一宏伟的事业中,建立了一生中最大的丰功伟绩。

1944年夏的一天,正在火车站候车的冯·诺伊曼巧遇戈尔斯坦,并同他进行了短暂的交谈。当时,戈尔斯坦是美国弹道实验室的军方负责人,他正参与ENIAC计算机的研制工作。在交谈在,戈尔斯坦告诉了冯·诺伊曼有关ENIAC的研制情况。具有远见卓识的冯·诺伊曼为这一研制计划所吸引,他意识到了这项工作的深远意义。

冯·诺依曼由ENIAC机研制组的戈尔德斯廷中尉介绍参加ENIAC机研制小组后,便带领这批富有创新精神的年轻科技人员,向着更高的目标进军.1945年,他们在共同讨论的基础上,发表了一个全新的"存储程序通用电子计算机方案"–EDVAC(Electronic Discrete Variable Automatic Computer的缩写).在这过程中,冯·诺依曼显示出他雄厚的数理基础知识,充分发挥了他的顾问作用及探索问题和综合分析的能力。诺伊曼以“关于EDVAC的报告草案”为题,起草了长达101页的总结报告。报告广泛而具体地介绍了制造电子计算机和程序设计的新思想。这份报告是计算机发展史上一个划时代的文献,它向世界宣告:电子计算机的时代开始了。

EDVAC方案明确奠定了新机器由五个部分组成,包括:运算器1、逻辑控制装置2、存储器3、输入4和输出设备5,并描述了这五部分的职能和相互关系.报告中,诺伊曼对EDVAC中的两大设计思想作了进一步的论证,为计算机的设计树立了一座里程碑。

EDVAC设计思想之一是二进制,他根据电子元件双稳工作的特点,建议在电子计算机中采用二进制。报告还提到了二进制的优点,并预言,二进制的采用将大简化机器的逻辑线路。
在这里插入图片描述

2.2 巧记计算机硬件

计算机是人的奴隶,可以将其当作一个人去看,请思考下述组件等同于人的哪些器官:

控制器+运算器=CPU,CPU、内存(主存储器)以及其他I/O设备都由一条系统总线(bus)连接起来并通过总线与其他设备通信
现代计算机的结构更复杂,包括多重总线,后面会讲到
在这里插入图片描述

将计算机类比为人
上课开始,老师讲课,学生听课,老师是程序员,学生是计算机,学生的器官都是计算机各部分组成

1.你通过耳朵接收老师讲的知识->输入
输入设备是耳朵或眼睛或嘴巴,负责接收外部的信息存入内存

2.通过自己的神经,将接收的数据存入自己的内存/短期记忆(总线、内存)
内存是人的记忆,负责临时存储

3.光听不行,你还需要反应/处理老师讲的知识,于是你的大脑/cpu从短期记忆里取出知识/指令,分析知识/指令,然后学习知识/执行指令 (cpu取指、分析、执行)
cpu是人的大脑,负责控制全身和运算

4.你通过作业或者说话输出你学到的结果
输出设备是你的脸部(表情)或者屁股,负责经过处理后输出的结果

5.你想要永久将知识保存下来,只能拿出一个笔记本,把刚刚学会的知识都写到本子上,这个本子就是硬盘(磁盘)
硬盘是人的笔记本,负责永久存储

2.3 计算机硬件实物图解

在这里插入图片描述
我们买来电脑,如果只有键盘鼠标、显示器、音箱,我们能玩电脑么?肯定不能。 那么其实电脑机箱才是真正的工作的设备,输入输出设备只是用来让我们和电脑机箱来做交互的。

那机箱内部都有什么呢?我们看一下下面的图片:
在这里插入图片描述
我们来看一下这里的零件都有什么用

主板:连接所有其他设备的设备,是其他设备的载体,主板主要是为CPU、内存、显卡、硬盘等提供平台,相当于人体的躯干,关联着各个器官。
主板

2.3.1 cpu

CPU:中央处理单元(Cntral Pocessing Uit)的缩写,也叫处理器,是计算机的运算核心和控制核心。人靠大脑思考,电脑靠CPU来运算、控制。让电脑的各个部件顺利工作,起到协调和控制作用。
在这里插入图片描述
通常将运算器和控制器合称为中央处理器(Central Processing Unit,CPU)。其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU的工作主要在于管理和运算。可以说计算机的大脑就是CPU,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。

既然CPU的重点在于进行运算和判断,那么要被运算与判断的数据是从哪里来的?CPU读取的数据都是从主存储器(内存)来的!主存储器内的数据则是从输入单元所传输进来!而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。

综合上面所说的,我们会知道其实计算机是由:输入单元、输出单元、CPU(控制单元、算术逻辑单元)与主存储器五大单元构成的。也可以说CPU+输入输出+主存储器构成了电子计算机的三大核心组件,相关性如下图:
  cpu
  在超大规模集成电路构成的微型计算机中,往往将CPU制成一块具有特定功能的芯片,称为微处理器,芯片里边有编写好的微指令集,我们在主机上的所有操作或者说任何软件的执行最终都要转化成cpu的指令去执行,如输入输出,阅读,视频,上网等这些都要参考CPU是否内置有相关微指令集才行。如果没有那么CPU无法处理这些操作。不同的CPU指令集不同对应的功能也不同,这就好比不同的人脑,对于大多数人类来说,人脑的结构一样,但是大家的智商都有差别。
  
   那么目前世界上的主流CPU由那些呢?我们笔记本上贴的Intel、AMD是怎么回事呢?下面我们来认识一下:

2.3.1.1 CPU的分类

我们已经知道CPU内部是含有微指令集的,我们所使用的的软件都要经过CPU内部的微指令集来完成才行。这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要的CPU种类:分别是精简指令集(RISC)与复杂指令集(CISC)系统。下面我们就来谈谈这两种不同CPU种类的差异!

2.3.1.1.1 精简指令集

精简指令集(Reduced Instruction Set Computing,RISC):这种CPU的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。常见的RISC指令集CPU主要例如Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列、与ARM系列等。【注:Sun已经被Oracle收购;】

SPARC架构的计算机常用于学术领域的大型工作站中,包括银行金融体系的主服务器也都有这类的计算机架构;

PowerPC架构的应用,如Sony出产的Play Station 3(PS3)使用的就是该架构的Cell处理器。

ARM是世界上使用范围最广的CPU了,常用的各厂商的手机、PDA、导航系统、网络设备等,几乎都用该架构的CPU。

2.3.1.1.2 复杂指令集

复杂指令集(Complex Instruction Set Computer,CISC)与RISC不同,在CISC的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因此指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU。

由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人计算机(Personal Computer)上面,因此,个人计算机常被称为x86架构的计算机!举个例子,我们在MySQL官网下载MySQL时名字为:
Windows(x86,32-bit),ZIP Archive
(mysql-5.7.20-win32.zip)

我们发现名字中有x86,这其实就是告诉我们该软件应用于x86结构的计算机。那么为何称为x86架构呢?这是因为最早的那颗Intel发展出来的CPU代号称为8086,后来依此架构又开发出80285、80386…,因此这种架构的CPU就被称为x86架构了。

在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,为了区别两者的差异,因此64位的个人计算机CPU又被统称为x86_64的架构了。

不同的x86架构的CPU的差别在哪呢?除了CPU的整体结构(如第二层缓存、每次运作可执行的指令数等)之外,主要是在于微指令集的不同。新的x86的CPU大多含有很先进的微指令集,这些微指令集可以加速多媒体程序的运作,也能够加强虚拟化的效能,而且某些微指令集更能够增加能源效率,让CPU耗电量降低,这对于高电费是个不错的消息。 试想一下,如果CPU的指令集都相同,那么OS是不是就不用分32bit和64bit了,各种程序的跨平台是不是就更简单了呢。

2.3.1.2 CPU历史

计算机的发展主要表现在其核心部件——微处理器【微处理器由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。】的发展上,每当一款新型的微处理器出现时,就会带动计算机系统的其他部件的相应发展,如计算机体系结构的进一步优化,存储器存取容量的不断增大、存取速度的不断提高,外围设备的不断改进以及新设备的不断出现等。根据微处理器的字长和功能,可将其发展划分为以下几个阶段。
在这里插入图片描述
 总结:CPU按照指令集可以分为精简指令集CPU和复杂指令集CPU两种,区别在于前者的指令集精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。后者的指令集每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。

根据位数又可分为32bit和64bit(指的是CPU一次执行指令的数据带宽),这个具体后面了解。CPU往往又可细分为运算器和控制器两部分,下面我们再来叙说一下这两部分。
#2.1、运算器
  运算器是对信息进行处理和运算的部件。经常进行的运算是算术运算和逻辑运算,所以运算器又可称为算术逻辑运算部件(Arithmetic and Logical,ALU)。

运算器的核心是加法器。运算器中还有若干个通用寄存器或累加寄存器,用来暂存操作数并存放运算结果。寄存器的存取速度比存储器的存放速度快很多。关于寄存器,我们在后面介绍CPU的时候再认识。

2.3.1.3 控制器

控制器是整个计算机的指挥中心,它的主要功能是按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊的自动工作。

控制器从主存中逐条地读取出指令进行分析,根据指令的不同来安排操作顺序,向各部件发出相应的操作信号,控制它们执行指令所规定的任务。

控制器中包括一些专用的寄存器。
因访问内存以得到指令或数据的时间比cpu执行指令花费的时间要长得多,所以,所有CPU内部都有一些用来保存关键变量和临时数据的寄存器,这样通常在cpu的指令集中专门提供一些指令,用来将一个字(可以理解为数据)从内存调入寄存器,以及将一个字从寄存器存入内存。cpu其他的指令集可以把来自寄存器、内存的操作数据组合,或者用两者产生一个结果,比如将两个字相加并把结果存在寄存器或内存中。

寄存器的分类:

1.除了用来保存变量和临时结果的通用寄存器外

2.多数计算机还有一些对程序员课件的专门寄存器,其中之一便是程序计数器,它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令

3.另外一个寄存器便是堆栈指针,它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量

4.最后 一个非常重要的寄存器就是程序状态字寄存器(Program Status Word,PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常非常非常非常非常非常重要

寄存器的维护:

操作系统必须知晓所有的寄存器。在时间多路复用的CPU中,操作系统会经常中止正在运行的某个程序并启动(或再次启动)另一个程序。每次停止一个运行着的程序时,操作系统必须保存所有的寄存器,这样在稍后该程序被再次运行时,可以把这些寄存器重新装入。

你可以找到更多关于寄存器的信息here.

2.3.1.4 处理器设计的演变

1.最开始取值、解码、执行这三个过程是同时进行的,这意味着任何一个过程完成都需要等待其余两个过程执行完毕,时间浪费

2.后来被设计成了流水线式的设计,即执行指令n时,可以对指令n+1解码,并且可以读取指令n+2,完全是一套流水线。
   在这里插入图片描述
3.超变量cpu,比流水线更加先进,有多个执行单元,可以同时负责不同的事情,比如看片的同时,听歌,打游戏。

两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们都执行完毕。只有有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令
在这里插入图片描述
这种设计存在一种缺陷,即程序的指令经常不按照顺序执行,在多数情况下,硬件负责保证这种运算结果与顺序执行的指令时的结果相同。

2.3.1.4.1 内核态与用户态

除了在嵌入式系统中的非常简答的CPU之外,多数CPU都有两种模式,即内核态与用户态。

通常,PSW中有一个二进制位控制这两种模式。

内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)

用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。

内核态与用户态切换

用户态下工作的软件不能操作硬件,但是我们的软件比如暴风影音,一定会有操作硬件的需求,比如从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

请把的系统调用看成一个特别的的过程调用指令就可以了,该指令具有从用户态切换到内核态的特别能力。

2.3.1.4.2 多线程和多核芯片

moore定律指出,芯片中的晶体管数量每18个月翻一倍,随着晶体管数量的增多,更强大的功能称为了可能,如

I.第一步增强:在cpu芯片中加入更大的缓存,一级缓存L1,用和cpu相同的材质制成,cpu访问它没有时延

II.第二步增强:一个cpu中的处理逻辑增多,intel公司首次提出,称为多线程(multithreading)或超线程(hyperthreading),对用户来说一个有两个线程的cpu就相当于两个cpu,我们后面要学习的进程和线程的知识就起源于这里,进程是资源单位而线程才是cpu的执行单位。

多线程运行cpu保持两个不同的线程状态,可以在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)

III.第三步增强:除了多线程,还出现了傲寒2个或者4个完整处理器的cpu芯片,如下图。要使用这类多核芯片肯定需要有多处理操作系统
在这里插入图片描述
在这里插入图片描述

你可以找到更多关于中央处理器的信息here.

2.3.2 存储设备

计算机中第二重要的就是存储了,所有人都意淫着存储:速度快(这样cpu的等待存储器的延迟就降低了)+容量大+价钱便宜。然后同时兼备三者是不可能的,所以有了如下的不同的处理方式
 在这里插入图片描述
 存储器系统采用如上图的分层结构,顶层的存储器速度较高,容量较小,与底层的存储器相比每位的成本较高,其差别往往是十亿数量级的

2.3.2.1 寄存器即L1缓存

用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延,典型容量是:在32位cpu中为3232,在64位cpu中为6464,在两种情况下容量均<1KB。

2.3.2.2 高速缓存即L2缓存

主要由硬件控制高速缓存的存取,内存中有高速缓存行按照064字节为行0,64127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中,缓存满足了请求,就不需要通过总线把访问请求送往主存(内存),这毕竟是慢的。高速缓存的命中通常需要两个时钟周期。高速缓存为命中,就必须访问内存,这需要付出大量的时间代价。由于高速缓存价格昂贵,所以其大小有限,有些机器具有两级甚至三级高速缓存,每一级高速缓存比前一级慢但是容易大。

缓存在计算机科学的许多领域中起着重要的作用,并不仅仅只是RAM(随机存取存储器)的缓存行。只要存在大量的资源可以划分为小的部分,那么这些资源中的某些部分肯定会比其他部分更频发地得到使用,此时用缓存可以带来性能上的提升。一个典型的例子就是操作系统一直在使用缓存,比如,多数操作系统在内存中保留频繁使用的文件(的一部分),以避免从磁盘中重复地调用这些文件,类似的/root/a/b/c/d/e/f/a.txt的长路径名转换成该文件所在的磁盘地址的结果然后放入缓存,可以避免重复寻找地址,还有一个web页面的url地址转换为网络地址(IP)地址后,这个转换结果也可以缓存起来供将来使用。

缓存是一个好方法,在现代cpu中设计了两个缓存,再看4.1中的两种cpu设计图。第一级缓存称为L1总是在CPU中,通常用来将已经解码的指令调入cpu的执行引擎,对那些频繁使用的数据自,多少芯片还会按照第二L1缓存 。。。另外往往设计有二级缓存L2,用来存放近来经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。

2.3.2.3 内存

在这里插入图片描述
再往下一层是主存,此乃存储器系统的主力,主存通常称为随机访问存储RAM,就是我们通常所说的内存,容量一直在不断攀升,所有不能再高速缓存中找到的,都会到主存中找,主存是易失性存储,断电后数据全部消失

除了主存RAM之外,许多计算机已经在使用少量的非易失性随机访问存储如ROM(Read Only Memory,ROM),在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。

EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。

还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失.

你可以找到更多关于内存的信息here.

2.3.2.4 硬盘

在这里插入图片描述
存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。也被人们称之为“数据仓库”。
在这里插入图片描述
磁盘低速的原因是因为它一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。从边缘开始有一个机械臂悬在盘面上,这类似于老式黑胶唱片机上的拾音臂。信息卸载磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计方法,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。

每个磁头可以读取一段换新区域,称为磁道

把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

每个磁道划成若干扇区,扇区典型的值是512字节

数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间

平均寻道时间

机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置

平均延迟时间
机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间

2.3.2.4.1 虚拟内存

许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)

PS:从一个程序切换到另外一个程序,成为上下文切换(context switch),缓存和MMU的出现提升了系统的性能,尤其是上下文切换

你可以找到更多关于硬盘的信息here.

2.3.2.5 磁带

在这里插入图片描述
在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)

2.3.2.6 cpu 内存 硬盘三者之间的关系

简单来说,硬盘用来存储我们的程序和数据,当我们运行程序的时候,CPU首先接受到我们的命令,之后CPU是告诉硬盘,我要运行你存储的程序A,你把程序A送到内存去。CPU对内存说,我让硬盘把程序A送到你这里来了,你保存一下。 等程序A被完整的送到内存之后。CPU就开始执行程序A。

过程就像上面说的,我们在举一个接近我们生活的例子。

如果说把硬盘比喻成一个大仓库,CPU比喻成加工车间,那么内存就是一个临时的小仓库。从距离上来说, 相比内存到CPU的距离和硬盘到内存的距离,内存和CPU的距离更短。

硬盘(大仓库)用来保存车间需要用的原料和最终生产出来的商品。仓库太大,取出原料和存储商品太慢,耗时间。

内存(临时小仓库):原料会先放到这里,小仓库,可以很快的找到需要的原料或商品。

CPU(车间):从内存(小仓库)里拿到原料,生产商品。中间会有半成品,半成品可以放在内存(小仓库)里。

以这种方式,车间的生产速度就会提高。

参考图
在这里插入图片描述

2.3.3 输入输出设备

在这里插入图片描述
输入输出设备(IO设备),是数据处理系统的关键外部设备之一,可以和计算机本体进行交互使用。如:键盘、写字板、麦克风、音响、显示器等。因此输入输出设备起了人与机器之间进行联系的作用。

你可以找到更多关于输入输出设备的信息here.

2.3.4 其他设备(略)

2.3.4.1 主板

在这里插入图片描述

2.3.4.2 总线

四小节中的结构在小型计算机中沿用了多年,并也用在早期的IBM PC中。但是随着处理器和存储器速度越来越快,单总线很难处理总线的交通流量了,于是出现了下图的多总线模式,他们处理I/O设备及cpu到存储器的速度都更快。

北桥即PCI桥:连接高速设备

南桥即ISA桥:连接慢速设备
在这里插入图片描述

2.3.4.3 显卡

在这里插入图片描述

2.3.4.4 网卡

2.3.4.5 声卡

2.3.4.5 电源

2.4 计算机启动流程

在计算机的主板上有一个基本的输入输出程序(Basic Input Output system)

BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。

启动流程

1.计算机加电

2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

3.BIOS读取CMOS存储器中的参数,选择启动设备

4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

5.根据分区信息读入bootloader启动装载模块,启动操作系统

6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

2.5 附录及参考资料


  1. 运算器:实现算术运算和逻辑运算的部件。 ↩︎

  2. 控制器:计算机的指挥系统。控制器通过地址访问存储器,从存储器中取出指令,经译码器分析后,根据指令分析结果产生相应的操作控制信号作用于其他部件,使得各部件在控制器控制下有条不紊地协调工作。 ↩︎

  3. 存储器:是计算机用来存放所有数据和程序的记忆部件。它的基本功能是按指定的地址存(写)入或者取(读)出信息。 计算机中的存储器可分成两大类:一类是内存储器,简称内存或主存;另一类是外存储器(辅助存储器),简称外存或辅存。 存储器由若干个存储单元组成,每个存储单元都有一个地址,计算机通过地址对存储单元进行读写。一个存储器所包含的字节数称为存储容量,单位有B、KB、MB、GB、TB等。 ↩︎

  4. 输入设备:是向计算机中输入信息(程序、数据、声音、文字、图形、图像等)的设备。常见的输入设备有:键盘、鼠标、图形扫描仪、触摸屏、条形码输入器、光笔等。 外存储器也是一种输入设备。 ↩︎

  5. 输出设备:主要有显示器、打印机和绘图仪等。外存储器也当作一种输出设备。 ↩︎

发布了26 篇原创文章 · 获赞 8 · 访问量 7833

猜你喜欢

转载自blog.csdn.net/qq_35289736/article/details/100854698