首页 > 其他分享 >2024计算机组成原理复习——第一章

2024计算机组成原理复习——第一章

时间:2024-06-09 14:44:40浏览次数:8  
标签:MAR 复习 程序 第一章 2024 指令 MDR 执行 CPU

计算机组成原理复习——第一章

image-20240608211440801

一、计算机系统概括

本笔记不用于商业用途,内容参考《2025年计算机组成原理——考研复习指导》以及其对应的b站免费视频课(图文信息主要来自于此)

(一)计算机系统结构层次

1. 计算机系统的基本组成
  • 硬件:有形的物理设备,计算机系统中实际物理装置的总称
  • 软件:指在硬件上运行的程序和相关的数据及文档
  • 软/硬件在逻辑功能上是等价的:对某一功能,既可使用硬件实现,又能使用软件实现。(通常来说,一个功能使用较为频繁用硬件实现成本较为理想,则使用硬件可以提高效率)
2. 计算机硬件的基本组成

image-20240608212106488

image-20240608212637534

(1) 冯·诺伊曼机基本思想(特点)
  1. 采用“存储程序”的工作方式
  2. 计算机硬件系统由运算器、存储器、控制器、输入和输出设备5大部件组成
  3. 指令和数据同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们
  4. 指令和数据均用二进制代码表示
  5. 指令由操作码地址码组成,操作码指出操作的类型,地址码指出操作数地址

​ “存储程序”的基本思想是:将事先编好的程序和原始数据送入主存储器后才可执行,一旦开始执行程序,无需干预,其会逐行自动执行指令,直至程序结束

(2) 计算机的功能部件

image-20240608212902627

  1. 输入设备:将程序和数据以机器可识别信息形式输入计算机

  2. 输出设备:将处理结果以人们可接受的形式或其它系统所要求信息形式输出

  3. 存储器:分为主存储器和辅助存储器

    image-20240608221446017

    • CPU能直接访问的存储器是主存储器,而辅助存储器的信息必须调入主存储器后才能被CPU访问
    • 主存储器工作方式:按存储单元地址进行行存取(按地址存取方式)
    • 主存基本组成:
      • 存储体:包含很多【存储单元:存储内容称存储字,其为数唤作存储字长】包含若干【存储元件:存储一位“二进制代码”(0 or 1)】
      • 存储器地址寄存器(MAR):存放访存地址,经地址译码后能找到所选存储单元(寻址)
        • 位数反映最多可寻址的存储单元个数(长度与PC[程序计数器]长度相等)
      • 存储器数据寄存器(MDR):暂存要从存储器中读或写的信息
        • 位数通常等于存储字长,一般为字节的2次幂整数倍
      • 时序控制逻辑:产生存储器操作的所需各种时序信号

    注意:现代计算机中MAR和MDR都在CPU中,后文的Cache同样如此

  4. 运算器:执行部件,用于算术运算和逻辑运算

    image-20240608223439822

    • 核心:算术逻辑单元(ALU)
    • 必须寄存器:累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)
    • 可能包含寄存器:变址寄存器(IX)、基址寄存器(BR)等
    • 程序状态寄存器(PSW,也称标志寄存器):存放处理信息标志(溢出与否、进位、借位及结果是否为负)
  5. 控制器:计算机的指挥中心,由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成

    image-20240608223632779

    • 程序计数器:用来存放当前欲执行指令的地址,+1指向下一指令地址,和主存储器中MAR有一条直接通路
    • 指令寄存器:用来存放当前指令,内容来自主存储器MDR。
      • 内容来自主存储器MDR,指令中OP(IR)送至CU,地址码Ad(IR)送至MAR(用于取操作数)

    image-20240608223743334

  • CPU(中央处理单元):一般将运算器和控制器集成到一个芯片上,而CPU和主存储器共同构成主机,而其它硬件装置称为外设

    • CPU和主存储器通过一组总线相连,总线中有地址控制数据3组信号线
    • MAR信息放入地址线,MDR信息放入数据线,控制线负责指出是进行读入还是写出
  • 一个栗子:

image-20240608224048751

初始:(PC)=0,指向第一条指令的存储地址

1:(PC)->MAR,导致(MAR)=0

3:M(MAR)->MDR,导致(MDR)=000001 0000000101

4:(MDR)->IR,导致(IR)=000001 0000000101

5:OP(IR)->CU,指令的操作码送到CU,CU分析后得知,此为“取数”指令

6:Ad(IR)->MAR,指令的地址码送到MAR,导致(MAR)=5

8:M(MAR)->MDR,导致(MDR)=0000 0000 0000 0010=2

9:(MDR)->ACC,导致(ACC)=0000 0000 0000 0010=2

image-20240608225005926

image-20240608225438418

image-20240608225734395

3. 计算机软件和硬件的关系

image-20240609125901239

