首页 > 其他分享 >计算机组成原理:一、计算机系统概述

计算机组成原理:一、计算机系统概述

时间:2023-11-16 21:13:31浏览次数:30  
标签:计算机系统 MAR 计算机 IR 存储体 指令 概述 MDR CU

参考视频:王道计算机考研 计算机组成原理_哔哩哔哩_bilibili

1. 硬件的发展

image-20231116152749991

2. 硬件的基本组成

2.1 冯诺依曼结构

逻辑结构:

image-20231116153840364

特点:

  • 指令和数据以同等地位存储在存储器中,可以按照地址寻访。
  • 指令由操作码地址码组成。
  • 以运算器为中心。这会带来一个问题:运算器本身是用来计算的工具,但如数据和代码的输入和输出都必须经过它,这显然会让效率降低,现代计算机结构对这一点进行了改进。

2.2 现代计算机结构

逻辑结构:

image-20231116155542150

特点:

  • 以存储器为中心。避免了数据和指令的输入输出都要经过运算器的造成的损耗。

逻辑部件的现实实现:

image-20231116155743758

其中:

  • CPU=运算器+控制器
  • 主存储器=内存
  • IO设备:包括输入和输出。此外:辅存(如硬盘)虽然是存储器的一种,但属于IO设备

3. 硬件的工作原理

3.1 主存储器

整体构成:image-20231116160952548存储体结构image-20231116161349419

解析

  • 存储体:数据存放处
    • 数据在存储体中是按照地址存储的。
    • 一些关键概念:
      • 存储单元:用于存储二进制数据的单位容器。存放位数取决于CPU的机器实现,但一般是8的倍数。(因为1Btye=8bits)
      • 存储字(word):存储在存储单元中的二进制数据。
      • 存储字长:存储单元可以存放二进制数据的位数。
      • 存储元:就是存储体的基本单位,每个存储元可以存储1bit的数据,通过电容实现。
  • MAR(memory address register 存储地址寄存器):记录地址,其位数与存储体的存储单元个数相对应。(如4位,说明存储体中有\(2^4=16\)个存储单元)
  • MDR(memory data register 存储数据寄存器):是存储和读取数据的媒介。具体逻辑如下:
    • 存储数据时:IO设备在MAR中存放数据在存储体中的地址,在MDR中存放要存放数据,随后数据被从MDR同步到指定地址的存储单元中。
    • 取出数据时:IO设备在MAR中存放要取出的数据的地址,随后数据将会从存储体指定位置的存储单元中取出,并存放在MDR中,IO设备将会从MDR中读取数据。
    • 因此,MDR位数=存储单元位数,因为它每次接收或发送一个存储单元的数据。

3.2 运算器的基本组成

构成图:image-20231116164738680

解析:

  • ACC(Accumulator 累加寄存器):用于存放操作数,或操作结果。
  • MQ(Multiple-Quotient Register 乘商寄存器):在乘除运算时,用于存放操作数或操作结果。
  • X(通用操作数寄存器):用于存放操作数。
  • ALU(Arithmetic and Logic Unit 算数逻辑单元):通过内部复杂的电路实现算数运算、逻辑运算。

3.3 控制器的基本组成

组成图:image-20231116165213880

解析:

  • CU(Control Unit 控制单元):分析指令(也就是当前指令的操作码),从而给出控制信号(例如指出要进行加法操作)。
  • IR(Instruction Register 指令寄存器):存放当前执行的指令(指令由操作码地址码组成)。
  • PC(Program Counter 程序计数器):存放下一条指令的地址,有自动+1的功能。默认为0。

3.4 实例

接下来将通过一个简单的c语言程序来分析这些硬件的工作流程。

题目:

现有程序如下:

int a=2,b=3,c=1,y=0;
void main(){
    y = a*b+c;
}

将其编译后装入主存储器的存储体,结构如下:

image-20231116165854558

计算机结构如下:

image-20231116170009787

现在计算机执行该程序,请分析其执行流程。

