当前位置: 首页 > news >正文

冯诺依曼架构及CPU相关概念

一. 操作系统的概念

1. 概念

操作系统(Operating System). 首先, 所有的计算机都是由软件和硬件构成的. 而操作系统就是许许多多软件中的一种软件, 操作系统可以看作是由两部分组成: 操作系统内核+系统级应用程序.

2. 作用

(1) 管理硬件设备, 调度和协调各个硬件之间的工作.

(2) 给软件提供稳定的运行环境.

3. 常见的操作系统

(1) Windows

(2) Linux

(3) Android

(4) MacOS

(5) IOS

其中Windows, Linux, MacOS 主要用于桌面端. Android和IOS主要用于移动端. 不同的系统之间, 程序是不能相互兼容的 (比如我在Linux上写了一个程序, 那么这个程序是不能直接拿到Windows上运行的).

二. 冯诺依曼架构

冯诺依曼架构提出: 计算机由输入设备(Input Device), 输出设备(Output Device), 存储器(Memory Unit), 中央处理器(Central Processing Unit "CPU") 四部分构成. (其中CPU又包括控制器(CU),和运算器(ALU)).

(1)输入设备:输入设备: 常见输入设备有: 磁盘, 网卡, 键盘, 话筒, 摄像头 等.

(2)输出设备: 常见的输出设备有: 磁盘, 网卡, 显示器, 打印机, 音箱 等.

(3)存储器: 用于存储数据.存储器又分为内存和硬盘(外存). 内存: 存储空间小, 访问速度快, 成本较高, 断电后数据丢失.  硬盘: 存储空间大, 访问速度慢, 成本较低, 断电后数据仍在.

(4)CPU: 中央处理器主要负责控制指令执行和运行计算, CPU除了控制器和运算器, 还包括一些小容量的寄存器(用于存储数据), 寄存器又分为通用寄存器(存储运算数据), 程序计数器(存储CPU下一条要执行的指令的地址), 指令寄存器(存储当前正在执行的指令).

计算机访问数据时的局部性原理: (1)空间局部性: 计算机在访问完一次数据之后, 下次在访问数据时, 总是会选择上次访问数据周围的数据进行访问. (2)时间局部性: 计算机在访问完一次数据之后, 后面再访问数据时, 会有很大概率再次访问到这次的数据.

冯诺依曼架构中的各个组成部分是如何通信和传输数据的?--总线. 总线包括: 控制总线(发出或接收型号,比如读/写/中断 等信号), 地址总线(传输CPU将要操作的数据在内存中的地址), 数据总线(用来读写内存中的数据).

冯诺依曼架构的优点: 简单性, 指令和数据存储在同一块内存中, 简化了计算机的设计和构造, 降低了硬件的复杂性. 缺点: 性能瓶颈: 指令和数据使用同一条总线传输, 且无法并行. 因此当传输数据时, CPU会处于等待状态, 这样就无法充分利用CPU, 从而降低了系统性能.

三. CPU

1. CPU的主流架构

(1) x86 / x64 架构: 主要给桌面端和服务器端使用.

(2) arm架构: 主要给移动端和嵌入式使用.

(3) RISC-V架构: 一套开源的CPU指令架构. 目前国内使用该架构发展我们自己的CPU.

2. CPU的核心参数

(1) 核心数: 最早的CPU都是单核的, 相当于电脑里只有一个人在工作. 后来intel发明了多核心CPU,

又发明了超线程技术, (例如: 12核心24线程 就相当于电脑里一共有24个人在工作, 每个核心里有两个人在工作). 这样使得CPU的性能大大增强.

(2) 频率: CPU的运算速度可以用频率来描述. 频率越高, 表示CPU的运算速度越快.

所以, 作为一名程序员, 我们衡量一个CPU的好坏, 就是看这个CPU的核心数多不多, 频率高不高.

3. CPU的寄存器和缓存

(1) 寄存器: CPU中除了控制器CU和运算器ALU, 还有"寄存器". 寄存器就是CPU内部用来存储数据的部分. 寄存器的存储空间比内存更小(往往只有几个kb), 访问速度比内存更快(因为离内存更近), 成本比内存更高.([注]: 寄存器中有一种叫做"程序计数器", 这个寄存器是用来存放下一条指令的地址的).