(1) 计算机软件
  • 软件按其功能分类:可分为系统软件和应用软件

    • 系统软件:一组保证计算机高效、正确运行的基础软件,通常作为系统资源提供给用户使用
      • 系统程序员:编写诸如操作系统、编译程序等各种系统程序的人员
    • 应用软件:用户为解决某个应用领域中的各类问题而编制的程序
      • 应用程序员利用计算机及所支持的系统软件来编写具体应用问题的人员
  • 三种机器语言的特点:

    • 机器语言(也称二进制代码语言):需要编程人员记忆每条指令的二进制编码。机器语言也是计算机唯一可以直接识别和执行的语言
    • 汇编语言:使用英文单词或缩写代替二进制的指令代码,必须经过一个称为汇编程序的系统软件的翻译,将其转换为机器语言后,才能在计算机的硬件系统上执行
    • 高级语言:为方便程序设计人员写出解决问题的处理方案和解题过程的程序,通常需要先经过编译程序转换为汇编语言程序,然后经过汇编程序转换为机器语言程序,或直接由高级语言程序翻译为机器语言程序
  • 翻译程序:将高级语言程序转换为机器语言程序的软件系统

    • 汇编程序(汇编器):将汇编语言程序翻译成机器语言程序
    • 解释程序(解释器):将源程序中语句按执行顺序逐条翻译为机器指令并立即执行
    • 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序
  • 软件和硬件的逻辑等价性

    • 对某一功能来说,既可以由硬件实现,又可以用软件实现;自用户角度看,它们在功能上是等价的
    • 软件和硬件逻辑功能的等价性是计算机设计的重要依据,软硬件的功能分配及其界面的确定是计算机结构研究的重要内容
    • 其分界点通常由设计目标、性能价格比、技术水平等综合因素决定
(2) 计算机系统的层次结构
  • CPU可以理解和执行的指令类型:
    • 第一级是微程序机器层,由机器硬件直接执行微指令
    • 第二级是传统机器语言层,它也是一个实际的机器层,由微程序解释指令系统
    • 第三级操作系统层,它由操作系统程序实现
      • 操作系统程序是由机器指令和广义指令组成的
        • 这些广义指令是为了扩展机器功能而设置,由操作系统定义和解释的软件指令,所以也称混合层
    • 第四级汇编语言层,这一层由汇编程序支持和执行,借此可编写汇编语言源程序
    • 第五级高级语言层,是面向用户的,为了方便用户编写应用而设置的。该层由各种高级语言编译程序支持和执行
  • 软件和硬件间的界面就是指令集体系结构(ISA)(指软件可感知部分,也称软件可见部分),ISA定义了一台计算机可以执行的所有指令集合
  • 没有配备软件的纯硬件系统称裸机,第三层到第五层成为虚拟机(软件实现的机器)
4. 计算机的工作过程
(1) “存储程序”工作方式
  • 程序执行前,需要将程序所含的指令和数据送入主存储器,一旦程序被启动执行,就无需操作人员的干涉,自动逐条完成指令的取出和执行任务
  • 执行过程:
    • 将首条指令地址放入PC,PC访问主存此地址
    • 顺序执行:完成指令时,下条指令地址=PC+当前指令长度
    • 跳转执行:完成指令时,下条指令地址=指令中指定的目标地址
(2) 从源程序到可执行文件
  • 分步:预处理 -> 编译 -> 汇编 -> 链接
  1. 预处理阶段:预处理器(cpp)对源程序中以#开头的命令进行处理,将.h对应代码进行插入,生成.i为拓展名文件
  2. 编译阶段:编译器(ccl)对预处理后源程序进行编译,生成一个汇编语言程序.s文件
  3. 汇编阶段:汇编器(as)将.s翻译成机器语言指令,并将其打包为可重定位目标文件.o文件),其为一种二进制文件
  4. 链接阶段:链接器(ld)将多个重定位目标文件和标准库函数合并为一个可执行文件

(二)计算性能指标

  • 吞吐量、响应时间:
    • 吞吐量:系统在单位时间内处理请求的数量
    • 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间
      • 通常包括CPU时间(运行一个程序所花费的时间)与等待时间
  • CPU时钟周期、主频、CPI、CPU执行时间
    • CPU时钟周期:一段连续波峰与波谷持续时间(单位:微秒和纳秒)
    • CPU主频:CPU内数字脉冲信号振荡的频率,\(CPU主频(时钟频率)=\frac{1}{CPU时钟周期}\)(单位:赫兹)
    • CPI(Clock cycle Per Instruction):执行一条指令所需的时钟周期数
      • 不同的指令,CPI不同,甚至相同的指令CPI也可能有变化
      • \(执行一条指令耗时=CPI\times CPU时钟周期\)
    • \(CPU执行时间(整个程序耗时)=\frac{CPU时钟周期数}{主频}=\frac{指令条数\times CPI}{主频}\)
    • IPS(Instructions Per Second):每秒执行多少条指令,\(IPS=\frac{主频}{平均CPI}\)
    • FLOPS(Floating-point Operation Per Second):每秒执行多少次浮点运算
  • MIPS、MFLOPS 、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS :
    • 数量单位:\(K=千=10^3, M=百万=10^6,G=十亿=10^9,T=万亿=10^{12}\)
    • 数据通路带宽:数据总线一次所能并行传送信息的位数

