JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)

目录

冯诺依曼体系(Von Neumann Architecture)

CPU

CPU基本原理:

如何衡量CPU的好坏?

1、主频(时钟速度):

2、核心数:

指令

操作系统

操作系统“内核”


冯诺依曼体系(Von Neumann Architecture)

冯·诺伊曼体系(Von Neumann Architecture),也称为存储程序计算机或冯·诺伊曼结构,是一种计算机架构和设计原则,于20世纪40年代由匈牙利数学家和计算机科学家约翰·冯·诺伊曼(John von Neumann)提出。这种体系结构成为了现代计算机体系结构的基础,它在计算机硬件和软件的设计中起到了关键作用。

一台计算机是如何组成的?

1. 中央处理器(CPU):
   - CPU 是冯·诺伊曼体系中的核心部分,负责执行计算机程序的指令。它包括算术逻辑单元(ALU)和控制单元(Control Unit)。
   - ALU 执行算术和逻辑运算,控制单元负责指令的解码和执行。

2. 存储器(Memory):
   - 存储器用于存储程序和数据。冯·诺伊曼体系中的存储器是统一的,即程序指令和数据都存储在同一内存中。
   - 存储器分为主存储器(RAM,Random Access Memory)和辅助存储器(通常是硬盘或固态硬盘),主存储器用于临时存储程序和数据,而辅助存储器用于长期存储和备份。具体来说:

  1. 内存(主存储器):内存是计算机中的主要临时存储设备,用于存储正在运行的程序和数据。它是冯·诺伊曼体系中的一部分,用于存储程序指令和处理数据。内存是非常快速的,但它是易失性存储器,意味着当计算机断电时,存储在内存中的数据会丢失。

  2. 外存储器(辅助存储器):外存储器用于长期存储数据和程序,通常包括硬盘驱动器、固态硬盘、光盘、闪存驱动器等。外存储器的特点是容量大且数据持久存储,即使计算机断电,数据也不会丢失。然而,与内存相比,外存储器的访问速度较慢。

  3. 由此,我们可以对内存和外存进行比较:

    内存 速度快 空间小 成本高 掉电后数据丢失
    外存 速度慢 空间大 成本低  掉电后数据步不丢失

3. 控制单元(Control Unit):
   - 控制单元负责解释和执行存储在内存中的程序指令。它从主存储器中获取指令,解码指令并发出相应的操作,控制CPU的操作。
   - 控制单元还负责协调CPU、存储器和输入/输出设备之间的数据传输。

4. 输入/输出设备(I/O Devices):
   - 输入/输出设备允许计算机与外部世界交互,包括键盘、显示器、鼠标、打印机、硬盘驱动器等。
   - 这些设备通过输入和输出端口与计算机连接,允许数据的输入和输出。

5. 系统总线(System Bus):
   - 系统总线是连接CPU、存储器和输入/输出设备的通信通道。它传输数据、地址和控制信号。
   - 系统总线通常分为数据总线、地址总线和控制总线。

特点和工作原理:

  • 冯·诺伊曼体系的关键特点是程序存储和数据存储的统一性。程序指令和数据都以二进制形式存储在内存中,CPU能够根据需要将程序指令加载到控制单元,执行程序,并将结果存储回内存。
  • 冯·诺伊曼体系支持存储程序的概念,这意味着计算机可以存储和执行不同的程序,而不仅仅是硬连线的功能。
  • CPU通过不断循环的取指令、解码指令、执行指令的过程来执行程序。这个过程被称为 "冯·诺伊曼周期"。
  • 冯·诺伊曼体系的设计具有通用性和灵活性,因此它支持各种类型的应用程序和计算任务。
  • 冯·诺伊曼体系的设计启发了计算机科学的发展,包括计算机硬件和软件的设计、编程语言的发展等。

冯·诺伊曼体系是一种经典的计算机体系结构,它是现代计算机体系结构的基础,并且在计算机科学和工程中具有广泛的应用。这个体系结构的灵活性和通用性使其成为处理各种计算任务的理想选择。

CPU

CPU基本原理:

