「计算机组成原理」计算机系统概述

news2024/9/20 8:58:46

文章目录

  • 一、计算机发展历程
    • 1.1 什么是计算机系统
    • 1.2 硬件的发展
      • 1.2.1 硬件发展
      • 1.2.2 摩尔定律
    • 1.3 软件的发展
    • 1.4 目前的发展趋势
  • 二、计算机系统的多级层次结构
    • 2.1 编程语言的三个等级
    • 2.2 计算机系统层次结构
  • 三、计算机硬件的基本组成
    • 3.1 冯诺依曼结构
    • 3.2 现代计算机结构
  • 四、计算机各硬件的工作原理
    • 4.1 主存
    • 4.2 运算器
    • 4.3 控制器
    • 4.4 工作过程
  • 五、计算机性能指标
    • 5.1 存储器的容量
    • 5.2 CPU
    • 5.3 系统整体性能指标
    • 5.4 区分常用单位
    • 5.5 小结

一、计算机发展历程

1.1 什么是计算机系统

计算机系统=硬件+软件,软件又分为系统软件和应用软件。
系统软件如操作系统、数据库管理系统DBMS、标准程序库、网络软件、语言处理程序、服务程序等。
应用软件就是我们平常经常使用的如微信、IDEA等。

1.2 硬件的发展

1.2.1 硬件发展

硬件的发展大体可以划分为4个时代,分别是电子管时代、晶体管时代、中小规模集成电路时代和大规模超大规模集成电路时代。划分不同时代的主要依据是所使用的逻辑元件的不同。

  1. 电子管时代1946~1957
    电子管时代使用的逻辑元件是电子管,此时的计算机不仅体积超大,而且耗电量巨大。
  2. 晶体管时代1958~1964
    晶体管时代使用的逻辑元件是晶体管,此时的计算机体积和功耗都降低了。
  3. 中小规模集成电路时代1964~1971
    中小规模集成电路时代使用的逻辑元件是中小规模集成电路,该逻辑元件将大量的晶体管集成在了基片上。
  4. 大规模超大规模集成电路时代1972~至今
    大规模超大规模集成电路时代使用的逻辑元件是大规模和超大规模集成电路,如苹果的A16芯片采用4nm工艺,集成了近160亿晶体管。

一个小故事:
1947年,贝尔实验室发明了晶体管(C语言和UNIX也诞生于贝尔实验室),核心人物是William Shockley(威廉·肖克利),他也被称为晶体管之父。1955年他离开了贝尔实验室,在硅谷创建了肖克利实验室股份有限公司。但是他个人对于管理公司的方式与公司内部不和,因此公司内部的8名主要人员于1957年离开了公司创办了仙童半导体公司,这8个人也被肖克利叫做八叛徒(traitorous eight)。1959年仙童半导体公司发明了第一块集成电路。1968年,摩尔等人离开仙童创立了Intel。1969年,仙童销售部负责人桑德斯离开仙童创立了AMD

1.2.2 摩尔定律

摩尔定律的大致内容是:集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。

1.3 软件的发展

为了完整性加的部分,该系列不讨论过多软件部分。

1.4 目前的发展趋势

计算机目前的发展趋势两极分化:

  • 微型计算机向更微型化、网络化、高性能、多用途方向发展。
  • 巨型机向更巨型化、超高速、并行处理、智能化方向发展。如我国的神威·太湖之光,感兴趣的可以参考超级计算机榜单。

二、计算机系统的多级层次结构

2.1 编程语言的三个等级

计算机系统的层次划分有很多角度,作为一个程序猿来说,我平常最关心的事情之一就是编程语言。编程语言可以分为三个级别:机器语言、汇编语言和高级语言。

  • 机器语言就是0101的二进制代码,也就是所谓的计算机唯一认识的语言(其实计算机不认识01,但是它能识别高低电平)。机器语言是也最底层、最接近硬件的语言
  • 汇编语言和机器语言是一一对应的,只不过它更容易被程序猿理解,相当于一个助记符。
  • 高级语言就是现在大多数开发人员经常使用的如C/C++等。