解答如下:

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

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

    2. M(MAR)->MDR(依照MAR中的地址,在存储体中取出数据,存到MDR中),导致(MDR)=00001 0000000101

      注意:这里之所以直接从1跳到了3,是因为这一句实际上是两步操作合并了。后面的一些跳行也是因为这个原因:

      1. 存储体从MAR中取地址。
      2. 存储体依照取出的地址从自身取值,然后赋给MDR。)
    3. (MDR)->IR(将MDR中的值赋给IR),导致IR=00001 0000000101

    4. OP(IR)->CU(从IR中截取操作码,交给CU),指令中的操作码送到CU,CU分析后得知,这时取数的指令

    5. Ad(IR)->MAR(从IR中截取地址码,交给MAR),指令的地址码交给MAR,导致(MAR)=5

    6. M(MAR)->MDR(依照MAR中的地址,在存储体中取出数据,存到MDR中),导致(MDR)=0000000000000010

    7. (MDR)->ACC(将MDR中的数据交给ACC),导致(ACC)=0000000000000010

  2. 第二条指令:上一条指令取值后PC会自动+1,所以现在(PC)=1;且上一步执行后,(ACC)=2

    1. (PC)->MAR,导致(MAR)=1

    2. M(MAR)->MDR,导致(MDR)=000100 0000000110

    3. (MDR)->IR,导致(IR)=000100 0000000110

    4. OP(IR)->CU,指令的操作码送到CU,CU分析得知,这是一条乘法指令。

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

    6. M(MAR)->MDR,导致(MDR)=0000000000000011=3

    7. (MDR)->MQ,导致(MQ)=0000000000000011=3

    8. (ACC)->X,导致(X)=2

    9. (MQ)*(X)->ACC,根据ALU实现乘法运算,导致(ACC)=6。如果成绩太大,就需要MQ辅助存储。

  3. 第三条指令:上一条指令取指后,(PC)=2,执行后,(ACC)=6

    1. (PC)->MAR,导致(MAR)=2

    2. M(MAR)->MDR,导致(MDR)=000011 0000000111

    3. (MDR)->IR,导致(IR)=000011 0000000111

    4. OP(IR),指令的操作码送到CU,CU分析得知,这是一条加法指令。

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

    6. M(MAR)->MDR,导致(MDR)=0000000000000001=1

    7. (MDR)->X,导致(X)=1

    8. (ACC)+(X)->ACC,根据ALU实现加法运算。

  4. 第四条指令:上一条指令取值后,(PC)=3,执行后,(ACC)=7

    1. (PC)->MAR,导致(MAR)=3

    2. M(MAR)->MDR,导致(MDR)=000010 0000001000

    3. (MDR)->IR,导致(IR)=000010 0000001000

    4. OP(IR),指令的操作码送到CU,CU分析得知,这是一条存数指令。

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

    6. (ACC)->MDR,导致(MDR)=7

    7. (MDR)->地址为8的存储单元,导致y=7

  5. 第五条指令:上一条指令取值后,(PC)=4

    1. (PC)->MAR,导致(MAR)=3

    2. M(MAR)->MDR,导致(MDR)=000110 0000000000

    3. (MDR)->IR,导致(IR)=000110 0000000000

    4. OP(IR),指令的操作码送到CU,CU分析得知,这是一条停机指令。

      (随后将会利用中断机制通知操作系统终止该进程,那又是另一段程序了)

4. 计算机系统的层次结构

4.1 计算机五层结构

image-20231116191644533

4.2 三种级别的语言

  • 高级语言:c/c++、java
  • 汇编语言
  • 机器语言

编译程序与解释程序的区别:

  • 编译程序:一次编译所有代码,以后只需要运行编译出来的文件。
  • 解释程序:编译一句,运行一句。每次重新运行都要再次一句一句的编译。shell、python、JavaScript就是采用的这种方式。

5. 计算机性能指标

5.1 存储器的性能指标

  • MAR:显示存储单元位数的多少。
  • MDR:显示存储单元的大小。

EG:MAR为32位,MDR为8位,那么可以存储的位数为:

\[2^32 * 8 = 32Gb = 4GB \]

5.2 CPU的性能指标

相关概念:

  • CPU时钟周期(单位:微秒/纳秒):表示CPU一个振荡周期耗时时间
  • CPU主频(单位:HZ):CPU内数字脉冲信号震荡的频率。表示在一秒内经过了多少CPU时钟周期。与时钟周期成反比。
  • CPI(Clock cycle Per Instruction):执行一条指令所需的时钟周期数。(一般都是看平均的)

由上述二者可以推出:

\[执行一条指令的耗时=CPI*时钟周期 \]

