计算机基础之硬件

对于现在人来说,说到计算机大家都不陌生。一般台式机,大家可以直观看见的有显示器、键盘、鼠标、主机等。下面就说说硬件都有哪些吧?

计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。简言之,计算机硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包括CPU、内存、硬盘、主板、各种扩展卡、电源等;外部设备包括鼠标、键盘等。

1、CPU

中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的大脑。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

2、内存条

内存条是CPU可通过总线寻址,并进行读写操作的电脑部件。内存条在个人电脑历史上曾经是主内存的扩展。随着电脑软、硬件技术不断更新的要求,存条已成为读写内存的整体。我们通常所说电脑内存(RAM)的大小,即是指内存条的总容量内。RAM属易失性存储。

3、硬盘

硬盘是电脑主要的存储媒介之一(ROM),硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。ROM属非易失性存储。

硬盘中数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间。平均寻道时间,即机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置;机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。

4、主板

电脑机箱主板,又叫主机板(mainboard)、系统版(systemboard)或母板(motherboard);它分为商用主板和工业主板两种。它安装在机箱内,是微机最基本的也是最重要的部件之一。主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。

以上介绍的就是计算机硬件的一些情况,当然还有各种扩展卡、电源等都属于计算机硬件,我们就不一一列举了。好了,以上我们走马观花的大致了解了一下计算机的硬件,下面我们具体讲一下:

CPU(处理器)它从内存中去指令-->解码-->执行然后再取指-->解码-->执行下一条指令,周而复始,直至整个程序被执行完成。为了提高处理器的运算效率,处理器中有一个组成部分叫寄存器。那么,寄存器呢,它是有限存贮容量的高速存贮部件,可用来暂存指令、数据和地址。

寄存器又分为:数据寄存器,用来储存整数数字(参考浮点寄存器),在某些简单/旧的CPU里,特别的数据寄存器是累加器,作为数学计算之用;

地址寄存器,持有存储器地址,以及用来访问存储器,在某些简单/旧的CPU里,特别的地址寄存器是索引寄存器;

通用目的寄存器,可以保存数据或地址两者,也就是说它们二者是结合数据/地址寄存器的功用;

浮点寄存器,用来储存浮点数字;

常数寄存器,用来持有只读的数值;

向量寄存器,用来储存由向量处理器运行SIMD(Single Instruction,Multiple Data)指令所得到的的数据;

特殊目的寄存器,储存CPU内部的数据,像是程序计数器(或称为指令指针),堆栈寄存器,以及状态寄存器(或称微处理器状态字组);

指令寄存器,储存现在正在被运行的指令;

索引寄存器,在程序运行实用来更改运算对象地址之用;

程序状态字寄存器,程序状态寄存器PSW是计算机系统的核心部件——运算器的一部分,PSW用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,如有无进位(CY位),有无溢出(OV位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(P位)等;另一类是存放控制信息,如允许中断(IF位),跟踪标志(TF位)等。

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

对于处理器设计的演变,下面我从两幅图片来展示下。

下图就是超变量cpu,比流水线更加先进,有多个执行单元,可以同时负责不同的事情,比如看片的同时,听歌,打游戏。

除了在嵌入式系统中的非常简答的CPU之外,多数CPU都有两种模式,即内核态与用户态。通常,PSW中有一个二进制位控制这两种模式。那么,什么是内核态呢?内核态就是拥有资源多的状态,或者说访问资源多的状态,我们也称之为特权态。

相对来说,用户态就是非特权态,在此种状态下访问的资源将受到限制。如果一个程序运行在特权态,则该程序就可以访问计算机的任何资源,即它的资源访问权限不受限制。如果一个程序运行在用户态,则其资源需求将受到各种限制。

用户态和内核态的转换

1)用户态切换到内核态的3种方式

a. 系统调用

这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。

b. 异常

当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。

c. 外围设备的中断

当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。

2)具体的切换操作

从触发方式上看,可以认为存在前述3种不同的类型,但是从最终实际完成由用户态到内核态的切换操作上来说,涉及的关键步骤是完全一致的,没有任何区别,都相当于执行了一个中断响应的过程,因为系统调用实际上最终是中断机制实现的,而异常和中断的处理机制基本上也是一致的,关于它们的具体区别这里不再赘述。关于中断处理机制的细节和步骤这里也不做过多分析,涉及到由用户态切换到内核态的步骤主要包括:

a. 从当前进程的描述符中提取其内核栈的ss0及esp0信息。

b. 使用ss0和esp0指向的内核栈将当前进程的cs,eip,eflags,ss,esp信息保存起来,这个过程也完成了由用户栈到内核栈的切换过程,同时保存了被暂停执行的程序的下一条指令。

c. 将先前由中断向量检索得到的中断处理程序的cs,eip信息装入相应的寄存器,开始执行中断处理程序,这时就转到了内核态的程序执行了。

多线程,是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。

多核芯片(multicore chips)是指在一枚处理器(chip)中集成两个或多个完整的计算引擎(内核)。

以下就是两种处理器对比图

存储器

存储器工作速度由快到慢排列为:寄存器即L1缓存 > 高速缓存即L2缓存 > 内存(RAM) > 磁盘(ROM)> 磁带。

还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,但是当电池失效时,相关的配置和时间等都将丢失。

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。

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

I/O设备一般包括两个部分:设备控制器和设备本身。

控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

设备本身:有相对简单的接口且标准的,这样大家都可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

总线(Bus),是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

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

南桥即ISA桥:连接慢速设备

启动计算机

计算机按下开机键后,首先响应的就是BIOS(BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中)。BIOS开始运行,检测硬件:cpu、内存、硬盘等,并读取CMOS存储器中的参数,选择启动设备,读取系统所属扇区的内容。根据分区信息读入bootloader启动装载模块,启动操作系统。然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI。最后,恭喜你,计算机启动成功。

