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

计算机组成原理——基础入门总结(一)

本帖更新一些关于计算机组成原理的重点内容。由于博主考研时并不会考这门课,但是考虑到操作系统中又很多重要晦涩的概念涉及很多诸如内存、存储器、磁盘、cpu乃至各种寄存器的知识,此处挑选一些核心的内容总结复盘一遍——实现声明:本帖的内容注重知识扩展,而非纯应试~

配套课程:王道考研


一.计算机的发展

计算机系统=硬件+软件(硬件决定了性能天花板,而软件又决定了能将性能发挥到什么程度~)

计算机在处理数字计算时,本质上是在处理一系列电信号,逻辑原件是处理电信号的最小单元

发展历史:

  • 1946年:埃尼亚克(ENIAC)——因为军事应运而生(电子管时代1946-1957)
  • 晶体管时代(1958-1964):体积、功耗降低;出现面向过程的程序设计语言;操作系统的雏形出现
  • 中小规模集成电路时代(1965-1971):规模进一步缩小,可靠性进一步提高,各种高级语言发展迅速,开始出现分时操作系统
  • 超大规模集成电路时代(1971-至今):出现微处理机(CPU)以及个人计算机(PC),同时出现Windows等各种耳熟能详的操作系统

自从奔腾系列开始,CPU基本上进入64位的字长~

 

 

 java与Python等语言是更适合于网络环境的编程语言。

二.计算机硬件的基本组成

 为了解决ENIAC需要手动接线的弊端,冯诺依曼第一次提出了存储程序的概念!

 本质在于——解决了手动操作的缺点。

 如上是冯诺依曼体系结构。

(所谓软件与硬件在逻辑上等价,要联想OS中临界区用软件和硬件实现互斥的两种对立情况!)

特点:

1.计算器由五大部件组成

2.指令和数据以同等地位存放于存储器, 可按地址寻访

3.指令和数据用二进制码表示

4.指令由操作码和地址码组成

5.出现存储程序

6.以运算器为核心!

进化:现代计算机以存储器为核心!

而当大规模集成电路出现后, 运算器和控制器往往集成在一个芯片上

而这个芯片就是常说的——CPU

注意:主存即所谓的内存~ 

而辅存(存储、磁盘),本质上应该归结为IO设备~

三.硬件工作原理

1.主存储器

存储字长通常情况下为8个bit的整数倍~

存储元的实现细节本质上是依靠电容实现的。

  • MAR位数决定存储体的个数
  • MDR的位数决定存储单元的存储字长

易混淆:

  • 字节:Byte,即1Byte=8bit(1字节对应8比特)
  • 字:每个存储单元可以存放比特的位数——即存储字长,大小由寄存器本身决定

注意:ISP(运营商)所提供的100兆宽带,单位是100Mbps,其中的b象征的是bit而并非字节,换算下来将近12.5MB每秒,结合计网的知识,带宽只是理想状态下的网速,因此假使办理的宽带为所谓的1000兆,实际上的最高网速也只有125MB/s,而在实际使用时,可能达到20MB已经是最大值了~

 2.运算器

核心在于ALU——算术逻辑单元,造价很高。

 3.控制器

核心在于CU。

 

 高级语言代码的执行原理均为一连串的二进制码组成(机器指令)。

如上图,解下来通俗地描述一下CPU实现a=2赋值这一过程的背后原理:

  1. 首先,程序计数器PC指向下标为0的第一条指令,因此根据序号下标来寻找这条指令的内容,即把存储地址发送给MAR。
  2. 然后MAR根据给出的地址,去存储体中找到完整的指令内容
  3. 存储体将指令送给MDR
  4. MDR再将指令传送给指令寄存器IR
  5. IR将指令的操作码部分传递给CU,即指明了该条指令需要实现什么样的功能
  6. IR再将指令的地址码传给MAR,即寻找该条指令所需要的数据所对应的地址!
  7. 以此类推第2步
  8. 以此类推第3步
  9. MDR将数据传送给ACC,即累加器