EG:某CPU主频为1000HZ,某程序包含100条指令,平均来看指令CPI=3,求该程序在CPU上执行所耗时间:

\[100*3/1000=0.3s \]

  • IPS(Instructions Per Second):每秒执行多少条指令。

\[IPS=\frac{1}{CPI*时钟周期}=\frac{主频}{CPI} \]

  • FLOPS(Floating-point Operations Per Second):每秒执行多少次浮点运算。

5.3 系统总体性能指标

数据通路带宽:数据总线一次所能并行传递数据的位数。(各个硬件之间通过数据总线来传递数据)

吞吐量:指系统在单位时间内可以处理的请求量。(这是一个抽象的指标,因为请求的单位大小并不确定)。

响应时间:指用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。

基准程序:就是跑分软件,里面包含了多种计算机指令。

标签:计算机系统,MAR,计算机,IR,存储体,指令,概述,MDR,CU
From: https://www.cnblogs.com/beasts777/p/17837267.html

相关文章

  • 计算机组成原理之处理器(单周期)
    引言处理器的实现方式决定了时钟周期长度和CPI。实现方式有单周期与流水线,本篇谈谈单周期处理器。目前CPU的频率一般是3GHZ/4GHZ,但是频率是有极限值的,受cycletime影响基本的RISC-V实现存储指令:ld,sd算术逻辑指令:add,sub,and,or条件分支指令:beq实现每条指令的前两个步......
  • 学期2023-2024-1 20231401 《计算机基础与程序设计》第八周学习总结
    学期2023-2024-120231401《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第八周作业这个作业的目标《计算机科学概论》第9章《C语言程序设计》第7章并......
  • 【开源】基于Vue.js的计算机机房作业管理系统的设计和实现
    一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的计算机机房作业管理系统包含课程档案模块、课时档案模块、学生作业模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,计算机机房作业管理系统基于角色的访问控制......
  • 计算机程序的自动化
    计算机程序的自动化是指通过编写程序来实现特定任务的自动执行。自动化程序可以根据预定义的规则和条件,自动完成一系列操作,而无需人工干预。这样可以提高工作效率,减少人力成本,并减少错误发生的可能性。计算机程序的自动化可以应用于各个领域,例如:批量处理:自动化程序可以处理大......
  • 计算机图形:计算法向量
    目录一元向量值函数及其导数一元向量值函数概念一元值函数的导数空间曲线的切线和法平面曲面的切平面与法线示例:求椭球体表面法向量参考一元向量值函数及其导数一元向量值函数概念已知空间曲线Γ(大写的γ)参数方程:\[\tag{1}\begin{cases}x=\varphi(t),\\y=\psi(t),t\in[\al......
  • 1-1 计算机基础和py环境搭建
    ​1.计算机基础1.1基本概念计算机组成:计算机是由多个硬件组合而成的东西,常见的硬件有:CPU、硬盘、内存、网卡、显示器、机箱、电源等等但单纯地组合并不能协作操作系统:用于协调计算机各个硬件,让硬件之间进行协同工作,以完成某个目标常见的操作系统:windows-xp\win7\win1......
  • rm概述
    概述rm命令来自英文单词“remove”的缩写,中文译为“消除”,其功能是用于删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。rm也是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意,如执行rm-rf/*命令则会清空系统中所有的文件,甚至无法恢复回......
  • 概述
    目录1、Hadoop是什么2、Hadoop三大发行版本3、Hadoop优势4、Hadoop组成4.1Hadoop1.x、2.x、3.x区别4.2HDFS概述4.3YARN概述4.4MapReduce1、Hadoop是什么1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。2)主要解决,海量数据的存储和海量数据的分析计算问题。3)广......
  • 2023-2024 20231313《计算机基础与程序设计》第八周学习总结
    2023-202420231313《计算机基础与程序设计》第八周学习总结作业速达作业课程班级链接作业要求计算机基础与程序设计第八周学习总结作业内容《计算机科学概论》第9章《C语言程序设计》第7章并完成云班课测试,功能设计与面向对象设计,面向对象设计过程,面向对象语......
  • 基于Python的热门旅游景点数据分析系统的设计与实现-计算机毕业设计源码+LW文档
    开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:PyCharm浏览器:谷歌浏览器DROPTABLEIFEXISTS08375_menpiaoxinxi;/*!40101SET@saved_cs_client=@@character_set_client/;/!40101SETcharacter_set_cl......