补充:
编译型语言:编译型语言需要经过编译程序编译成汇编语言,再通过汇编程序汇编成机器语言,然后计算机就可以执行了。编译型语言会被一次全部翻译成机器语言。
解释性语言:解释型语言会直接被解释程序翻译成机器语言。与编译型语言不同的是,解释型语言是解释一句运行一句。
举个不是特别恰当的例子:编译程序与解释程序的区别类似于翻译软件和同声传译。翻译软件会将一个文本一次性全部翻译完,而同声传译则需要发言者说一句,工作人员翻译一句。
编译、汇编、解释程序可以统称为翻译程序

2.2 计算机系统层次结构

根据使用的编程语言不同,可以将计算机系统分为5个层次,自下至上依次是微程序机器M0(微指令机器)–>传统机器M1(用机器语言的机器)–>虚拟机器M2(操作系统机器)–>虚拟机器M3(汇编语言机器)–>虚拟机器M4(高级语言机器)。下层是上层的基础,上层是下层的扩展。
传统机器M1就是可以执行二进制代码指令的机器,但是一条指令又可以分为多个微指令,这些微指令在M0上由硬件直接执行。汇编语言不能由机器直接执行,需要汇编程序翻译成机器语言,因此将M3称为虚拟机器。同样的,高级语言也需要由编译器翻译成汇编语言,所以M4也是虚拟机器。而高级语言和汇编语言程序难免会用到操作系统的服务如系统调用(又称与广义指令),因此他们与M1之间还需要操作系统机器M2。其中M2至M4属于软件,M0和M1属于硬件,是计算机组成原理要探讨的重点。
计算机系统成次结构

三、计算机硬件的基本组成

计算机硬件由输入设备、输出设备、运算器、控制器、主存储器5大部分组成。输入输出设备就是IO设备,像键盘和显示器,一个将信息转换成计算机认识的形式,一个将结果转换成人认识的形式。主存储器用来存放数据和程序。运算器用来进行算数和逻辑运算。控制器指挥各部件使程序运行。

3.1 冯诺依曼结构

在这里插入图片描述

冯诺依曼机器有以下特点:

  1. 计算机由5大部件组成
  2. 指令和数据以同等地位存放在存储器,可按地址寻址
  3. 指令和数据用二进制表示
  4. 指令由操作码和地址码组成
  5. 存储程序
  6. 以运算器为中心

冯诺依曼首次提出了“存储程序”的概念:将指令以二进制代码的形式实现输入到计算机的主存储器,然后按其首地址执行第一条指令,接着就按照程序规定的顺序执行其他指令,直至程序结束。
而以运算器为中心并不合适,运算器的主要功能是运算,而冯诺依曼结构的计算机不论是从输入设备输入数据到存储器,还是输出设备从存储器拿走数据都需要运算器的中转,这就使得该结构的计算机效率较低
软件和硬件在逻辑上是等效的是指同样的事情,只使用软件或者只使用硬件都可以完成,只不过是用软件成本低但效率也低,而使用硬件效率高但成本也高。

3.2 现代计算机结构

为了解决冯诺依曼机器的缺点,现在计算机以存储器为中心,而且大多将运算器和控制器集成为CPU。
在这里插入图片描述
下边的示意图会更清晰的表明现代计算机的结构:
在这里插入图片描述

四、计算机各硬件的工作原理

4.1 主存

主存由存储体、地址寄存器MAR、数据寄存器MDR组成(现在的计算机通常把MAR和MDR集成在CPU中,但其逻辑上仍属于主存)。存储体内存储了数据。MAR在读写时分别存储了要从哪里读和要写到哪里去。MDR在读写是存储了要读出或写入的数据。
存储单元:存储体由存储单元组成,每个地址对应一个存储单元。
存储字(word):存储单元中二进制代码的组合。
存储字长:存储单元中二进制代码的位数,一般是8bit的整数倍。
存储元:存储二进制的电子元件,每个存储元可存1bit.
MAR的位数反映了存储单元的个数,如5位的MAR最多可表示 2 5 = 32 2^5=32 25=32个存储单元。MDR的位数反映了存储字长,如32位的MDR表示存储字长为32bit,此时一个就是32bit.此时该存储体的存储容量就是 2 5 × 32 = 1024 b i t = 128 B 2^5 \times 32 = 1024bit = 128B 25×32=1024bit=128B注意:字word是和存储体相关的概念,而字节Byte是一个单位,二者没什么必然联系。

在这里插入图片描述

4.2 运算器

运算器由累加寄存器ACC、乘上寄存器MQ、操作数寄存器X、算术逻辑单元ALU组成。其核心是ALU,用来实现算术运算和逻辑运算。其于的寄存器主要用于存储操作数或者运行结果:
在这里插入图片描述

