计算机硬件基础

本文详细介绍了CPU的基本概念、工作原理、内部结构,包括寄存器、程序计数器和标志寄存器的功能。同时,阐述了内存的作用、物理结构以及内存与CPU之间的交互。还涉及到了磁盘存储、磁盘缓存和虚拟内存的概念,揭示了数据在内存和磁盘间的流动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

CPU

什么是cpu

CPU的工作

CPU的内部结构

寄存器

程序计数器

标志寄存器

cpu执行指令过程

内存

什么是内存

内存的物理结构

内存的现实模型

磁盘

什么是磁盘

磁盘的物理结构

磁盘缓存

虚拟内存 


CPU

什么是cpu

cpu全称是Central Processing Unit, 翻译为中央处理单元,可以说是计算机最为核心的部件。它就像是人类的大脑,起到获取、处理指令等核心逻辑。cup由几十亿个晶体管组成,这些晶体管的多少决定着算力的大小。


CPU的工作

cpu的核心是从程序或者应用程序获取指令并执行计算。主要由三个阶段:提取指令、解码、执行。cpu从RAM(Random Access Memory -主存)中提取指令,然后解码指令的实际内从,由cpu的相关部分负责执行该指令。

CPU的内部结构

从功能上看cpu由:控制器、运算器、时钟、寄存器四部分组成,各个部分通过电信号通信。

  • 寄存器: 暂存指令、数据和地址,是内存的一种
  • 控制器: 将指令、数据从主存上读取到寄存器,根据指令结果控制计算机
  • 运算器: 读入寄存器的数据进行算数处理和逻辑运算
  • 时钟:发出cpu时钟信号

下面是java程序运行的大致流程,jvm虚拟机屏蔽了os的差异,将编译的成字节码文件翻译系统可以识别的机器码, 最后交由cpu执行。内存是程序和cpu临时存储介质。

 cpu主要由两个部分组成:

  • 控制单元:提取指令并解码执行
  • 算数逻辑单元(ALU)处理算数和逻辑运算

寄存器

cpu是寄存器的集合,一个cpu大概有几十个寄存器。将选取程序计数器标志寄存器,这两个比较重要的寄存器进行讲解,其他寄存器有兴趣的可以查阅相关资料。

程序计数器

程序计数器(Program Counter)是用来存储下一条指令所在单元的地址。

在程序执行时,pc初始值为程序的第一条指令。在顺序执行的程序时,控制器根据pc地址从内存中取出一条指令,然后分析、执行指令,同时将pc值加一指向下一条执行的指令。

下面是一个简单的例子,将a,b赋值,然后相加显示到显示器上。

程序计数器控制程序的流程。

int a =1,b=2;

System.out.println(a + b);

  

标志寄存器

cpu在进行计算的时候,标志寄存器会根据运算结果自动设定,运算结果正、负、零三种,分别由三个标志位表示。标志寄存器的第一、二、三位为1时,分别表示正数、0、负数。

cpu执行指令过程

cpu执行指令的过程可以分为5个部分:取指令、指令译码、执行指令、访问存储、结果回写

  • 取指令:将指令从内存读取到寄存器。
  • 指令译码:指令译码器按照预定的格式,对取出的指令进行拆分和解释,识别区分不同的指令和各种获取操作数的方式。
  • 执行指令:完成指令的具体操作,实现指令功能。
  • 访问存储:需要从主存中提数时,会根据指令地址得到操作数在主存的地址,然后从主存中读取操作数用做运算。
  • 结果回写:作为最后阶段,将前面阶段执行结果回写到存储介质:如cpu将结果回写到寄存器中,以便后续指令执行。

内存

什么是内存

内存(Memory)是计算机最重要的部件之一,是程序和cpu沟通的桥梁。计算机所有的程序都是运行在内存中的,内存通常又称为主存。内存的作用主要是存放cpu运行的数据,以及和硬盘等外部存储设备交换的数据。  

计算机在运行的中,cpu会将需要的数据存储到内存中进行运算,等运算完成之后将结果传送出来。

内存的物理结构

相信大家一定看过下面的图片,这是一个海力士的4G内存条。记得上大学的时候卖的32位笔记本,当时电脑内存是2G,后面玩游戏感觉卡,又去买了个2G的内存条,当时花了我两百多。现在pc内存一般都是64位16G以上了,开几个办公个软件就占用了10G的内存。

存储内部就是IC电路组成的,主要是三种存储器:

  • 随机存储器(ROM): 可以读写数据,掉电数据丢失;
  • 只读存储器(RAM): 只可以读取数据,掉电数据不会丢失;
  • 高速缓存(Cache):通常分为L1、L2、L3 Cache三级缓存,数字越大读写速度越慢越便宜,容量越大,L1 Cache 容量是多少KB,L2、L3Cache容量是多少MB。工作流程是:Cpu从cache中获取数据,没有数据再从主存中获取数据,然后主存缓存到cache中,cpu再次获取数据时直接从Cache中获取数据。

内存ic引脚的配置: 

 A0-A9是地址信号,D0-D7是数据信号,一次可以输入8bit = 1byte的数据,A0-A9地址信号可以表示0000 0000 00 -- 1111 1111 11共计2的10次方=1024个地址,每个地址存储1byte数据,那么整个ic可以存储1024*1byte=1kb的数据。实际情况下,一个内存的ic将会有更多的引脚可以存储更多的数据。

内存的现实模型

 如上图每层可以存储1byte数据,一共有1024层。

我们程序的数据不仅有数据数值,还有数据类型。按照数据类型,数据占据的层数不同。

下图中a是byte类型的数据,那么分配内存的时候地址是00000 00000,占用一层;short类型的b数据,大小是16位占用两个字节,所以分配的内存是连续的两层:00000 00001 00000 00002。

        byte a;
        short b;

磁盘

什么是磁盘

内存和磁盘都是存储设备,内存是通过电信号存储数据,磁盘是通过磁记录技术实现存储的。相比于内存高速、昂贵的存储设备,磁盘特点是速度较慢、价格低廉。内存的数据在电脑断电后会丢失,磁盘的数据会永久保存。内存是内存存储设备,磁盘是属于外部存储设备。

磁盘的物理结构

磁盘表面被磁道分为不同的同心圆,然后每个磁道被划分为若干,每段称作为扇区。扇区的大小一般是512个字节,一个扇区又称作为1簇,1簇可以是1kb、4kb、64kb。文件在存储到磁盘时最小单位是簇。

磁盘缓存

由于磁盘读取数据速度相对较慢,为了加快访问数据,设计了磁盘缓存。像从内存中读取数据缓存到高速缓存中一样,磁盘也有缓存。首次读取磁盘的数据时会缓存下来,接下来获取相同数据时就可以直接从缓存中获取数据,这样大大提高了读取速度。7200r/s磁盘的寻址速度是1/7200 = 0.14ms,而内存的寻址速度是ns级别的,两则速度相差了大概4、5个数量级。

下图是磁盘缓存逻辑图:

虚拟内存 

虚拟内存是内存和磁盘交互的第二个介质。

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知始行末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值