欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

计算机硬件组成详解

程序员文章站 2022-05-12 13:24:18
一.CPU详解CUP的作用:程序员通过控制CPU, 由CPU这个组件下发指令来控制其他组件.1.CPU的分类与指令集1.1 指令集:把程序员控制cpu的指令, 转成CPU操作某个组件的指令.这些指令不会自行的运行, 由人类控制它才能运行1.2 CPU的分类精简指令集: 指令集简短, 能完成的事情非常简单.优点: 不容易错, 更稳定.缺点: 实现复杂操作的时候指令就会成堆.作用: 针对稳定的需求, 针对大型计算机架构的服务器就需要精简的指令集.例子: 网络设备, 服务器等....

一.CPU详解

CUP的作用:程序员通过控制CPU, 由CPU这个组件下发指令来控制其他组件.

1.CPU的分类与指令集

1.1 指令集:

把程序员控制cpu的指令, 转成CPU操作某个组件的指令.这些指令不会自行的运行, 由人类控制它才能运行

1.2 CPU的分类

  • 精简指令集: 指令集简短, 能完成的事情非常简单.

优点: 不容易错, 更稳定.
缺点: 实现复杂操作的时候指令就会成堆.
作用: 针对稳定的需求, 针对大型计算机架构的服务器就需要精简的指令集.
例子: 网络设备, 服务器等.
  • 复杂指令集: 单条指令比较复杂.

优点: 单条指令集完成的事情比较多, 完成复杂的事情只需要几条指令集.
缺点: 单条指令指令比较复杂,容易出错不稳定.
作用: 针对功能更丰富,更强大的服务或设备就需要复杂指令集.
例子: 个人电脑等.
  • 拓展知识

中国计算机硬件行cpu行业的落后,更多的是cpu精简指令集的开发,做上层的开发,尤其是涉及到硬件方面,是比较薄弱的。

2.x86 -64

2.1 (x86):

指的是CPU的型号, 或者是CPU架构的一种统称

  • x86的来历

最早的那颗Intel发明出来的CPU代号称为8086,后来在8086的基础上又开发出了80285、80386....,因此这种架构的CPU就被统称为x86架构了。 
由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人计算机上面,因此,个人计算机常被称为x86架构的计算机!
程序员开发出的软件最终都要翻译成cpu的指令集才能运行,因此软件的版本必须与cpu的架构契合.
举个例子,我们在MySQL官网下载软件MySQL时名字为:Windows(x86,32-bit),ZIP Archive 或者 (mysql-5.7.20-win32.zip)   
我们发现名字中有x86,这其实就是告诉我们:该软件应该运行在x86架构的计算机上。

2.2 (64):

​ cpu的位数,指的是cpu一次性能从内存中取出多少位二进制指令,64bit指的一次性能从内存中取出64位二进制指令。注意:CPU的取主要决定于内存一次性能给多少二进制指令。

  • 二进制的来历

内存基于电信号工作,人们定义高电频代表数字1,低电频代表数字0,0101之间高低电频的变化,就类比出了二进制。

2.3 CPU的向下兼容性:

​ x86-64的cpu既能运行64位的软件也能运行32位的软件。

64位的cpu读取提供32位指令集的内存,会在32位之前补全32个0。

3.内核态和用户态

  • 什么是内核态与用户态

CPU工作的两种状态, 就是CPU的运行状态,也叫计算机的运行状态
  • 为什么cpu要有这两种状态

避免代码进行潜在的危险操作,防止给操作系统带来隐患
  • CPU的 2 种指令集状态

    CPU是计算机系统最核心的硬件,而cpu的核心就是指令集,CPU有两种指令集状态:
    1://控制其他硬件的指令集, 
    2://运算相关的指令集
    
  • 内核态

    运行的程序是操作系统, 也就是操作系统当前工作的状态,也就是说当前状态下,cpu中所有的指令集开放(控制其他硬件的指令集 + 运算相关的指令集),可以操作硬件。(操作系统正在操控硬件)

  • 用户态

    运行的程序是应用程序,当前状态cpu中只开放运算相关的指令集,不能操作硬件。(应用程序正在运行)

  • 内核态与用户态的切换

    什么时候进行切换,应用程序的运行涉及到计算机硬件的操作,那就必须从用户态切换到内核态才能实现,因此计算机工作时频繁的发生内核态与用户态之间的转换。

4.多线程与多核芯片

  • 摩尔定律(moore)

