计算机基础知识
程序与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存又被称为主存,其作用是存放CPU中的运算数据以及与硬盘等外部储存设备交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到主存中进行运算,当运算完成后,CPU再将结果传送出来,主存的运行也决定着计算机的稳定运行在内部存储着一些电信号而这些电信号通过总线来与cpu相互连接,cpu将内存内部的1/0读出来之后做内部的一系列计
目录
计算机的结构
图示
软件执行过程(QQ为例)
QQ程序一般情况下静静的躺在硬盘,当他开始要运行的时候会从硬盘Load到内存,此时QQ程序换一个名字叫QQ进程,一个程序可以对应2个进程,程序开始运行时,他会找到主线程的第一句话(也就是通常所说的main方法),如果需要数据,则把数据放到CPU里,然后CPU将计算的结果写回来,循环往复,直到程序结束为止。
CPU
CPU(central processing unit):中央处理单元,计算机的大脑 ,CPU的核心是从程序或者应用程序获取指令并执行计算。此过程可以分为3个关键阶段:提取,解码和执行。CPU从系统的主存中提取指令,然后解码该指令的实际内容,然后由CPU相关部分执行该指令。
CPU的基本组成
- PC(program counter):程序计数器,记录当前指令的内存地址(执行完一条指令之后他会切换到下一条指令地址)。
- Register:寄存器,暂时存储cpu计算需要用到的数据(一个cpu有多个寄存器其访问速度是内存速度的100倍)。
- ALU(aluminum logical unit):算数逻辑单元,CPU内部用来做计算的单元。
- CU(control unit):控制单元,从内存中取指令并解码执行
- MMU(memory management unit):内存管理单元
- Cache:缓存,CPU中有一级、二级、三级缓存
注意:
- cpu有许多针脚,其在连上主板之后每个针脚就能一次性的接收一个电信号,因为cpu有许多针脚,所以cpu一次可以读到许多的1和0(从硬件上讲就是给每个针脚通电/不通电)
- 影响CPU性能的主要参数:频率、核心数量、架构、缓存。
CPU的频率
含义:CPU频率就是CPU的时钟频率,是指CPU在运算时的工作频率,单位是Hz,CPU频率决定计算机的运行速度。
- 主频:CPU内数字脉冲信号震荡的频率(电脑正常使用时的频率;CPU主频=1/CPU时钟周期)
- 睿频:电脑处理多任务或者大型任务时,CPU能达到的最高工作频率。注意,在主板等其它硬件配合下,不需要人工干预,在处理繁重任务时,自动就能实现睿拼加速。
- 超频:人为提高CPU的外频或倍频,使之运行频率得到大幅提升,即CPU超频。
注意:
- cpu工作中时钟发生器(主板上的一块芯片)不断的通断电来推动cpu一步一步的计算
- CPU的时钟周期:每一个脉冲信号的时间,通常以ms,ns为单位
CPU的核心和线程
核心:CPU的核心就是CPU的运算单元,一个CPU有多少个核心就有多少个运算单元
cpu的进程与线程
- 进程:程序分配资源的基本单位
- 线程:是进程的最小单位,每个进程中会有一个主线程来控制其他线程。
注意:
- CPU的一个核心可以有一个线程,也可以有多个线程,通常称一个核心有多线程的技术称为超线程技术。
- 超线程的技术的出现使CPU有更好的多任务处理能力,极大的提高了CPU核心的利用率。
超线程原理
一个ALU对应多个寄存器
CPU的缓存
前言
为了提高CPU与内存之间的沟通效率,CPU内部就集成了cache存储器,我们常见的CPU一般有3级缓存,一级缓存速度最快,若CPU在这里找不到想要的数据,那么就要去速度较慢的二级缓存中查,若二级缓存中也没有想要的数据那么就回去三级缓存中查找,若三级缓存中还没有,那么就需要去内存和硬盘之中去查找。
注意:
- 从CPU一级缓存到内存,容量越来越大,但是速度越来越慢。
- 三级缓存的容量越大CPU的理论性能也就越高
缓存级别
注意:CPU中可以有多个核,也叫多核CPU,每个核可以单独跑一个线程
就拿下面的二核CPU举例
这里CPU的2个核心共用一个3级缓存,如果某个服务器有多个CPU的话,则多个CPU共享一个主内存。今,内存中有个x,现在要把他放到寄存器里,让CPU去做计算,首先去L1找,没有则去L2找,还没有去L3找,都没有则去内存找,找到后,分别向L3、L2、L1(注意顺序)中缓存x值以便下次使用,然后将x放到寄存器开始做计算,下次再找x直接从缓存中取就可以了。(注意CPU取x的时候顺便连x旁边的数据也取了【缓存行】,提高效率)。
缓存行:缓存用来管理数据的最基本单位。目前采用缓存行的大小为64bytes(最大64bytes)
缓存一致性
- 当一个电脑中cpu有多个核时一个核想从内存中取x进行更改,而另一个核想从内存中取y进行更改,而x和y都在一个缓存行中,此时cpu内部会有一种通信机制来保证缓存的一致性。
- 对于缓存一致性,不同的cpu有不同的协议来保证缓存一致性(维护缓存一致性也需要时间)
- 缓存行对齐原理:缓存行最大64bytes。
- 同一个缓存行会出现和其他核共享数据的情况(就是cpu的多个核共享一个缓存行)
内存条
前言
内存:程序与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存又被称为主存,其作用是存放CPU中的运算数据以及与硬盘等外部储存设备交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到主存中进行运算,当运算完成后,CPU再将结果传送出来,主存的运行也决定着计算机的稳定运行
内存的本质:在内部存储着一些电信号。而这些电信号通过总线来与cpu相互连接,cpu将内存内部的1/0读出来之后做内部的一系列计算,此计算的过程需要时钟发生器来完成通电与断电,推动cpu。(对计算机进行输入就是告知计算机哪个针脚该通电,那个针脚该断电)
注意:内存又称易失性存储器,直白的讲,内存断点后存储的数据将会全部消失,所以我们常用的软件需要安装在硬盘等外部设备中,而打开游戏或软件时需要把他们调入到内存中运行
举例:
- 我们可以将电脑当作一个书房,存放书籍的书架就相当于硬盘,而我们工作的办公桌就相当于内存,我们可以在办公桌上很快找到文件资料而从书架上查找文件则需要很久很久,所以内存的速度远高于硬盘。
- 内存条可以说是CPU与硬盘之间的一个中转站,当我们打开应用或软件的时候,硬盘会把需要用到的数据送入内存条,当数据被送到内存中之后,CPU就开始和速度更快的内存条来进行数据交换了,由于内存条的速度足够的快,所以在玩游戏或使用软件的时候就不会像游戏启动时这么慢了
内存版本
总结:每个版本的迭代,内存的工作电压都在降低,但是内存频率和内存时序都在不断增加。
内存容量
注意:若内存的容量不足,那么CPU与内存之间的交互就会存在一定的限制,从而影响电脑的运行速度
内存频率
含义:内存频率是衡量内存速度的重要指标,以MHz为单位,内存频率越高当然电脑性能也就越好(以显卡频率为例进行对照理解)
注意:
- 内存条的速度是由内存的频率决定的
- 其实内存条本身是没有频率的,我们所说的内存频率其实是CPU对内存条访问的频率,CPU每访问一次就会带来或带走一些数据,每秒访问的次数越多,单位时间里产生的数据量也就越多(也可以说成是内存条的读写速度就越快)
内存时序
含义:内存时序是描述同步动态随机存取存储器(SDRAM)性能的四个参数:CL、TRCD、TRP和TRAS,单位为时钟周期。
内存时序4个数字对应的参数分别为CL、tRCD、tRP、tRAS,单位都是时间周期,也就是一个没有单位的纯数字。
- CL(CAS Latency):列地址访问的延迟时间,是时序中最重要的参数
- tRCD(RAS to CAS Delay):内存行地址传输到列地址的延迟时间
- tRP(RAS Precharge Time):内存行地址选通脉冲预充电时间
- tRAS(RAS Active Time):行地址激活的时间
注意:内存时序越低,内存的延迟也就越低,低时序也就意味着内存颗粒的体质更好,进而超频的潜力也就越大
以2400Mhz的内存条为例
CPU去内存中拿数据了,到内存后要精确的从货架上找到这个要拿的货物并且拿到手中的这个时间就是数据的延迟以nm作为单位,在CPU完成了2400次的取货操作之后把这2400次取货延迟全部相加,得出的总延迟就是时序,所以随着内存条频率的增加,时序也变得越来越大。
内存的延迟=时序CL×2000÷内存频率
内存的双通道
理解:内存通过内存插槽与主板相连,同时通过主板上的两个内存通道与CPU通信,左边的两个内存槽共享一组内存通道,右边的共享另一组通道,内存的双通道就是将多个内存插入不同的通道。
注意:
- 它能使内存的带宽提升一倍,不过实际性能不会提升太多
- 他能使内存的容量得到一定的提升
- 若主板有两根内存插槽,那么直接插满两根内存就会组成双通道,若主板有4根内存插槽,那么1,2槽位为一个通道,3,4槽位为第二个通道,但通常习惯将2,4插槽作为双通道来插入两个内存
- 若一根4g和一根8g的内存也可以组成上通道,这种叫做非对称双通道;4g内存和8g内存的前半部分组成8g双通道,后半部分组成4g单通道
- 不同频率的内存条也可以组成双通道,但是内存频率会自动向下兼容。
- 不同代的内存条不能组成双通道
主板
前言:主板是计算机的重要部件之一,在计算机中扮演着举足轻重的角色,我们可以把主板比作人类的骨骼,他连接着身体的各个部位组织与器官,我们所熟悉的CPU、显卡、内存、硬盘之类的配件都需要用主板来连接。
主板作用:连接各个元器件,提供各种接口、插槽等。
主板元器件:北桥芯片、南桥芯片、bios芯片、总线等
注意:主板是一个有着各种各样有时候多大数十或者上百个插槽的配件,我们的CPU要插在主板上,内存也要插在主板上。主板的芯片组和总线解决了CPU和内存之间如何通信的问题,芯片组控制了信息传输的流转,总线则是数据传输的高速公路,因此,总线速度决定了数据能传输的多快
主板芯片
北桥芯片:主板芯片组中最重要的一块芯片(主要负责CPU与内存之间的数据交换),电脑中的CPU、内存、显卡都由北桥芯片控制,因此,北桥芯片的优劣在一定程度上决定了主板的性能。由于北桥芯片处理的数据较多,为降低工作时散发的热量,一般会在其上方安装散热片
南桥芯片:主板的第二大芯片,南桥芯片控制输入/输出设备和外部设备,如USB设备、IDE设备、SATA设备、音频控制器、键盘控制器、实时时钟控制器和高级电源管理等设备。
biso芯片:是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
bios电池
介绍:bios电池是一个纽扣电池,全称为CR2032锂锰电池,是一种典型的锂金属电池。
bios电池作用
- bios电池主要作为CMOS RAM存储器(bios)的电源,在电脑主板中bios是不可或缺的,它存储着电脑主板中的基本信息如硬件配置、启动选项等;然而这些信息并不是永久存储在主板中的,他们需要一个稳定的电源来供电,以保证bios基本配置不被改变
- 主板bios内也是有时间的,bios电池的另一个作用是提供实时时钟所需的电源,实时时钟是电脑中用于追踪时间的组件,它能够在电脑关机时继续运行,通过使用bios电池提供的电力,实时时钟可以准确的电脑系统的时间信息
硬件驱动
含义:驱动是指驱动计算机里软件的程序。驱动程序全称设备驱动程序,是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。此信息能够使计算机与相应的设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。
理解: 驱动好比操作系统与硬件之间的中介,操作系统通过驱动程序来控制硬件,若没有驱动程序,那么硬件就无法工作
注意:
- 操作系统本身自带一部分通用的兼容性驱动,在安装了操作系统之后电脑才能够勉强运行,若驱动程序没装好,或者与硬件不匹配,则硬件的性能就不能完全发挥出来
- CPU与内存的驱动并不需要自己来安装这是主板的bios能够直接支持的硬件,他们的驱动主要存放在主板上bios的芯片中,并且在开机过程中完成cpu和内存的初始化
- 操作系统是一个软件,其位数是可以控制的,64位可以向下支持32位反之不能,所说的位数是针对cpu,64位指的是这个cpu一次性可以读取64个数字(0/1)
协议和总线
协议
含义:电脑内部的一种规矩,它规定了两个设备通讯时如何识别对方、如何建立连接、使用的讯号类型、数据的编码和解码方式、数据传输的类型、数据传输的方式以及物理层面上的电压电流保持和截止时间等等规定,两个设备只有协议完全一样或者相容,他们之间才能够进行通讯
举例:假设A与B元器件之间有一根电路,可以通电和断电,若我们不做任何的规定和约束,那么这个总线除了可以通电和断电之外就无法实现任何的功能,若我们规定一秒为10个周期通电为1、断电为0;那么A只需要通过大量的通电和断电就可以将想发送的信息以每秒10bit的速度向B传输数据;而这个一秒为10个周期,通电代表1,断电代表0这个规定就是A和B之间的通信协议。
理解:协议就是一种双方提前约定好采用某种形式以某种规格利用某种物体把数据传输出去,而另一方再以同样的规则和流程去接受数据的约定制度或者规章。
总线
前言
早期计算机外部设备少时大多采用分散连接方式,不易实现随时增减外部设备。为了更好的解决IO设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接
总线:一组能为多个部件分时,共享的公共信息传送线路
分时与共享
- 共享:总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享
- 分时:同一时刻只允许有一个部件向总线发送信息,若系统中有多个部件,则他们只能分时地向总线发送信息
总线的分类
按数据传输格式分
理解:
- 串行总线的数据是一个一个的发送,并行总线的数据是一组一组的发送
- 串行总线的传输速度快,并行总线的传输速度慢
按总线的功能来分类
- 片内总线:片内总线是芯片内部的总线。他是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连线
- 系统总线:系统总线是计算机系统内各功能部件(CPU、主存、IO接口)之间互相连线的总线(数据总线,地址总线[单向],控制总线)
- 通信总线:通信总线用来连接计算机系统之间,或计算机系统与其他系统(如远程通信设备、测试设备)之间信息传送的总线,其也称为外部总线(网线)
总结
- 无论是什么线路,他都是基于目前的物理准则之上的
- 总线也具有一定的承载能力,如不同总线使用协议不一样,传输速度不一样。
- 总线在单位时间内能传输的数据量被我们称之为总线的带宽
显卡
前言
含义:显卡又称显示卡,是电脑中一个很重要的组成部分,承担处理图像的任务,也就是说你在打游戏时的每一帧画面都是由显卡画出来的。
注意:显卡就类似于一个微型计算机
显卡核心(GPU)组成:运算单元、控制单元、缓存单元
显卡的作用:将CPU发送过来的二进制数据翻译成显卡可以了解的格式然后再发送到显示器上来显示图像。
显卡的组成及各部件的作用
显卡的组成:PCB、显存、金手指、供电、接口、散热、GPU核心等组成
显卡各部件的作用
- PCB板:用来连接各个设备
- 显存:用于存储每个像素的数据、颜色及在屏幕上的位置,也会存储一些已完成却未显示的画面
- 金手指:和主板进行连接的部分,用于传输数据并可以提供供电
- 接口:用来连接显示器
- 散热:用来给GPU核心以及显存降温
- GPU:用于处理复杂的数学和几何运算并处理每个像素
显卡的各个参数
- 流处理器:流处理器就是GPU核心(类似于CPU的核心)
- 架构:决定了流处理器的工作效果
- 核心频率:决定了就处理器的工作速度(类似于CPU的频率)
- 显存:用于存储每个像素的数据、颜色及在屏幕上的位置,也会存储一些已完成却未显示的画面(类似于内存)
- 显存位宽:每秒传输的数据量
- 显存频率:每秒运输数据的次数(类似于内存频率)
举例:
- 流处理器可以理解为给显示器作画的画师,画师的数量越多,显卡的性能也就越强
- 架构可以理解为(流处理器)画师绘画的技术,架构越新,显卡的性能越强
- 核心频率可以理解为画师作画的速度,核心频率越高,显卡的性能越强
- 画师做的画都放入一个具体的画室,显存可以理解为画室的大小(画师会把来不及展示的画暂时存放在显存中)
- 显存位宽可以理解为画师画好画后每秒传输画面的数量
- 显存频率:每秒运输画面的次数
硬盘
前言
含义:计算机存放数据的部分
划分:固态硬盘、机械硬盘
- 机械硬盘:容量大、价格便宜、速度很慢
- 固态硬盘:容量大、价格适中、速度略快
注意:硬盘想要和其他电脑元器件交互数据,那么就一定需要数据协议作为沟通、传输总线作为媒介,除此之外还需要物理接口让硬盘能够接入
硬盘协议、总线与接口关系
注意:这里面协议、总线和接口都能限制一个硬盘的发挥
sata总线
pcie总线
sas总线
组成固态硬盘的基本结构
固态硬盘工作原理:主控芯片控制着固态硬盘数据的读取和写入,写入数据时数据会经过主控处理随后被存放在NAND闪存颗粒中,读取数据时主控会从NAND的颗粒里找到数据,之后通过M.2接口和PCIE总线发送给计算机的其他配件。
注意:主控和闪存颗粒之间是DRAM缓存颗粒,里面存放着文件的逻辑(物理映射表-FTL表)
固态硬盘颗粒
注意:固态硬盘中存储数据的基本单元叫做浮栅晶体管(可以存储电子的结构,对于SLC颗粒每个浮栅晶体管,电子数量大于等于4时判定数据是0,电子的数量小于等于3时,判定为1),我们可以把浮栅晶体管比作停车场;其中·存储的数据看作车辆,SLC颗粒只能存放1bit数据,也就是占据1个车位,只能存放0、1;MLC可以存放2bit数据,也就是占据2个车位,可以存放00、01、10、11;而TLC和QLC分别存放3bit、4bit数据分别占据3个、4个车位。SLC停车场内只有1辆车,主控可以精确的找到车辆存放的位置,而MLC、TLC、QLC的停车位数量不断叠加,尤其是QLC颗粒,需要花很长的时间找到车辆,这样就大幅度降低了固态硬盘的性能,闪存单元每次编辑或擦除的电子穿越过程中都会导致硅氧化物的损耗。简单来说:SLC的电压状态最少,而QLC的电压状态最多,所以SLC的寿命最长,而QLC的寿命最短。
总结:无论从读写性能以及使用寿命来讲:SLC>MLC>TLC>QLC
固态硬盘的缓存
- 动态随机存取储存器(DRAM)
- SLC模拟高速缓存(SLC Cache)
DRAM固态硬盘缓存作用
1.存放文件的FTL表
当我们需要存储数据的时候,就需要像浮栅晶体管内存放一定数量的电子。读取的时候就需要看那个房间内有多少个电子就可以了,这时候我们就会发现一个问题,浮栅晶体管数量庞大,若我们在写入数据的时候不记录下电子存放的位置,到时候再去读取这个数据的时候无异于大海捞针,所以,电脑申请向固态硬盘写入数据的时候主控会先根据情况挑选NAND颗粒里的一块区域,为了方便后续的读取,在写入数据的时候主控会记录下数据存放的位置。然后将这个位置信息保存成文件的FTL表,也就是逻辑到物理位置的映射表,进而存放在DRAM缓存颗粒中,下次再读取数据的时候就可以直接到DRAM缓存中查找文件的位置,然后直接到对应的区域读取即可。
2.缓解写放大
固态硬盘在写入数据之前必须要先擦除整个block区块,由于固态硬盘最小的写入单位是页,即便文件不足一页也会占据整个页,当所有的都占满后,下次要存放数据时就得把不足一页的数据先搬出来合并,擦除整个区块以后再写入,进而加速硬盘的寿命磨损,所以每次写入新数据之前部分主控会根据情况把待写入的数据先存放在DRAM缓存内,等存够一页后再写入进NAND颗粒内,长期使用后,部分被删除的数据也要释放页的空间,所以部分厂商也会利用DRAM缓存来做垃圾回收和磨损均衡等功能。
SLC Cache缓存
缓内速度和缓外速度
我们在对固态硬盘进行大文件的写入时,会发现在开头的一段时间内固态硬盘的速度还能维持到一个较高水平,但写入了部分数据以后,硬盘就开始出现了掉速的情况,开头这个较高的速度就被我们称为缓内速度,后面掉速的速度就被我们称为缓外速度
原因:SLC浮栅只有0、1两种状态,所以在擦写数据时只需要尽可能多的把电子赶出去,写入的时候只需要尽可能多的把电子吸入即可,但MLC和TLC他们每个晶体管内的电子状态较多,浮栅在擦写数据时就不能那么猛,得细微的调整电压,确保要存储的电子数量和存储的数据对应上,精确控制往往比粗略控制难度更高,最终结果就是TLC写入3bit的时间会比SLC写入1bit的时间长,此时我们若存储12bit数据,TLC会动用12个晶体管,SLC会动用12个晶体管。为了缓解TLC写入速度慢的问题,厂商们想到一个新的方法,由于浮栅晶体管本质上结构都是一样的,他到底是SLC还是MLC或TLC只是主控读写策略的改变,因此我们可以选择让一部分TLC固态硬盘的区域每次写入也只读写1bit数据,把他模拟成SLC使用这样我们写入数据的时候先往这一部分被模拟出来的SLC区域写入数据,速度就能维持在一个较高值了,等硬盘闲置下来后再把这部分缓存的数据写入到TLC内释放这部分缓存区域而这部分区域就被我们称之为SLC Cache,但是SLC Cache不能无限大。因为SLC Cache需要占用原本的TLC空间,所以该SLC Cache容量会随着我们硬盘占用空间的增多而减少,也就是说该硬盘所有的TLC都作为SLC用,那么可用的SLC容量为该硬盘总容量的1/3,超过这个容量的数据,主控只能硬往TLC区域写入数据,此时速度就会降下来。
网卡
含义及作用
含义:也叫网络适配器,网卡是计算机上网不可或缺的一部分,其在计算机网络中所处的位置是数据链路层与物理层,兼顾两层的功能。
网卡的作用:网卡实现的主要功能是物理层与数据链路层的功能,是数据的封装与解封、链路管理、编码与译码;网卡和计算机之间的通信是通过计算机主板上的I/O总线以并行传输方式进行,我们的网卡接入到网络后如果要通信,则需要给他配置ip地址。
注意:
- 每个网卡都具有一个身份标识(MAC地址),该MAC地址具有全球唯一性,储存在网卡的ROM中
- 网卡接收到一个帧,首先会进行差错校验,若校验通过则接收,否则丢弃
- wireshark抓到的帧没有FCS,因为它抓到的是差错校验通过的帧(帧尾部的FCS会被硬件去掉)同时wireshark也抓不到差错校验失败的帧。
网卡购买
注意
- AX210为AX200的升级版,AX211为AX201的升级版
- 其中这四个型号的统一参数——wifi规格有5G频段,支持160MHz带宽;都具有蓝牙功能;仅支持64位win10和win11系统
- AX200和AX210网卡平台的适用性和兼容性更强,由于AX201和AX211使用intel特有的CNVio2协议,只能在intel10代及以上CPU上使用(相当于intel将网卡一分为2,一部分集成在CPU中,一部分做成网卡模块,所以AX201和AX211不能算上完整的网卡)
- AX201和AX211相对于AX200和AX210的优势在于功耗和发热更低一点
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)