微处理器:CPU通常由一个或多个微处理器芯片组成,每个芯片包含一些逻辑单元,如算术逻辑单元(ALU)和控制单元,以及缓存存储器。

关于这里,我们可以拓展一些很有意思的知识~

CPU通过大规模量产来降低成本,它升级换代的速度非常快每一代CPU出来,技术提升都蛮大的,这就又使得旧版本的CPU价格大幅度降低。Intel 目前应该到第13代了,AMD 也到7000系列。

不同的CPU型号和系列可以在性能、功耗、价格等方面有所不同。市面上最主要的CPU应该

是Intel和AMD的系列。

Intel CPU系列:

我们经常会听到“我的CPU是 i5 的”这种话,这是怎么来的?Intel 的CPU给服务器使用的叫“志强”,家用的叫“酷睿”,给嵌入式低功耗设备使用的叫“赛扬”……

家用的“酷睿”是分代数,目前最新的是13代,这里面又分不同的产品,就是我们的“ i3 ”、“ i5 ”等。

  1. Intel Core i3

    • Intel Core i3系列通常是入门级CPU,适用于一般办公和基本计算任务。
    • 它通常具有双核或四核设计,相对较低的时钟速度和较小的缓存。
    • 适合轻度多任务和基本游戏。
  2. Intel Core i5

    • Intel Core i5系列是中端CPU,具有更好的性能和多任务处理能力。
    • 它通常具有四核或六核设计,较高的时钟速度和更大的缓存。
    • 适合一般多任务、娱乐和一些轻度内容创作。
  3. Intel Core i7

    • Intel Core i7系列是高端CPU,具有出色的性能和多核处理能力。
    • 它通常具有六核或更多核心,更高的时钟速度和更大的缓存。
    • 适合专业的内容创作、游戏和多任务处理。
  4. Intel Core i9

    • Intel Core i9系列是顶级CPU,具有最强大的性能和多核处理能力。
    • 它通常具有八核或更多核心,非常高的时钟速度和大缓存。
    • 适合专业级内容创作、游戏和高度计算密集型任务。

但是13代的 i5 性能一般来说是大于12代的 i7 的。所以关键是代数。

AMD CPU系列:包括家用的锐龙和服务器用的霄龙

  1. AMD Ryzen 3

    • AMD Ryzen 3系列类似于Intel Core i3,适用于入门级用户和基本计算任务。
    • 通常具有四核设计,适合日常办公和轻度多任务处理。
  2. AMD Ryzen 5

    • AMD Ryzen 5系列类似于Intel Core i5,适用于中端用户和一般计算任务。
    • 通常具有四核或六核设计,具有良好的性能和多任务处理能力。
  3. AMD Ryzen 7

    • AMD Ryzen 7系列类似于Intel Core i7,适用于高端用户和多任务处理。
    • 通常具有六核或八核设计,具有强大的性能和多核能力。
  4. AMD Ryzen 9

    • AMD Ryzen 9系列类似于Intel Core i9,适用于专业级用户和高度计算密集型任务。
    • 通常具有八核或更多核心,非常强大的性能和多核处理能力。

以上CPU价格差别会很大,这是因为CPU的加工涉及到“良品率”的概念:

CPU芯片内部包含大量的晶体管和其他微观结构,这些结构必须精确制造。制造过程非常复杂,包括多个工艺步骤,如光刻、离子注入、蚀刻等。CPU内部非常精密的结构中存在大量的计算单元。每个计算单元的体积都极小,给加工制造(光刻机)带来非常大的困难。任何一个步骤出现问题都可能导致芯片的缺陷。所以制造的CPU上的计算单元不可能全都是好的。在某些情况下,芯片上的计算单元可能存在缺陷,但其他部分仍然正常工作,此时,制造商可以通过屏蔽掉缺陷的计算单元来使芯片仍然可用,这就是一些CPU在同一系列中性能不同的原因之一。

由于制造过程中可能存在不同程度的缺陷,CPU制造商会对芯片进行测试和分类。根据测试结果,芯片可以被分为不同的等级或系列。通常,高端系列(如Intel的i7和i9)包括更多的良品,而低端系列(如i3)可能包括较少的良品。