摩尔(moore)定律指出, 计算机芯片的晶体管数量每18个月翻一倍, 现在已经不太确定了
  • 2 核 4 线程

2核代表有2个CPU,4线程指的是每个CPU都有2个线程,通常也叫假4核。
  • 4核8线程

4核代表有4个CPU,8线程指的是每个CPU都有2个线程,通常也叫假8核。

二.存储器

1.储存器结构:

  • 结构从上到下:cpu,寄存器,高速缓存,内存,硬盘,磁盘

  • 为了提高cpu读取数据的速度,所以在cpu与磁盘之间引入了内存,然后cpu从内存中读取数据其实也是慢的,所以之间加入的高速缓存,高速缓存还是不够块,又在cpu与高速缓存之间又增加了寄存器,这样一步一步提高cpu读取数据的速度。

计算机硬件组成详解

  • 寄存器: 使用cpu同等材质制造而成,在cpu内部集成,存着cpu运行下一步操作立马需要的指令.
  • 高速缓存:存放cpu经常使用的数据。cpu读取数据的时候,先从高数缓存中查看自己所需要的数据,如果有直接从高速缓存中取走,速度很快:2ns(这叫高速缓存命中),如果没有才跑到内存中找.

2.RAM

  • RAM 英文全称 random access memory,又叫随机存取存储器。
  • 可存可取内存,断电数据丢失,就是我们通常所说的内存

拓展:

linux系统会把内存分为两种区域:
1.buffer:缓冲区, 攒一大波数据,在刷入硬盘
2.cache:缓存, 把硬盘的数据在内存中缓存好, CPU取得时候可以直接从内存中取.

ps:buffer与cache的区别是什么?

1.写入数据到内存, 这个数据的内存空间称为缓冲区(buffer),写入到内存buffer缓冲区, 写缓冲.
2.从内存读取数据, 这个存数据的内存空间称为缓存区(cache), 从内存cache读取缓存区, 度缓存.

3.ROM

  • ROM英文全称ready only memory又叫只读存储器。
  • 只读内存,出产自带。为了保证安全性计算机产商出产就往ROM中写死一段核心程序。这段核心程序叫BIOS(BIOS英文全称basic input output system,又叫基本输入输出操作系统),保证计算机在没有任何高级操作系统的前提下,计算机可以正常启动。

4.CMOS

  • 存放BIOS程序产生的数据, 比如: 启动设备的优先级等
在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。
有时人们会把CMOSBIOS混称,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。
  • 优点: 耗电量极低, 主板电池为时钟芯片供电, 时钟芯片存放在CMOS中.
  • 缺点: 数据容易丢失, 断电数据丢失
  • 拓展: 主板电池使用寿命为3~5年

5.机械硬盘

  • 什么是机械硬盘

    机械硬盘依赖于机械的运动, 盘片基于磁信号, 所以也称之为磁盘. 
    高磁信号代表:二进制 1
    低磁信号代表:二进制 0 
    

计算机硬件组成详解

  • 磁头

    负责读写数据

  • 磁道

    磁盘的数据, 对应的一串二进制, 图中的圈圈就是,一圈圈的.

    //单位换算:
    小写 b 代表着比特位
    大写 B 代表字节
    8bit(比特位) = 1Bytes(字节)
    1024Bytes = 1KBytes
    1024KBytes = 1MBytes
    1024MBytes = 1GBytes
    1024GBytes = 1TBytes
    1024TBytes = 1PBytes
    

    拓展: 对应产商的硬盘存储单位1000表示为一个单位, 例: 200G = 200*1000*1000B

  • 扇区

    1. 一个扇区 = 512Bytes, 硬盘的一次性读写数据的最小单位就是一个扇区

    2. 由扇区拓展出操作系统的1次性读写单位:操作系统的1次性读写的单位是1个block块1个blcok = 8个扇区的大小,也就是4K。操作系统攒够了block块的容量才交给硬盘,以此来减少与硬盘打交道的次数,从而减少IO次数。

      buffer缓冲区--->大卡车
      操作系统的block块--->收纳箱
      硬盘的扇区--->单个快递盒子
      
    3. block块大小可以自定义,默认1个block等于8个扇区大小

  • 柱面

    1. 如图中所示, 所有的盘片上下形成的一个整体
    2. 磁盘的分区概念: 从第一个柱面开始, 到第二个柱面结束, 下面所有的范围看做一个整体,就是一个磁盘分区

