首页 > 其他分享 >计算机组成原理——第一章 计算机系统概述

计算机组成原理——第一章 计算机系统概述

时间:2024-03-28 17:32:01浏览次数:21  
标签:计算机系统 存储 计算机 程序 第一章 指令 概述 字长 CPU

考纲内容:

一、计算机系统层次结构

(1)计算机系统基本组成

(2)计算机硬件基本组成

(3)计算机软硬件的关系

(4)计算机系统的工作原理

        ①“存储程序”方式

        ②高级语言程序与机器语言程序的转换

        ③程序和指令的执行过程

二、计算机性能指标

        吞吐量;响应时间;CPU时钟周期;主频;CPI;CPU执行时间;

        MIPS;MFLOPS;GFLOPS;TFLOPS;PFLOPS;EFLOPS;ZFLOPS;

一、计算机系统层次结构

1.1  计算机软件的基本组成

① 系统软件:一组保证计算机系统高效、正确运行的基本软件。

     例:操作系统(OS)、数据库管理系统(DBMS)、语言处理系统、分布式软件系统、网络软件系统、标准库程序、服务性程序;

② 应用软件:用户为解决某个应用领域中各类问题而编制的程序。

     例:各类科学计算类程序、工程设计类程序。抖音、王者、迅雷等等。

1.2  计算机硬件的基本组成

1.2.1 各硬件的组成和功能

① 输入设备:

     将程序和数据以机器能识别和接受的信息形式输入计算机;

② 输出设备:

     将计算机处理的结果以人们能接受的形式或其他系统所要求的信息形式输出;

③ 存 储 器:

     计算机的存储中心,分为主存和辅存;主存储器中包含有MAR、MDR和存储体;

     CPU直接访问的存储器是主存储器,辅存中的信息必须调入主存中才能被CPU直接访问;

④ 运 算 器:

     计算机的执行部件,用于进行算数运算与逻辑运算;

⑤ 控 制 器:

     计算机的指挥中心,由程序计数器(PC),指令寄存器(IR),控制单元(CU)。

1.2.2 硬件的两大部分

(1)I/O设备(外设)=  输入设备 + 输出设备 + 辅助存储器(辅存) ;

(2)主机 = 主存储器(主存) + 运算器 + 控制器 ;

     ① 主    存 = 存储体 + MAR + MDR ;

     ② 运算器 = ACC + MQ + X + ALU ;

     ③ 控制器 = CU + IR + PC ;

1.3 主机各部分的基本组成及工作原理

1.3.1 主存储器

主存 = 存储体 + MAR + MDR ;

(1)存储体:存放二进制信息,由存储单元组成。

       ① 存储单元:由存储元件组成,每个存储单元存放一串二进制代码;

       ② 存 储 字 :存储单元中二进制代码的组成;

       ③ 存储字长:存储单元中二进制代码的位数;

       ④ 存储元件(存储元):每个存储元存储一个二进制信息 “0”或“1”;

(2)MAR:存储器地址寄存器

       ① 存放访存地址,经过地址译码后找到所选的存储单元。

       ② MAR的存储位数反映存储单元的个数:4位——有2^4个存储单元;

(3)MDR:存储器数据存储器

       ① 用于暂存要从存储器中读或写的信息;

       ② MDR的存储位数反映存储字长:16位——每个存储单元存放16bit,即1个字=16bit;

注:

     主存储器的时序控制逻辑用于产生存储器操作所需的各种时序信号。

1.3.2 运算器

运算器 = 算数逻辑单元(ALU)+ 若干通用寄存器(ACC+MQ+X+其他)+  标志寄存器;

(1)算数逻辑元件ALU:

        通过内部复杂的电路实现算术运算和逻辑运算;

(2)通用寄存器:

        用于暂时存放操作数和运算结果,其中累加器ACC、乘商寄存器MQ和操作数寄存器X是必须具备的,其他通用寄存器不是必须具备的。

(3)程序状态寄存器(标志寄存器PSW):

        用于存放ALU运算得到的一些标志信息或处理记得状态信息。

        如结果是否溢出、有无产生进位或借位、结果是否为负等。

ACC被加数、和被减数、差乘积高位被除数、余数
MQ乘数、乘积低位
X加数减数被乘数除数

1.3.3 控制器

控制器 = 控制单元CU + 指令寄存器IR + 程序计数器PC;

(1)程序计数器PC:

       存放当前欲执行指令的地址,具有自动+1功能(此处1指一条指令的长度);

(2)指令寄存器IR:

       存放当前指令,内容主要来自主存的MDR。指令包括地址码和操作码;

(3)控制单元CU:

       分析指令,给出控制信号。

1.4  计算机软硬件的关系