image-20240609142938384

标签:MAR,复习,程序,第一章,2024,指令,MDR,执行,CPU
From: https://www.cnblogs.com/Kenky-Blog/p/18239550

相关文章

  • HNUCM-2024年春季学期《算法分析与设计》练习14
     问题A:1的个数题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入 输入一个整数(int类型)。输出这个数转换成2进制后,输出1的个数。样例输入 Copy5样例输出 Copy2#include<stdio.h>intmain(){intn,s=0;scanf("%d",&......
  • 2024 IDEA最新永久使用码教程(2099版)
    本篇文章我就来分享一下2024年当前最新版IntelliJIDEA最新注册码,教程如下,可免费永久,亲测有效,适合Windows和Mac。本教程适用于JB全系列产品,包括Pycharm、IDEA、WebStorm、Phpstorm、Datagrip、RubyMine、CLion、AppCode等。(希望大家且用且珍惜)9H1390TRAK-eyJsaWNlbnN......
  • [考试记录] 2024.6.9
    T3WRONG-Wrongdirections题面翻译FarmerJohn刚刚购买了一台新型可编程拖拉机。为了使拖拉机移动,他输入一串长度为N的绳子(1<=N<=100,000)仅由字符F,L和R组成。每个'F'指示拖拉机向前移动一个单元,并且字符'L'和'R'分别导致左右转90度。拖拉机从原点开始(0,0)朝北。通过输......
  • 【教学类-40-01】20240607类似MJ的免费AI绘画工具——文心一格与通义万相
    背景需求:风变的AI对话大师一年到期了,也没有看到续费的按钮。不能使用它写代码了。MJ早就用完了,最后480次,我担心信息课题会用到它生图,所以不敢用。最近探索其他类似MJ的免费出图工具一、文心一格(免费,开账户给100分,每天做任务给16分,可以生成3张)用一次8分每天做任......
  • PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)
    0x01产品简介PHP-CGI 是一种用于在 Web 服务器上运行 PHP 脚本的接口,通过 CGI(公共网关接口)将 PHP 解释器与 Web 服务器连接。0x02漏洞概述2024年6月,PHP官方发布新版本,修复了 PHP-CGI 中一个远程代码执行漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可获取......
  • Scala代码练习(复习用)
    1、编程实现百分制转换成五级制,规则如下:90~100分,返回优秀;80~89分,返回良好;70~79分,返回中等;60~69分,返回及格;60分以下,返回不及格。packagemain.scala.classStudyobjectgrade{defmain(args:Array[String]):Unit={valnum=70if(num>=90){println(......
  • 2024-6-9 石群电路-27
    2024-6-9,星期日,12:49,天气:晴,心情:晴。Hello,大家,我回来啦,昨天断更了一天,是为什么捏,是因为,我通过毕业答辩啦!!!!!!果然,虽然是小小硕士,但是听到那句,“经答辩委员会决议,xx同学通过毕业论文答辩,建议授予工学硕士学位”,也是很爽的,至于博士大佬听到这句话什么感想,小子就先不想啦,哈哈哈哈哈,加油......
  • SuntoryProgrammingContest2024(AtCoder Beginner Contest 357)
    A-SanitizeHands题意:给定一个序列和m,问m按顺序减去这个序列,m>=0情况下最多能减多少个数思路:前缀和+prev(upper_bound())总结:disinfectan(消毒ji),disinfect(消毒,杀毒),aliens(外星人),voidsolve(){ intn,m; cin>>n>>m; vector<int>a(n); for(inti=......
  • 2024050801-重学 Java 设计模式《实战策略模式》
    重学Java设计模式:实战策略模式「模拟多种营销类型优惠券,折扣金额计算策略场景」一、前言文无第一,武无第二不同方向但同样努力的人,都有自身的价值和亮点,也都是可以互相学习的。不要太过于用自己手里的矛去攻击别人的盾......
  • 【java问答小知识3】一些Java基础的知识,用于想学习Java的小伙伴们建立一些简单的认知
    什么是Java的Lambda表达式?回答:Lambda表达式是Java8引入的一种语法糖,允许你以简洁的格式编写匿名函数。什么是Java的StreamAPI?回答:StreamAPI是Java8引入的,提供了一种声明式处理集合数据的方式,支持并行处理。什么是Java的Optional类?回答:Optional是一个容器对象,......