注意:每个磁道上的扇区数量相同,磁盘上的磁道长度确实是长度不同,内圈的磁道短,越往外磁道的长短越长,但存贮资料时不是按磁道来存贮的,而是按扇区来存贮的,因此每圈磁道的容量是相同的!

7.IO延迟

  • 定义

1. IO延迟 = 平均寻道时间 + 平均延迟时间(一般为9ms)
2. 例子:假设当前硬盘转轴(盘片)转速是7200/min,也就是120/s,那么转一圈需要花费1/120≈8ms,半圈也就是4ms(假设找到数据要半圈)
  • 平均寻道时间

机械手臂从一个柱面随即移动到相邻的柱面的时间成为寻道时间。
找到了磁道就以为找到了数据所在的那个圈圈,但是还不知道数据具体在这个圈圈的具体位置。
所以机械手臂移动柱面的时间,就叫平均寻道时间。
目前受限于物理工艺水平目前机械硬盘可以达到得是5ms
  • 平均延迟时间

1. 机械手臂到达正确的磁道之后还必须等待旋转到数据所在的扇区,这段时间就叫平均延迟时间。 
2.基于上面例子,转半圈需要花费4ms,受限于硬盘得转速
  • 硬盘读写慢的原因

1. 由上述可知,硬盘主要是慢在找数据得过程,读数据是很快得过程。因此想优化程序运行效率,就要让程序减少与硬盘打交道的过程,数据能从内存取,就不要从硬盘取。
2. 文件读写就是与硬盘打交道的过程,因此要减少文件的读写操作.
3. 文件是操作系统给人提供操作硬盘的虚拟单位

7.固态硬盘

  • 固态硬盘基于电工作,取代了机械硬盘容易损坏的缺点
  • 使用的是物理元件, 闪存芯片

8.虚拟内存

  • 当内存不够用的时候, 在硬盘上划出一块空间, 这个空间就叫虚拟内存.
  • linux系统中的 swap 分区就是虚拟内存.
  • 作用: 当内存不够用的时候, 保证程序的正常运行.

9.磁带

  • 一般用于备份, 价格低, 容量大, 便于携带

三.操作系统的启动流程

1.未安装高级操作系统时的硬件

  • CPU
  • ROM: 充当内存, 存放BIOS系统, BIOS能保证没有安装高级操作系统的情况下,正常启动.
  • CMOS: 充当硬盘, 存放BIOS程序产生的数据

2.安装高级操作系统后的硬件

  • CPU
  • RAM: 开机之后, 操作系统就加载到内存.
  • 本地硬盘: 分区, 启动盘(一般是C盘)存放操作系统.

3.启动流程

  • 计算机通电
  • 优先加载BIOS, 硬件自检: CPU, 内存, 硬盘等.
  • BIOS读取CMOS存储器中的参数, 选择启动设备
  • 从启动设备上(也就是即将安装的操作系统)读取第一个扇区的内容(称之为主引导记录MBR).
MBR主引导记录:MBR主引导记录共512字节
1.446字节:boot loader-->grub程序
2.64字节为分区信息
3.最后2字节为标志位。
  • grub程序负责将操作系统内核装载入内存,启动正真意义上的操作系统。
该分区信息指的就是上面所读取第一个扇区内容得后64个字节的分区信息.
  • 然后正真意义上的操作系统询问BIOS,以获取配置信息。对于每种设备,操作系统会检查其设备驱动程序是否存在,如果没有,操作系统会要求用户安装设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核,完成了BIOS与操作系统的交接,获取了控制所有硬件的最高权限。

通过BIOS重置密码:https://www.cnblogs.com/songhaixing/p/13650755.html

四.总线

计算机硬件组成详解

  1. 计算机所有组成部分就是硬件, 他们都集成在一块板子上,这个板子就是主板, 而总线就是组件与组件之间来回传输数据的桥梁.
  2. 北桥(PCI桥): 负责连接CPU与内存, 图中可以看出北桥连接的都是高速硬件.
  3. 南桥(ISA桥): 负责连接SCSI(硬盘的一种接口), USB(外部设备的一些接口), 图中可以看出板桥连接的都是慢速设备.

五.网线

  • 常用线序:橙白, 橙, 绿白, 蓝, 蓝白, 绿, 棕白, 棕

  • 千兆网卡–>双绞线

  • 万兆网卡–>光纤

本文地址:https://blog.csdn.net/songhaixing2/article/details/109005470