计算机系统 = 硬件系统 + 软件系统(计算机性能的好坏取决于“软”、“硬”件功能的总和)。

1.4.1 软件与硬件

(1)硬件是指有形的物理设备,是计算机系统中实际物理装置的总称;

(2)软件是指在硬件上运行的程序和相关的数据及文档;

(3)计算机系统性能的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥离不开硬件的支持。

1.4.2 软硬件的逻辑功能等价性

(1)硬件实现的往往是最基本的算数运算功能和逻辑运算功能,而其他功能大多通过软件的扩充得以实现;

(2)对于某一功能来说,既可以由硬件实现,又可以由软件实现,从用户角度来说软硬件在功能上是等价的——软/硬件逻辑功能等价性。

1.5 计算机系统的工作原理

1.5.1  “存储程序”方式

(1)“存储程序”的基本思想:

      将事先编制好的程序和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无需操作人员的干预,计算机会自动逐条执行指令,知道程序执行结束。

(2)冯·诺依曼计算机的特点:

      ① 计算机硬件系统由输入设备,输出设备,存储器,运算器,控制器五大部分组成;

      ② 采用“存储程序”的工作方式;

      ③ 指令和数据以同等的地位存储在存储器中,形式上没有任何区别,但是计算机可以区分它们;(比如:一块区域存放指令,只要地址属于这块区域,那么就是取指令)

      ④ 指令和数据均用二进制代码表示

      ⑤ 指令由操作码和地址码组成,操作码指出操作类型,地址码指出操作数的地址;

      ⑥ 冯·诺依曼计算机以运算器为中心,现代计算机一般以存储器为中心;

(3) 程序执行的过程:

     根据PC取指令 —> 指令译码,PC = PC+1 —> 取操作数并执行 —> 结果输出 —> 取指令

1.5.2  高级语言程序与机器语言程序的转换

(1)计算机系统的层次结构

      ① 虚拟机器M4(高级语言机器)—— 用编译程序翻译成汇编语言程序

      ② 虚拟机器M3(汇编语言机器)—— 用汇编程序翻译成机器语言程序——运用助记符

      ③ 虚拟机器M2(操作系统机器)—— 向上提供“广义指令”(系统调用)

      ④ 传统机器M1(机器语言机器)—— 执行二进制机器指令,机器语言与汇编语言一 一对应

      ⑤ 传统机器M0( 微指令 系统 )—— 由硬件直接执行微指令。

注:

      下层是上层的基础,上层是下层的扩展。①②③是软件层面,④⑤是硬件层面。

(2)翻译程序的概念

      ① 解释程序(解释器):将源程序的一条语句翻译成对应于机器语言的语句,并且立即执行。紧接着再翻译下一句(每次执行都要翻译);

      ② 编译程序(编译器):将高级语言程序翻译成翻译成汇编语言程序后需要通过汇编程序翻译成机器语言,也可以直接通过编译程序直接翻译成机器语言程序。(强调一次性全部翻译);

      ③汇编程序(汇编器):将汇编语言程序翻译成机器语言程序。

(3)翻译程序的四个阶段(从源文件到可执行文件)

      以UNIX系统中GCC编译器程序为例:

      ① 预处理阶段:通过预处理器cpp,将 .c 源文件处理为 .i 源文件;

      ② 编译阶段:通过编辑器ccl,将 .i 源文件编译成 .s 汇编语言源程序;

      ③ 汇编阶段:通过汇编器as,将 .s汇编语言源程序打包成 .o 可重定位目标文件;

      ④ 链接阶段:通过链接器ld,将多个可重定位目标文件和标准库函数文件合并成可执行目标文件。

1.5.3  程序和指令的执行过程

二、计算机性能指标

2.1 存储器的性能指标

(1)总容量

      ① 主存储器中MAR位数反映存储单元的个数;

      ② 主存储器中MDR位数=存储字长=每个存储单元的大小;

      ③ 总容量 = 存储单元的个数 × 存储字长(bit);

举例:当MAR为32位,MDR为8位时,总容量 = 2 ^ 32 × 8 bit = 4GB;

(2)计数制

      ① 若表示存储空间、文件大小之类的计数制:bit,B,KB,MB,GB,TB

          进位:除了1B = 8 bit ,其他均为 2^10=1024,如:1TB = 1024 GB;

      ② 若表示其他性能指标:K,M,G,T,P,E,Z

          进位:10^3 = 1000;

2.2 CPU的性能指标

(1)CPU时钟周期

       机器内部主时钟脉冲信号的宽度,是CPU工作的最小工作单位;

注:

       时钟周期:以相邻状态单元间组合逻辑电路的最大延迟为基准确定;

       时钟脉冲信号:由机器脉冲源发出的脉冲信号经整形和分频后形成;