Intel 的联合创始人兼副总裁、半导体工业先驱戈登·摩尔(Gordon Moore)于1965年提出了一条细思极恐的定律——“摩尔定律(Moore's Law)”,这一定律预言了半导体技术的发展趋势。

JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)_第1张图片

具体来说,摩尔定律表明:

每隔约18至24个月,集成电路上可容纳的晶体管数量将翻一番,而价格将大致保持不变,性能也将提高。

简而言之,半导体器件(如CPU和内存芯片)的集成度每隔一段时间会翻倍,同时成本大致不变。这意味着芯片的性能将不断提高,而成本将相对稳定,这种趋势持续了几十年。

摩尔定律的重要性在于它推动了半导体工业的快速发展和技术进步。随着晶体管数量的增加,计算机性能也不断提升,这使得计算机变得更加强大、小型化和价格更加实惠。这对于

计算机科学和信息技术产业产生了深远的影响,推动了数字革命。

然而,随着时间的推移,摩尔定律所描述的晶体管数量的指数增长面临着物理限制和技术挑战(由此可见基础物理的重要性),因此在近年来,人们开始质疑摩尔定律是否仍然成立。尽管如此,摩尔定律仍然是计算机科学和半导体领域中的一个重要概念,它在过去几十年中塑造了整个行业,并推动了计算机技术的革命性进步。

指令集架构:CPU执行的指令集架构定义了CPU支持的指令集合,例如x86、ARM等。不同的架构具有不同的指令集和寻址方式。

时钟速度:CPU的时钟速度(也称为时钟频率)表示CPU每秒执行的时钟周期数。时钟速度通常以赫兹(Hz)为单位表示,例如1 GHz表示每秒执行10^9次时钟周期。

多核处理:现代CPU通常具有多个核心,每个核心都可以独立执行指令,从而提高了计算性能。多核处理器可以执行多个任务或线程,加快多任务处理。

如何衡量CPU的好坏?

我们这里最关注的指标有两方面:

1、主频(时钟速度):

主频是CPU时钟的频率,通常以赫兹(Hz)表示,如千兆赫兹(GHz)。

主频影响了CPU每秒钟执行时钟周期的数量,因此通常被认为是衡量CPU速度的指标之一。

更高的主频通常意味着更快的单核性能,适用于单线程任务和单核应用程序。

如图2.80GHz,这里你可以理解为这个CPU一秒钟可以执行28亿条指令。但是,现在的CPU主频都是在时刻改变的,它会根据当前任务的负载程度动态变化。打开我们的任务管理器:

JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)_第2张图片

这上面就提到当前的速度是2.70GHz,而且它还在不停的变化。我们把这个当前的频率叫做“睿频”,它也有上限,不同的CPU上限不一样,约好的CPU上限越高,甚至有的CPU还可以超频,也就是说给它更高的电压、更多的电,它就有更强的表现。 

2、核心数:

核心数表示CPU内部有多少个物理或逻辑核心,每个核心都可以独立执行指令。

多核CPU可以同时处理多个任务,因此在多任务处理和多线程应用程序中具有优势。

更多的核心通常意味着更好的多核性能,适用于并行处理任务,如视频编辑、科学计算、虚拟化等。但并不是所有应用程序都能够充分利用多核处理器,对于某些单线程或单任务应用,核心数的增加可能不会显著提高性能。

最开始CPU都是单个核心的(核心就可以理解成一个能完整计算功能的整体,是有很多的计算单元构成的)。在核心数还是单核心的时候,我们通过提高集成程度来提升CPU的速度。

随着时代的发展,随着集成程度的提高,我们发现进一步提高越发困难。因为你需要去再减小单个计算单元的体积,这势必就会增大工艺的难度。当体积小到一定的程度的时候,经典力学就失效了,我们来到量子力学的领域……所以就像《三体》里说的那样,基础物理限制了我们的工艺水平。

那这个时候怎么办?我们只好增加核心数量。

JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)_第3张图片

像我这台电脑就有4个内核。等等?后面的逻辑处理器是啥?

emmmm,我们可以这样理解,这台电脑的物理核心有4个,逻辑核心有8个。

JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)_第4张图片