(2) 缓存: 如果内存中的某些数据是比较常用的, 而寄存器内又存不下这些数据. 那么这时候计算机就会把这些数据读到缓存中. 由于CPU不断从内存中读数据速度太慢的问题.([注]:java程序员在开发程序时, 往往吧缓存和寄存器看成是一个整体, 不区分那么细.)

4. CPU执行指令的流程

(1) 读取指令: CPU从内存中将指令读到CPU内部(程序计数器中).

(2) 解析指令: 识别出这个指令是具体要执行什么.

(3) 执行指令: 根据指令执行对应操作.

相关文章:

冯诺依曼架构及CPU相关概念

一. 操作系统的概念 1. 概念 操作系统(Operating System). 首先, 所有的计算机都是由软件和硬件构成的. 而操作系统就是许许多多软件中的一种软件, 操作系统可以看作是由两部分组成: 操作系统内核系统级应用程序. 2. 作用 (1) 管理硬件设备, 调度和协调各个硬件之间的工作.…...

智能管线巡检系统:强化巡检质量,确保安全高效运维

线路巡检质量的监控是确保线路安全、稳定运行的重要环节。为了有效监控巡检质量,采用管线巡检系统是一种高效、科学的手段。以下是对如何通过管线巡检系统实现线路巡检质量监控的详细分析: 一、巡检速度监控 管线巡检系统能够实时监控巡检人员的巡检速度…...

React写关键字高亮的三个方案

1.js正则replaceAlldangerouslySetInnerHTML{{ __html: xxx }}危险属性 步骤最简单,但是是危险属性,不推荐使用,项目中实在没有头绪,可以使用它应急 通过useMemo计算得到新的状态值,赋值给dangerouslySetInnerHTML属性的__html 关键代码: const [state1, setState1] useSt…...

重塑在线软件开发新纪元:集成高效安全特性,深度解析与评估会员与促销管理系统的系统架构设计

案例 阅读以下关于软件架构设计与评估的叙述,回答问题1和问题2。 【题目】 某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管…...

多层感知机的从零实现与softmax的从零实现(真·0000零基础)

今天再读zh.d2l书(4.2. 多层感知机的从零开始实现 — 动手学深度学习 2.0.0 documentation), 看了关于多层感知机的从零实现与softmax的从零实现 目录 mlp从零实现, 点击“paddle”的代码 点击“torch”的代码 训练 参数解…...

【Rust练习】18.特征 Trait

练习题来自:https://practice-zh.course.rs/generics-traits/traits.html 1 // 完成两个 impl 语句块 // 不要修改 main 中的代码 trait Hello {fn say_hi(&self) -> String {String::from("hi")}fn say_something(&self) -> String; }str…...

【自动化测试之oracle数据库】MacOs如何安装oracle- client

操作系统为Mac OS,本地在pycharm上跑自动化脚本时,因为有操作oracle数据库的部分,所以需要安装oracle数据库的客户端,并install cx_oracle,本文主要介绍如何在macOS上完成安装,并在python自动化测试代码中配置&#xf…...

Spring MVC的MultipartFile

定义 MultipartFile接口是Spring MVC中用来处理上传文件的接口,它提供了访问上传文件内容、文件名称、文件大小等信息的方法。 源码: package org.springframework.web.multipart;import java.io.File; import java.io.IOException; import java.io.I…...

●Leetcode| 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

242,该题目中数组范围比较短&#xff0c;可以数组使用并不会占太多的空间&#xff0c;利用数组的映射&#xff0c;查找到自己所需要的字符 class Solution { public:bool isAnagram(string s, string t) {int record[26] {0};for(int i0;i<s.size();i){record[s[i] - a];/…...

关于算法的时间复杂度和空间复杂度的分析

由于最近开始准备蓝桥杯(python组)&#xff0c;开始对编程基础进行一些复习&#xff0c;当我发现蓝桥对大多数题目程序运行时间及大小有要求时&#xff0c;我知道我不得不考虑性能问题&#xff0c;而不是能跑就行&#x1f913; 写下这篇文章希望对其他同志有帮助吧 什么是算法…...