记忆tips:把两个操作数一个叫做被操作数,一个叫做操作数。
关于被操作数和操作数:除了乘法的被操作数存在X中,其于所有被操作数均存放于ACC中。除了乘法的操作数存放于MQ中,其于所有操作数均存放于X中。
关于MQ结果:加减法的结果存放于ACC中,乘除法的结果存放于ACC和MQ中。

在这里插入图片描述

4.3 控制器

控制器由控制单元CU、指令寄存器IR、程序计数器PC组成。CU负责分析指令,给各个部件发出控制信号。IR存放当前执行的指令,PC存放下一条指令的地址,可以自动+1.
在这里插入图片描述
完成一条指令可以划分为3个阶段:取指令、分析指令和执行指令。首先根据PC中的地址将指令取出放到IR中。IR将该指令的地址码部分送往MAR来指名要操作的数据所处的位置,同时将该指令的操作码部分送往CU,由CU分析该指令并控制各部件执行该指令。

4.4 工作过程

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

以上述代码为例,该代码经过汇编后变成如下的机器指令存储于主存中:
在这里插入图片描述
以执行主存地址为1的指令为例:由于在此之前已经执行过地址为0的指令,PC的值已经自动+1,因此此时各寄存器的情况为:(PC)=1,(ACC)=2.在此基础上执行指令1的步骤如下:


取指令,该阶段执行结束后PC会自动+1
#1:(PC) —> MAR,将PC中的数据送往MAR,导致(MAR)=1
#2/3:M(MAR) —> MDR,将MAR中的数据送往MDR,导致(MDR)=0001000000000110
#4:(MDR) —> IR,将MDR中的数据送往IR,导致(IR)=0001000000000110


分析指令
#5:OP(IR) —> CU,将指令的操作码部分送往CU,CU分析后得知这是一条乘法指令


执行指令
#6:Ad(IR) —> MAR,将指令的地址码部分送往MAR,导致(MAR)=6
#7/8:M(MAR) —> MDR,将地址为6的数据送往MDR,导致(MDR)=0000000000000011=3
#9:MDR —> MQ,将MDR中的数据送往MQ,导致(MQ)=0000000000000011=3
#10:(ACC) —> X,将ACC中的数据送往X,导致(X)=2
#11:(MQ)*(X) —> ACC,由ALU实现乘法运算,导致(ACC)=6。若结果太大,则需要MQ辅助存储低位。
在这里插入图片描述

至此指令2执行完毕,#1~#4为取指令,#5为分析指令,#6~#11为执行指令。其中所有指令的#1~#5即取指令分析指令阶段都相同
通过该过程可以看出,无论是指令还是数据都需要从MDR中送到不同的寄存器。若此次操作取出的是指令,则需要MDR送往IR;若此次操作取出的是数据,则需要根据不同的操作送往不同的寄存器。CPU区分此次取出的是指令还是数据是根据指令周期的不同阶段,若此时处于取指阶段,那么取出的就是指令;若此时处于执行阶段,取出的就是数据。

五、计算机性能指标

5.1 存储器的容量

存储器的容量由存储单元的个数以及每个存储单元的存储字长共同决定。存储单元的个数由MAR的位数决定,存储字长由MDR的位数决定。如32位的MAR最多可表示 2 32 2^{32} 232个存储单元,8位的MDR表示存储字长为8bit,该存储体的存储容量就是 2 32 × 8 b i t = 4 G B 2^{32} \times 8 bit = 4GB 232×8bit=4GB