简单来说,物理核心就是我们CPU上面焊上去的核心,逻辑核心则是利用了所谓的超线程技术,使物理核心一个顶俩~

像是13代的 Inter CPU有一个大小和技术,大核相当于两个核心,小核就是一个核心,大核和小核相互转换,在能耗和性能之间做一个均衡,以此提高移动设备和笔记本电脑的续航时间,并在需要时提供足够的性能。

大核心是针对高性能任务而设计的。它们通常具有更高的主频、更多的缓存和更多的计算资源,以处理计算密集型任务,如游戏、视频编辑和虚拟机操作等,小核心是针对低功耗和轻型任务而设计的。它们通常具有较低的主频和较少的计算资源,但非常省电。小核心通常用于处理日常任务,如浏览网页、观看视频、办公应用程序等。

CPU可以根据工作负载的要求动态切换大核心和小核心。当需要高性能时,大核心被激活,而在轻负荷或需要更低功耗时,小核心被激活。这种切换是透明的,用户通常无需干预。这样就节省了电量。消耗的电越多,发热量越大,所以很多笔记本都会用低压CPU来降低功耗来降低发热效果。

 这也就解释了为什么游戏本都是特别笨重的,因为它电源功率大,体积大,本体需要更大的散热空间。性能提高-->散热增加-->便携降低。

美国人对我们的芯片领域“卡脖子”主要卡的就是CPU,国内心啊在大力发展CPU,最新的已经能达到 Intel 10 代的水平了,相当于美国2020年的时候。

指令

指令(Instruction)是计算机中用于指导CPU执行操作的基本命令。每条指令都包含操作码(Opcode)和操作数(Operand)两个主要部分,用于告诉CPU要执行的操作以及操作的数据。

一个CPU设计的时候就会提供一些可以进行操作(支持哪些指令),比如加法指令、读取内存条指令、条件判定指令、函数调用指令等等。

指令是CPU上能够执行的任务的最小单元。这些最小单元都是由二进制的方式来表示的——机器语言。

以下是指令的主要组成部分:

1. 操作码(Opcode):
操作码是指令中的一部分,用于标识要执行的操作类型。操作码通常以二进制或十六进制编码表示,不同的操作码对应不同的指令,如加法、减法、乘法、除法等。
操作码告诉CPU要执行的具体操作,以及操作数的来源和目标。

2. 操作数(Operand):
操作数是指令中的另一部分,它包含要操作的数据或数据的地址。操作数可以是内存中的地址、寄存器的编号、立即数(常数)等。
操作数指定了指令要处理的数据,例如,在加法指令中,操作数可以是要相加的两个值的地址或寄存器编号。

指令通常以二进制形式存储在计算机的内存中,CPU会逐条从内存中读取指令并执行它们。指令集架构(Instruction Set Architecture,ISA)定义了特定计算机体系结构支持的指令集合,以及每个指令的操作码和操作数格式。

不同的计算机体系结构具有不同的指令集,例如x86体系结构、ARM体系结构等,它们的指令集和指令格式可能有所不同。也就是说,不同的CPU支持的指令/机器语言是不相同的。注意,这里的不同指的是架构不同!比如家用的计算机和服务器都基本用的 X86 系列(8086系列衍生出来的),手机(苹果M1/M2芯片、嵌入式设备)用的基本使 arm 系列,功耗低,性能也会略低。

编程人员使用汇编语言或高级编程语言来编写程序,这些程序被编译成特定计算机体系结构的机器码,包括操作码和操作数,以便CPU执行。

总之,指令是计算机中用于执行操作的基本命令,由操作码和操作数组成,用于告诉CPU如何进行计算和处理数据。不同的计算机体系结构支持不同的指令集,这些指令集定义了可用的指令和其操作方式。

操作系统

操作系统(Operating System,简称OS)是计算机系统中的关键软件组件,它负责管理和控制计算机的硬件资源,并为用户和应用程序提供一个统一的、友好的界面,以便进行操作和执行任务。