(2)CPU主频(CPU时钟频率)

       机器内部主时钟的频率,即每秒多少个时钟周期。

       对同型号计算机,主频越高,完成指令一个执行步骤所用时间越短,执行指令时间越快

       CPU主频 = 1/CPU时钟周期;

(3)CPI:执行一条指令所需的时钟周期数;

         执行一条指令耗时:CPI × CPU时钟周期;

         CPU执行时间(整个程序的耗时)= CPU时钟周期数/主频 = (指令条数*CPI)/主频

(4)IPS:每秒执行多少指令

         IPS = 主频 / 平均CPI;

(5)FLOPS:每秒执行多少次浮点运算

注:

        IPS:单位为1,KIPS单位为1K,MIPS同理类推;

        FLOPS:单位为1,KFLOPS同理类推,还有M,G,T,P,E,Z。

2.3 系统整体的性能指标

(1)吞吐量

        指系统在单位时间内处理请求的数量。取决于信息能多快输入内存,CPU能多快取指令

        系统吞吐量主要取决于主存的存取周期。

(2)响应时间

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

        ① CPU时间(运行一个程序所花费的时间);

        ② 等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间);

(3)数据通路带宽

        数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据);

三、章末总结

(1)计算机由哪几部分组成? 以哪部分为中心?

① 计算机由运算器、控制器、存储器、输入设备及输出设备五大部分构成;

② 现代计算机通常把运算器和控制器集成在一个芯片上, 合称中央处理器。

③ 在微处理器面世之前,以运算器为中心;现代计算机已发展为以存储器为中心。

(2)主频高的CPU一定比主频低的CPU快吗? 为什么?

① 衡量 CPU 运算速度的指标有很多,不能以单独的某个指标来判断CPU 的好坏。

② CPU 的主频表示 CPU 内数字脉冲信号振荡的速度,主频和实际的运算速度存在一定的关系, 但目前还没有一个确定的公式能够定量两者的数值关系, 因为 CPU 的运算速度还要看CPU 的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、Cache 大小等)。由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的 CPU 实际运算速度较低的现象。

(3)不同级别的语言编写的程序有什么区别? 哪种语言编写的程序能被硬件直接执行?

① 机器语言和汇编语言与机器指令对应,而高级语言不与指令直接对应,具有较好的可移植性。

② 其中机器语言编写的程序可以被硬件直接执行。

(4)翻译程序、解释程序、汇编程序、编译程序的区别和联系是什么?

① 翻译程序有两种:

     一种是编译程序, 它将高级语言源程序一次全部翻译成目标程序, 只要源程序不变,就无须重新翻译。

     另一种是解释程序, 它将源程序的一条语句翻译成对应的机器目标代码, 并立即执行,然后翻译下一条源程序语句并执行, 直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句执行一句, 并且不会生成目标程序。

② 汇编程序也是一种语言翻译程序, 它把汇编语言源程序翻译为机器语言程序。

③ 编译程序与汇编程序的区别:

     若源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”, 则这样的一个翻译程序称为编译程序。

     若源语言是汇编语言,而目标语言是机器语言, 则这样的一个翻译程序称为汇编程序。

(5)什么是透明性? 透明是指什么都能看见吗?

① 在计算机领域中,站在某类用户的角度,若感觉不到某个事物或属性的存在, 即“看”不到某个事物或属性,则称为“对该用户而言, 某个事物或属性是透明的”。

② 这与日常生活中的“透明”概念(公开、看得见)正好相反。

③ 例如:

     对于高级语言程序员来说, 浮点数格式、乘法指令等这些指令的格式、数据如何在运算器中运算等都是透明的;

     而对于机器语言或汇编语言程序员来说, 指令的格式、机器结构、数据格式等则不是透明的。

     在 CPU中, IR、MAR 和 MDR对各类程序员都是透明的。

(6)字、字长、机器字长、指令字长、存储字长的区别和联系是什么?

① 字用来表示被处理信息的单位,用来度量数据类型的宽度,如x86机器中将一个字定义为16位。

② 字长是指 CPU 内部用于整数运算的数据通路的宽度, 因此字长等于 CPU 内部用于整数运算的运算器位数和通用寄存器宽度, 它反映了计算机处理信息的能力。

③ 指令字长: 一个指令字中包含的二进制代码的位数。

④ 存储字长: 一个存储单元存储的二进制代码的位数。

注:

     ① 它们都必须是字节的整数倍。

     ② 指令字长一般取存储字长的整数倍,:

     若指令字长等于存储字长的2倍, 则需要2个访存周期来取出一条指令;

     若指令字长等于存储字长, 则取指令周期等于机器周期。

     ③ 早期的存储字长一般与指令字长、字长相等,因此访问一次主存储器便可取出一条指令或一个数据。随着计算机的发展,指令字长、字长都可变, 但必须都是字节的整数倍。