5.2 CPU

  1. 时钟周期
    时钟周期通常是节拍脉冲,它是最CPU中最小的时间单位,也就是说每个操作至少需要一个时钟周期。单位是微秒、纳秒。
    在这里插入图片描述
  2. 主频(时钟频率)
    主频指的是CPU一秒钟有多少个时钟周期,它等于 1 时钟周期 \frac{1}{时钟周期} 时钟周期1,单位是Hz。
  3. CPI
    CPI(Clock cycle Per Instruction)指执行一条指令需要多少个时钟周期。对于同一个CPU,由于不同指令的所需要做的微操作不同,因此它们的CPI不同;对于不同的CPU执行相同的指令,由于系统架构不同,它们的CPI也会不相同;对于同一个CPU多次执行同一个指令,也可能会因为系统状态的不同而导致其CPI不同。计算CPI时通常取平均值。
    这样计算 平均执行一条指令的耗时 = 平均 C P I × 时钟周期 平均执行一条指令的耗时 = 平均CPI \times 时钟周期 平均执行一条指令的耗时=平均CPI×时钟周期.
  4. CPU执行时间
    CPU执行时间指的是整个程序的耗时,它等于 指令条数 × 平均 C P I × 时钟周期 指令条数 \times 平均CPI \times 时钟周期 指令条数×平均CPI×时钟周期
  5. IPS
    IPS(Instructions Per Second)表示CPU一秒钟能执行多少条指令,它等于 主频 平均 C P I \frac{主频}{平均CPI} 平均CPI主频
  6. FLOPS
    FLOPS(Floating-point Operations Per Second)表示CPU每秒能进行多少次浮点数运算。类似的还有KFLOPS、MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS,后者一次是前者的 1 0 3 10^3 103倍。

5.3 系统整体性能指标

  1. 数据通路带宽
    表示数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)。
  2. 吞吐量
    表示单位时间内系统能处理请求的数量,它主要取决于主存的存取周期。
  3. 响应时间
    表示用户向计算机发起了一个请求开始,到系统对该请求作出响应为止所需要的时间。它通常包括CPU时间和等待时间(磁盘访问、存储器访问、I/O操作、操作系统开销等)。
  4. 基准程序
    向鲁大师这样的跑分软件,不要过分相信。

5.4 区分常用单位

描述大小时: K = 2 10 、 M = 2 20 、 G = 2 30 、 T = 2 40 K=2^{10} 、M=2^{20} 、G=2^{30} 、T=2^{40} K=210M=220G=230T=240
描述速率时: K = 1 0 3 、 M = 1 0 6 、 G = 1 0 9 、 T = 2 12 K=10^{3} 、M=10^{6} 、G=10^{9} 、T=2^{12} K=103M=106G=109T=212

5.5 小结

主频高的CPU不一定比主频低的CPU运行速度更快,因为他们的CPI可能不同。
相同CPI的两个CPU,若A比B的主频高,A也不一定比B快,这是因为二者架构可能不同,同一条指令所需要的微操作可能不同。
基准程序执行越快不能说明机器越好,这是因为基准程序中的语句存在频度差异,其结果不能完全说明问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/182896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Codeforces Round #847 (Div. 3) 的 C. Premutation(找规律题)

题面:中文大意:如果一个n个数字的序列恰好包含了1到n的所有整数,那么这个序列就被称为置换。例如,序列[3,1,4,2]。1]和[2,1]是互换,但是[1,2,1]&a…

Java设计模式-备忘录模式Memento

介绍 备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。可以这里理解备忘录模式:现实生活中的备忘录是用来记录某…

window系统path环境变量删除了怎么办?

前言 纪念我今天装JDK配置环境时,误删了path环境变量,后总结的知识点,希望对大家有所帮助,期待大家的评论! 目录 前言 方案一:从注册表里找 方案二:实在没办法,从网上复制 方案三…

7-1输入/输出系统-概念外设接口

文章目录一.I/O系统基本概念(一)输入/输出系统(二)I/O控制方式二.外部设备1.显示存储器VRAM2.字符显示器3.外储存器三.I/O接口1.I/O接口的功能2.I/O接口的基本结构3.I/O接口的工作原理4.I/O接口的类型5.I/O端口及其编址&#xff0…

网络编程(TCP+UDP)(3)

1)咱们之前所说的网络分层就是因为说如果说使用一个协议太复杂了,那么我们就需要把这个协议分层,每一个协议都会简单一些,灵活替换也更方便; 2)咱们现在需要实现一个网络计算器; 1)上图是模拟一个计算器服务器和客户端…

第01天-Java数据结构和算法

001_几个经典的算法面试题(1)暴力匹配不推荐KMP算法分治算法002_几个经典的算法面试题(2)回溯算法图的深度优先遍历算法(DFS) 贪心算法优化003_内容介绍和授课方式数据结构和算法的重要性课程亮点和授课方式004_数据结构和算法的关系005_编程中实际遇到的几个问题Java代码小结…

机器学习实战(第二版)读书笔记(3)——膨胀卷积,WaveNet