时间: 2025-01-20 22:55:09

计算机基础之硬件的相关文章

计算机基础知识-硬件

1.1 计算机硬件 从概念上讲,一台简单的个人计算机可以抽象为类似下图的模型,CPU.内存以及I/O设备都由一条系统总线(bus) 连接起来并通过总线与其他设备通信,现代计算机的结构更复杂,包括多重总线. I/O(input/output):读写 计算机的工作原理:CPU读取指令->运算指令->输出结果. CPU从内存中读取指令进行运算,内存又是从磁盘中加载数据,当CPU运算完毕,把结果返回给内存,内存把结果存储在磁盘中. 序 计算机的基础是硬件,从显示器到CPU都属于硬件,使用计算机本质上是

计算机基础学习--硬件和系统

1.编程语言的作用及与操作系统和硬件的关系: 编程语言是人与计算机直间的沟通桥梁,编程语言编写的程序必须运行在操作系统上,而操作系统是安装在硬件上的. 2.应用程序-->操作系统-->硬件: 三者之间的关系为:应用程序是安装在操作系统上使用的工具,操作系统是对硬件进行操作.应用程序要对硬件进行使用,要通过操作系统进行转达. 3.cpu-->内存-->磁盘 CPU类似人的大脑,用于计算. 内存类似人的记忆,临时存放 磁盘类似人的笔记,永久存放. 4.CPU与寄存器,内核态与用户态如何

计算机基础之硬件简介(Day2)

(一)操作系统 1.含义:协调,控制和管理计算机硬件系资源和软件资源的控制程序.位于计算机硬件和软件之间,本质上也是个软件程序,但不同于一般的软件. 2.组成:2部分.由操作系统的内核和系统调用2部分组成.操作系统的内核,运行于内核态,管理硬件资源:系统调用,运行于用户态,为软件应用程序提供系统调用接口. 3.作用:一是为软件程序提供接口即系统调用:二是将应用程序对计算机硬件资源的竞态请求有序化即有序合理分配硬件资源. 4.特点(与一般软件程序比较):大型(linux或windows的源代码有五

计算机基础part1

一:计算机的基本组成 1.计算机由输入单元.控制单元.算法逻辑单元.输出单元.存储单元,五大单元组成 二:概念篇 CPU:中央处理器,其内含有指令集(取码-解码-执行的过程) CPU同一时刻只能干一件事情,从内存取出指令码解码执行. 硬盘:用于存储信息.分为机械式磁盘(基于磁)和固态硬盘(基于电). 寄存器:因CPU运行速度快,而内存速度慢,未充分利用CPU效率而产生的,其空间小于内存,一般采用CPU材质.位于CPU内, 所有CPU内部都有一些用来保存关键变量和临时数据的寄存器. 虚拟内存:许多

计算机基础知识:硬件

目录 一.为什么要学习计算机基础 二.本文目标 三.计算机的发展历史四.计算机硬件介绍4.1CPU处理器4.2存储器 4.3磁盘 4.4磁带          4.5总线         4.6启动计算机 一.为什么要学习计算机基础 计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备. 程序自动化:可以将预先编好的程序组纳入计算机内存,在程序控制下,计算

计算机基础——硬件

硬件 作为一名即将统治世界的程序员,我们可以用我们指间的力量改变世界,但总而言之也要懂一些底层的东西嘛. 程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质 程序员要想让计算机工作,必须知道计算机能干什么,怎么干的,这也就是我们必须学习计算机基础的原因. 一套完整的计算机系统分为:计算机硬件,操作系统,软件(程序员开发的就是软件),如下图.因而我们的python编程之路分为计算机硬件基础,操作系统基础,和python编程三部分,就让我们先从计算机硬件学起吧! 好了不说废话

Python学习第一天----计算机基础

一.学习计算机基础的目的 再高级的编程语言都是运行在操作系统之上的,而操作系统又是运行在硬件基础之上.所以在开始学习编程之前需要深刻的了解并熟知计算机的基础知识.包括硬件基础及操作系统基础. 二.计算机硬件发展史 计算机的定义:是现代用于高速计算的一种电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能. 发展史: 原型或者说灵感起源于中国 1946年2月14日情人节这天,世界上第一台电子计算机"电子数字积分计算机ENIAC"在美国宾夕法尼亚大学问世. 电子管时代--

计算机基础和操作系统基础小结

一.计算机基础 冯.诺依曼体系: 输入设备.存储器.运算器.控制器.输出设备 冯.诺依曼体系结构是现代计算机的基础,因此被称为计算机之父. 2.计算机发展及应用: 1)第一台计算机1946年诞生于美国,名为ENIAC.重30顿,主要用于计算弹道和氢弹的研制. 2)第一代:电子管计算机,主要采用电子管原件做基本器件.体积大.耗电量大.速度慢.维护困难.价格昂贵.在软件上,通常使用机器语言和汇编语言来编写应用程序.主要用于科学计算. 3)第二代:晶体管计算机.50年代晶体管的出现使计算机生产技术得到

magedu第一天学习(计算机基础部分)

第一部分 1.计算机系统的组成部分 计算机系统是由硬件系统和软件系统组成的. 2.计算机的发展史 1946年第一台计算机ENIAC在美国宾州大学诞生. 电子管时代--->晶体管时代--->集成电路时代--->大规模集成电路时代 3.计算机都遵循冯诺依曼体系结构 运算器.控制器集中在CPU里面(central processing unit) 存储器.输入设备.输出设备 特性:使用二进制 4.摩尔定律 当价格不变时,集成电路上可容纳的元器件的数目,在18-24个月后便会增加一倍,相应的性能