指令完成后,PC实现自加1。

而当运行到停机指令时,这时操作系统需要通过中断处理或者系统调用来终结当前进程的执行~

 四.系统层次结构

下层是上层的基础,上层是下层的扩展~

  • 编译型语言:将编写的源程序全部语句一次性全部翻译为机器语言程序,而后再执行机器语言程序(只需要翻译一次)——(exe文件的产生可以为一种理解)
  • 解释型语言: 将源程序的语句逐行翻译,翻译结束后就立即执行,紧接着再翻译下一句

五.性能指标

 1.总容量

 

2.CPU性能主频 

主频越高的CPU速度越快

CPI:执行一条指令需要的时钟周期

(具体时间与其他因素有关)

平均执行一条指令的耗时:CPI*CPU时钟周期

(频率类的信息,G代表10的9次方)

 3.其他:

 4.基准程序(某种跑分软件......)

通过设计好的程序代码,测试当前CPU执行目标代码所需要的时间。

相关文章:

计算机组成原理——基础入门总结(一)

本帖更新一些关于计算机组成原理的重点内容。由于博主考研时并不会考这门课,但是考虑到操作系统中又很多重要晦涩的概念涉及很多诸如内存、存储器、磁盘、cpu乃至各种寄存器的知识,此处挑选一些核心的内容总结复盘一遍——实现声明:本帖的内容…...

批量获取CSDN文章对文章质量分进行检测,有助于优化文章质量

📚目录 ⚙️简介✨分析获取步骤⛳获取文章列表☘️前期准备✨ 接口解析⚡️ 获取文章的接口 ☄️文章质量分接口⭐接口分析 ⌛代码实现:⚓核心代码:⛵测试用例:⛴ 运行效果:☘️增加Excel导出 ✍️结束 ⚙️简介 有时候我们写文章是为了记录当下遇到的bu…...

从一到无穷大 #17 Db2 Event Store,A Purpose-Built IoT Database Engine

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言Architectural overviewData format and meta-dataEnsuring fast ingestionMulti…...

9月16日,每日信息差

今天是2023年09月16日,以下是为您准备的15条信息差 第一、天猫超市首单“茅小凌”已由菜鸟送达,首单已由菜鸟供应链完成履约,18分钟送达消费者手中 第二、软银考虑对OpenAI进行投资。此外,软银还初步拟收购英国人工智能芯片制造…...

准备篇(二)Python 教程

Part 1 Python 基础语法区分输入与输出注释文本列表if 语句for 语句range() 函数走向编程的第一个例子Part 2 函数 和 数据结构函数数据结构del 语句列表详解元组集合字典循环的技巧Part 3 输入与输出读写文件打开文件 open()读文件写文件...

HTML+CSS画一个卡通中秋月饼

HTMLCSS画一个卡通中秋月饼🥮🥮🥮 中秋活动水个文章 整个divcss实现个月饼,给前端初学者一个练手的demo 效果图 思路 HTMl 先来个轮廓画脸上的东西:眼睛、眉毛、腮红、嘴巴眼睛丰富下瞳孔画20个花瓣 CSS 轮廓是要外…...

echarts的折线图,在点击图例后,提示出现变化,不报错。tooltip的formatter怎么写