一、基础知识 对于一个卷积层,如果希望增加输出单元的感受野,一般可以通过三种方式实现: 增加卷积核的大小增加层数(比如两层3 3 的卷积可以近似一层5 5 卷积的效果)在卷积之前进行池化操作 其中第1,2种…

推荐5个很牛的开源项目

大家伙们年过了哈,该收拾收拾心情上班了。 不知道大家有没有这种感觉,年纪越大,越觉得年过得快。感觉好像才刚开始,马上初五了,初六送完穷鬼,初七送自己出来上班了(没有哭)。 不过…

Python编写的词频统计工具的使用说明

一、工具下载 https://download.csdn.net/download/huangbangqing12/87400984 二、工具使用方式 目录文件如下所示: 请先在word.txt文件里放入目标长尾词,一行一个: 文件-另存为: 选择utf-8编码并直接保存替换原文件&#xff1…

二叉树的层次遍历

文章目录二叉树的层次遍历二叉树的层次遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637.二叉树的层平均值429. N 叉树的层序遍历515.在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针填充每个节点的下一个右侧节点指针II104.二叉树的最大深度二叉树的最小深度二…

ESPnet

文章目录关于 ESPnet安装配置运行 yesno关于 ESPnet github: https://github.com/espnet/espnet ESPnet is an end-to-end speech processing toolkit covering end-to-end speech recognition, text-to-speech, speech translation, speech enhancement, speaker …

机器自动翻译古文拼音 - 十大宋词 - 声声慢 寻寻觅觅 李清照

声声慢寻寻觅觅 宋李清照 寻寻觅觅,冷冷清清,凄凄惨惨戚戚。 乍暖还寒时候,最难将息。 三杯两盏淡酒,怎敌他、晚来风急。 雁过也,最伤心,却是旧时相识。 满地黄花堆积,憔悴损,如今…

Web 应用程序——我的心理备忘单

介绍本文是“持续交付:HTML 到 Kubernetes”的一部分。虽然我迫不及待地想深入了解分布式系统的细节,但我发现自己处于一个不愉快的境地:我认为最好从前端开始写。那是因为网络应用程序是当今的标准。在多个云中部署的 ArgoCD-Kubernetes 集群…

商业智能BI,大数据时代的新趋势

根据IDC预测,2025年时中国产生的数据量预计将达48.6ZB,在全球中的比例为27.8%。在未来,数据会是构建现代社会的基本要素,也是社会的基本建设。这也不禁让我想起了最近新公布的《关于构建数据基础制度更好发挥数据要素作用的意见》…

高并发下如何保证接口的幂等性?

一、什么是幂等? 看一下维基百科怎么说的: 幂等性:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 二、使用幂等的场景 1、前端重复提交 用户注册,用户创建商品等操作&#…

使用这个工具,本地调试UI再也不用怕了

前言:在我们日常使用中,很多场景都会用到UI自动化,通用的都是PythonSelenium的方式。今天介绍一种,不用通过代码,直接通过页面可视化配置的方式,就可以完成我们想要的自动化场景。话不多说,正片…

ElasticSearch - 结果处理

目录 结果处理-排序 结果处理-分页 结果处理-高亮 结果处理-排序 elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等普通字段排序keyword、数…

pytorch图像分类全流程(五)--图像分类算法精度评估指标

本次我们来学习图像分类算法精度的各种评估指标:precision、recall、accuracy、f1-score、AP、AUC。 首先我们来学一个很重要的概念,混淆矩阵: 1.精确率(Precision): 指的是所有被判定为正类(TPFP)中&…

8-Arm PEG-Succinamide Acid,8-Arm PEG-SAA,八臂-聚乙二醇-丁二酸酰胺供应

英文名称:8-Arm PEG-SAA,8-Arm PEG-Succinamide Acid 中文名称:八臂-聚乙二醇-丁二酸酰胺 8-臂PEG-SAA是一种多臂PEG衍生物,在连接到一个六甘油核心的八个臂的每个末端具有羧基。PEG和丁二酰胺酸COOH基团之间存在C3酰胺键。PEG酸…

HTML中引入CSS样式的第一种方式:内联定义方式

<!-- HTML中引入CSS样式的第一种方式&#xff1a;内联定义方式 语法格式&#xff1a; <标签 style"样式名:样式值;样式名:样式值;样式名:样式值;..."></标签> --> <!DOCTYPE html> <html> <head> …