(7)计算机体系结构和计算机组成的区别和联系是什么?

① 计算机体系结构是指机器语言或汇编语言程序员所看得到的传统机器的属性, 包括指令集、数据类型、存储器寻址技术等, 大都属于抽象的属性。

② 计算机组成是指如何实现计算机体系结构所体现的属性,它包含许多对程序员来说透明的硬件细节。例如,指令系统属于结构的问题, 但指令的实现即如何取指令、分析指令、取操作数、如何运算等都属于组成的问题。因此,当两台机器的指令系统相同时, 只能认为它们具有相同的结构,至于这两台机器如何实现其指令,则完全可以不同,即可以认为它们的组成方式是不同的。

(8)基准程序执行得越快是否说明机器的性能越好?

一般情况下,基准测试程序能够反映机器性能的好坏。但是,由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题

标签:计算机系统,存储,计算机,程序,第一章,指令,概述,字长,CPU
From: https://blog.csdn.net/qike1314/article/details/136645094

相关文章

  • Drools业务规则管理系统25_规则引擎概述2
    一、什么是规则引擎规则引擎,全称为业务规则管理系统,英文名为BRMS(即BusinessRuleManagementSystem)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。需要注意的是规则引擎并......
  • Dapr微服务应用开发系列0:概述
    题记:Dapr是什么,Dapr包含什么,为什么要用Dapr。Dapr是什么Dapr(Distributed Application Runtime),是微软Azure内部创新孵化团队的一个开源项目,皆在解决微服务应用开发过程的一些共性问题。以官方文档的说法,Dapr是一个可移植、事件驱动的运行时,让企业开发者更容易利用各种语言和框......
  • 《深入理解计算机系统》学习(4):过程(如函数)和栈存储
    目录过程1运行时栈2转移控制3数据传送4栈上局部存储过程过程中是软件中一种很重要的抽象,提供了一种封装代码的方式,用一组指定的参数和一个可选的返回值实现了某种功能。然后,可以在程序的不同的地方使用这个功能。设计良好的软件用过程作为抽象机制,隐藏某个行为......
  • 安全架构概述
         ......
  • 计算机体系结构-概述
    研究内容软硬之间游走,从晶体管到数电再到CPU微架构,再到指令集ISA,再到软件层的ABI和API。计算机体系结构追求从整体的角度来设计计算机,使计算机更好。简而言之,计算机体系结构就是:在给定的制造工艺上,设计计算机的整体架构,以满足应用的需要。评估标准评估计算机好坏有几个......
  • 人工智能和机器学习概述
    引言人工智能(AI)和机器学习(ML)是当今科技领域中最热门的话题之一。它们正在改变我们的生活方式、工作方式以及我们与世界的互动方式。在人工智能越来越被大众所听闻,技术越来越先进的今天,老猿作为一个初学者,特地准备了这篇介绍人工智能基础知识概貌介绍的文章,这篇文章本身......
  • 加密算法概述:分类与常见算法
    码到三十五:个人主页心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得!在信息安全领域,加密技术是保护数据不被未授权访问的关键手段。Java作为一种广泛使用的编程语言,提供了丰富的加密API,支持多种加密算法。本文将介绍Java中加密算法的分类以及常见的......
  • LLM - 大语言模型的指令微调(Instruction Tuning) 概述
    欢迎关注我的CSDN:https://spike.blog.csdn.net/本文地址:https://blog.csdn.net/caroline_wendy/article/details/137009993大语言模型的指令微调(InstructionTuning)是一种优化技术,通过在特定的数据集上进一步训练大型语言模型(LLMs),使其能够更好地理解和遵循人类的指......
  • 09-Vue-概述
    Vue官网:Vue.js(vuejs.org)Avue文档:Date日期|Avue(avuejs.com) 前置工作1)在使用Vue时,我们推荐在你的浏览器上 安装—Vue.js(vuejs.org),它允许你在一个更友好的界面中审查和调试Vue应用。2) 直接下载开发版本的vue.js,并用 <script> 标签引入,Vue 会被注册......
  • 嵌入式学习开发第一章
    嵌入式开发入门:第一章Linux操作系统Linux操作系统的安装与常见命令的使用文章目录嵌入式开发入门:第一章Linux操作系统Linux操作系统的安装与常见命令的使用前言一、嵌入式系统是什么?二、Linux操作系统的安装(Ubuntu)1下载所需资源1-1下载虚拟机1-2下载ubuntu镜像文件......