在点击图例的年后,提示框会相应的变化,多选和单选都会响应变化。tooptip的重度在formatter tooltip:{show:true,trigger:"axis",alwaysShowContent:true,triggerOn:"mousemove",textStyle:{color:"#fff"},backgroundColor…...

C++中的auto是一个关键字,用于在编译时自动推导变量的类型

C中的auto是一个关键字,用于在编译时自动推导变量的类型。通过使用auto关键字,编译器可以根据变量的初始化表达式来确定其类型,从而省略了显式地指定类型的步骤。 使用auto关键字声明的变量必须在定义时进行初始化,以便编译器可以…...

VUE build:gulp打包:测试、正式环境

目录 项目结构 Gulp VUE使用Gulp Vue安装Gulp Vue定义Gulp.js package.json build文件夹 config文件夹 static-config文件夹 项目结构 Gulp Gulp是一个自动化构建工具,可以帮助前端开发者通过自动化任务来管理工作流程。Gulp使用Node.js的代码编写&#xff…...

1.使用turtle换一个五环2.设计这样一个程序:输入一个数字 判断它是不是一个质数

1.使用turtle换一个五环 import turtle turtle.pensize(15) turtle.penup() turtle.color(blue) turtle.goto(-150,-35) turtle.pendown() turtle.circle(60) turtle.penup() turtle.color(black) turtle.goto(0,-35) turtle.pendown() turtle.circle(60) turtle.penup() turtl…...

C语言希尔排序

希尔排序(Shell Sort)是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列(由…...

KubeSphere 在互联网医疗行业的应用实践

作者:宇轩辞白,运维研发工程师,目前专注于云原生、Kubernetes、容器、Linux、运维自动化等领域。 前言 2020 年我国互联网医疗企业迎来了“爆发元年”,越来越多居民在家隔离期间不方便去医院看诊,只好采取在线诊疗的手…...

物联网:用python调入机器学习分析物联网数据入侵检测模块

要使用Python调用机器学习分析物联网数据入侵检测模块,您需要以下步骤: 安装Python和相关的机器学习库,如scikit-learn、pandas、numpy等。您可以使用pip命令来安装这些库。 准备输入数据。这些数据可以是来自物联网设备的原始数据&#xff…...

使用scss简化媒体查询

在进行媒体查询的编写的时候,我们可以利用scss与与编译器,通过include混入的方式对代码进行简化,从而大大提高了代码的可维护性,也减少了代码的编写量,废话不多说,直接上代码: // 断点列表 相当…...

win部署CRM

win部署crm) 1.phpstudy2.composer3.代码4.其他配置 周末锴哥让我帮他部署了一个CRM,写个教程,方便之后他用。锴哥用的是 NxCrm,先把代码下下来。 1.phpstudy 1.首先是下载小皮面板,配置php的环境。这里面下载了php8…...

Linux命令200例:dip用于用户与远程主机建立通信连接

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师&#xff0…...

【每日一题】981. 基于时间的键值存储

981. 基于时间的键值存储 - 力扣(LeetCode) 设计一个基于时间的键值数据结构,该结构可以在不同时间戳存储对应同一个键的多个值,并针对特定时间戳检索键对应的值。 实现 TimeMap 类: TimeMap() 初始化数据结构对象void…...

IMU姿态解算,从IMU数据中计算旋转、速度、位置,IMU测量的原理

0. 预备 a. IMU测量值解释 IMU在测量时,得到的角速度或者加速度均是相对于地心惯性系结果,并且将该结果表示到Body坐标系下,就形成了最终的IMU输出。 记作: ω i b b \omega_{ib}^b ωibb​,表示body系相对于惯性系的…...

【Qt-17】Qt调用matlab生成的dll库

matlab生成dll库 1、matlab示例代码 function BDCube(x,y)[x,y,z] cylinder(x,y);t1 hgtransform;s1 surf(3*x,3*y,4*z,Parent,t1);grid onview(3)shading interp end 2、matlab环境配置 首先检查自己的mcc编译器是否可用,输出以下命令: &#x…...

css经典面试题(二)

文章目录 1、清除浮动2、opacity: 0、visibility: hidden、display: none 的区别3、css画一个三角形4、常见的主流浏览器前缀5、重绘与重排的区别?6、如何优化图片7、CSS3 中 transition 和 animation 的属性分别有哪些8、居中为什么要使用 transform(为…...

uni-app项目里遇到‘get’ of undefined?别慌,可能是Vue3条件编译惹的祸

uni-app开发中"get of undefined"错误深度解析:Vue3条件编译的隐秘陷阱 1. 错误现象背后的真相 当你在uni-app项目中看到控制台抛出Cannot read property get of undefined时,这种看似简单的类型错误往往隐藏着更深层的框架适配问题。不同于常…...

【免费下载】 摩擦磨损仿真Archard模型 - FORTRAN子程序中文注释版:加速您的科研与工程项目

摩擦磨损仿真Archard模型 - FORTRAN子程序中文注释版:加速您的科研与工程项目 【下载地址】摩擦磨损仿真archard模型-FORTRAN子程序中文注释版 本仓库提供了一款专为摩擦磨损分析设计的Umeshmotion子程序模型,采用经典的Archard模型实现。此资源针对工程…...

3步掌握LRC歌词制作:开源工具的终极实践指南

3步掌握LRC歌词制作:开源工具的终极实践指南 【免费下载链接】lrc-maker 歌词滚动姬|可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 还在为制作精准同步的歌词文件而烦恼吗?传统歌词…...

别再复制粘贴了!深度优化你的TM1640驱动代码:效率与可维护性实战

TM1640驱动代码重构实战:从能用走向工业级 在嵌入式开发中,我们常常会遇到这样的场景:项目初期为了快速验证功能,直接从网上复制一段"能用就行"的驱动代码。但随着项目规模扩大,这些代码逐渐暴露出可维护性差…...

两阶段目标检测器核心原理与流程详解

两阶段目标检测器的核心思想是:第一阶段先找候选区域,第二阶段再对候选区域做分类和精修。典型代表是: R-CNN Fast R-CNN Faster R-CNN Mask R-CNN现在最典型的是 Faster R-CNN / Mask R-CNN,所以我以它为主来讲。1. 两阶段目标检…...

当我们谈论“防治养”时,我们谈论的是一种生活方式的重构

一、重新审视“健康”的定义在现代生活的快节奏中,健康常常被简化为一个医学指标,或是年度体检报告上的一串数字。然而,当我们谈论肿瘤“防治养”时,我们谈论的远不止于此。这不是三个孤立的概念,而是一个完整的循环—…...

【NotebookLM文献综述加速器】:20年科研老兵亲测的5步高效综述法,3天完成导师认可的高质量综述?

更多请点击: https://intelliparadigm.com 第一章:NotebookLM文献综述辅助的底层逻辑与科研适配性 NotebookLM 由 Google Research 推出,其核心并非通用大语言模型问答,而是以用户上传的私有文档(PDF、TXT 等&#xf…...

【免费下载】 探索语音合成新境界:so-vits-svc-4.1-Stable 资源文件推荐

探索语音合成新境界:so-vits-svc-4.1-Stable 资源文件推荐 【下载地址】so-vits-svc-4.1-Stable资源文件下载 本仓库提供 so-vits-svc-4.1-Stable 资源文件的下载。该资源文件是一个稳定版本的 so-vits-svc 模型,适用于语音合成和相关应用 项目地址: h…...

量子计算中SIMD编译优化与离子阱架构实践

1. 量子计算中的SIMD编译优化概述量子计算正逐步从理论走向实践,而离子阱架构因其长相干时间和高保真度操作成为当前最有前景的物理实现方案之一。在传统量子编译器中,指令调度往往采用串行执行模式,导致离子传输和量子门操作存在大量等待时间…...

168MHz Cortex-M4+FPU+1MB Flash:STM32F405RGT6的高性能工业MCU参数解析

STM32F405RGT6:168MHz Cortex-M4工业MCU的高性能标杆在工业控制、电机驱动和物联网网关等嵌入式应用中,微控制器需要在处理性能、存储容量和外设集成度之间取得平衡。STM32F405RGT6是意法半导体STM32F4系列中的经典型号,基于ARM Cortex-M4内核…...