深入浅出 C++ STL:解锁高效编程的秘密武器

引言 C 标准模板库&#xff08;STL&#xff09;是现代 C 的核心部分之一&#xff0c;为开发者提供了丰富的预定义数据结构和算法&#xff0c;极大地提升了编程效率和代码的可读性。理解和掌握 STL 对于 C 开发者来说至关重要。以下是对 STL 的详细介绍&#xff0c;涵盖其基础知…...

2024年1024程序人生总结

2024-1024 0.大环境0.1.经济0.2.战争 1.我的程序人生1.1.游戏 2.节日祝福 0.大环境 今年的1024最大的感触就是没有节日氛围&#xff0c;往年公司还会准备节日礼物&#xff0c;今年没有&#xff0c;由此可见大环境有多么糟糕。 除此之外&#xff0c;就是到公司应聘的程序员越来…...

【p2p、分布式,区块链笔记 分布式容错算法】: 拜占庭将军问题+实用拜占庭容错算法PBFT

papercodehttps://pmg.csail.mit.edu/papers/osdi99.pdfhttps://github.com/luckydonald/pbft 其他相关实现&#xff1a;This is an implementation of the Pracltical Byzantine Fault Tolerance protocol using PythonAn implementation of the PBFT consensus algorithm us…...

鸿蒙NEXT开发-应用数据持久化之用户首选项(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...

人工智能_神经网络103_感知机_感知机工作原理_感知机具备学习能力_在学习过程中自我调整权重_优化效果_多元线性回归_逻辑回归---人工智能工作笔记0228

由于之前一直对神经网络不是特别清楚,尤其是对神经网络中的一些具体的概念,包括循环,神经网络卷积神经网络以及他们具体的作用,都是应用于什么方向不是特别清楚,所以现在我们来做教程来具体明确一下。 当然在机器学习之后还有深度学习,然后在深度学习中对各种神经网络的…...

WISE:重新思考大语言模型的终身模型编辑与知识记忆机制

论文地址&#xff1a;https://arxiv.org/abs/2405.14768https://arxiv.org/abs/2405.14768 1. 概述 随着世界知识的不断变化&#xff0c;大语言模型&#xff08;LLMs&#xff09;需要及时更新&#xff0c;纠正其生成的虚假信息或错误响应。这种持续的知识更新被称为终身模型编…...

网络安全证书介绍

网络安全领域有很多专业的证书&#xff0c;可以帮助你提升知识和技能&#xff0c;增强在这个行业中的竞争力。以下是一些常见的网络安全证书&#xff1a; 1. CompTIA Security 适合人群&#xff1a;初级安全专业人员证书内容&#xff1a;基础的网络安全概念和实践&#xff0c…...

【已解决】【hadoop】【hive】启动不成功 报错 无法与MySQL服务器建立连接 Hive连接到MetaStore失败 无法进入交互式执行环境

启动hive显示什么才是成功 当你成功启动Hive时&#xff0c;通常会看到一系列的日志信息输出到控制台&#xff0c;这些信息包括了Hive服务初始化的过程以及它与Metastore服务连接的情况等。一旦Hive完成启动并准备就绪&#xff0c;你将看到提示符&#xff08;如 hive> &#…...

基于架设一台NFS服务器实操作业

架设一台NFS服务器&#xff0c;并按照以下要求配置 首先需要关闭防火墙和SELinux 1、开放/nfs/shared目录&#xff0c;供所有用户查询资料 赋予所有用户只读的权限&#xff0c;sync将数据同步写到磁盘上 在客户端需要创建挂载点&#xff0c;把服务端共享的文件系统挂载到所创建…...

eachers中的树形图在点击其中某个子节点时关闭其他同级子节点

答案在代码末尾&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; tubiaoinit(params: any) {// 手动触发变化检测this.changeDetectorRef.detectChanges();if (this.myChart ! undefined) {this.myChart.dispose();}this.myChart echarts.init(this.pieChart?…...

使用Dify快速搭建CasRel模型应用:无需编码的AI工作流

使用Dify快速搭建CasRel模型应用&#xff1a;无需编码的AI工作流 你是不是也遇到过这样的场景&#xff1f;手里有一堆非结构化的文本数据&#xff0c;比如产品说明书、新闻稿或者客服对话记录&#xff0c;想从中自动找出“谁对谁做了什么”这类关系信息。传统方法要么需要写复…...

BGE-M3快速入门:多语言文本相似度分析从零到一

BGE-M3快速入门&#xff1a;多语言文本相似度分析从零到一 1. 引言&#xff1a;从“关键词匹配”到“语义理解” 你有没有遇到过这样的场景&#xff1f;在搜索引擎里输入“苹果”&#xff0c;结果既出现了水果&#xff0c;也出现了手机公司。或者&#xff0c;你想找“如何学习…...

编译原理实战:5分钟搞定词法分析器的选择题(含答案解析)

编译原理实战&#xff1a;词法分析器选择题高效解题指南 在编译原理的学习和考试中&#xff0c;词法分析器相关选择题往往是考察重点&#xff0c;也是许多同学容易失分的部分。面对复杂的正规式、有限自动机等概念&#xff0c;如何快速准确地做出判断&#xff1f;本文将带你深入…...

JS知识点汇总(十九)--ajax

1. 说说ajax的原理&#xff0c;以及如何实现&#xff1f; AJAX 全称(Async Javascript and XML) 即异步的 JavaScript 和 XML&#xff0c;是一种创建交互式网页应用的网页开发技术&#xff0c;可以在不重新加载整个网页的情况下&#xff0c;与服务器交换数据&#xff0c;并且更…...

ESP32轻量级18650电池电量估算库设计与实现

1. 项目概述Battery_18650_Stats是一款专为 ESP32 平台设计的轻量级嵌入式电池状态计算库&#xff0c;核心目标是在 Arduino IDE 环境下&#xff0c;以最小资源开销、最高工程鲁棒性&#xff0c;实现对单节 18650 锂离子电池&#xff08;Li-ion&#xff09;荷电状态&#xff08…...

UniHacker:跨平台支持的开源工具快速部署方案

UniHacker&#xff1a;跨平台支持的开源工具快速部署方案 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker UniHacker作为一款专业的开源工具&#xff0c;凭借…...

避坑指南:Double DQN和Dueling DQN在TensorFlow 2.x中的5个常见实现错误

Double DQN与Dueling DQN在TensorFlow 2.x中的五大工程陷阱与解决方案 当你在深夜调试强化学习模型时&#xff0c;是否遇到过这种情况&#xff1a;训练曲线像过山车一样剧烈波动&#xff0c;明明采用了Double DQN或Dueling DQN这些改进算法&#xff0c;效果却比基础DQN还要差&a…...

Linux核心转储文件生成与调试全指南

1. Linux核心转储文件调试方法详解1.1 核心转储文件概述在Linux系统下&#xff0c;当程序发生崩溃时&#xff0c;系统会生成一个包含程序崩溃时内存映像的文件&#xff0c;称为core文件。这个文件记录了程序崩溃时的内存状态和调试信息&#xff0c;是定位程序崩溃原因的重要工具…...

2026 工程指南:为什么 AWS Bedrock + Claude 4.6 正在成为多 Agent 协作的底层首选?

进入 2026 年第一季度&#xff0c;大模型领域的竞争已经从“单纯的参数规模”转向了“端到端的工程效率”。随着 GPT-5.4 陷入推理成本高企的泥潭&#xff0c;Anthropic 联手亚马逊发布的 Claude 4.6 托管方案&#xff0c;正在通过 Amazon Bedrock 平台迅速收割企业级市场。作为…...

OpenClaw自动化测试:Qwen3.5-9B在API接口校验中的实战应用

OpenClaw自动化测试&#xff1a;Qwen3.5-9B在API接口校验中的实战应用 1. 为什么选择OpenClaw做接口自动化测试 去年接手一个个人项目时&#xff0c;我遇到了接口测试的痛点&#xff1a;每次后端更新都要手动验证几十个API&#xff0c;不仅耗时还容易遗漏边缘case。尝试过Pos…...