常见的操作系统有Windows 10、Windows 11、linux、mac os、android、ios等,这些操作系统本质上都是用来搞管理的软件:对下管理所有的硬件设备(硬件设备还需要同时提供一个驱动程序,方便操作系统完成对其的控制),对上要给软件提供稳定运行环境(进程的隔离性——一个计算机上可以同时运行多个程序,这些程序各自独立运行,不会相互干扰,否则如果某个程序出现bug,就直接导致系统重启后者其他程序也崩溃)。

JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)_第5张图片

操作系统的相关功能: 

  1. 硬件管理

    • 操作系统负责管理计算机的硬件资源,包括中央处理器(CPU)、内存、硬盘、输入输出设备(如键盘、鼠标、显示器)、网络接口等。
    • 它分配和调度CPU时间,确保多个程序可以共享计算资源,同时避免冲突和资源竞争。
  2. 文件系统管理

    • 操作系统提供文件系统,用于组织、存储和检索文件和数据。它负责文件的创建、删除、复制、移动、重命名和保护。
    • 文件系统管理还包括磁盘空间的分配和回收。
  3. 用户界面

    • 操作系统提供用户与计算机交互的界面。这可以是命令行界面(CLI),图形用户界面(GUI)或其他类型的界面。
    • 用户界面使用户能够运行程序、管理文件、配置系统设置等。
  4. 进程和任务管理

    • 操作系统管理运行在计算机上的进程和任务。它分配CPU时间片、处理进程间通信、维护进程状态信息等。
    • 操作系统确保多任务处理的有效性,允许多个程序同时运行。
  5. 安全性和权限管理

    • 操作系统负责确保计算机系统的安全性。它通过访问控制和身份验证来保护系统和数据不受未经授权的访问。
    • 操作系统为每个用户和程序分配权限,并监控其活动以检测和防止恶意行为。
  6. 设备驱动程序管理

    • 操作系统提供设备驱动程序,允许计算机与硬件设备进行通信。这包括键盘、鼠标、打印机、网络适配器等。
    • 设备驱动程序允许应用程序与硬件设备进行交互,而无需了解硬件的底层细节。
  7. 资源分配

    • 操作系统负责分配有限的资源,如CPU时间、内存和硬盘空间,以确保最高的系统性能和资源利用率。

操作系统“内核”

  1. 内核(Kernel):一个操作系统 = 内核 + 配套的应用程序

    • 内核是操作系统的核心组成部分,它是操作系统的主要执行引擎。内核负责管理和控制计算机的硬件资源,执行各种系统服务和操作。
    • 内核包括诸多关键组件,如进程管理、内存管理、文件系统管理、设备驱动程序、安全性管理等。它提供了一组API(应用程序接口),允许应用程序与硬件进行交互和利用操作系统的功能。
  2. 用户态(User Mode)

    • 用户态是指应用程序运行的环境。在用户态中,应用程序执行自己的代码,但不能直接访问或操作计算机的底层硬件资源。
    • 大多数应用程序在用户态下运行,包括办公软件、游戏、浏览器等。它们依赖操作系统的服务来执行文件操作、网络通信、图形显示等任务。
  3. 内核态(Kernel Mode)

    • 内核态是指操作系统内核运行的特权级别。在内核态下,操作系统可以直接访问和控制计算机的硬件资源,执行特权指令。
    • 内核态用于执行操作系统的核心功能,如设备驱动程序、中断处理、内存管理等。只有在内核态下,操作系统才具有足够的权限来执行这些任务。
  4. 操作系统的结构

    • 操作系统通常由内核和用户空间应用程序组成。内核位于操作系统的核心,负责管理硬件和提供系统服务。用户空间应用程序则是用户直接交互的程序,它们在用户态下运行,通过操作系统的API访问内核功能。

一个程序在运行过程中可能是在内核态工作,也可能是指用户态工作。

总之,内核是操作系统的核心部分,负责管理和控制计算机的硬件资源,为应用程序提供支持。用户态是应用程序运行的环境,而内核态是操作系统内核运行的特权级别,用于执行操作系统核心功能。操作系统的结构包括内核和用户空间应用程序,二者协同工作以提供完整的计算机系统功能。

你可能感兴趣的:(JavaEE,计算机原理,JavaEE,操作系统,CPU,指令)