计组系统概述(7000字超长完整版!) 对于之前的总结又进行了一次更新,这次加入了更多例题,并且重新设置了层次结构,条理更加清晰,希望对大家有所帮助。 # 1.计算机系统概述 盲目的计算机组成原理的学习是十分痛苦滴,那么我们究竟要学习计算机组成原理的什么呢?首先计算机组成原理主要描述的是计算机的内部结构、包括运算器、存储器、控制器、输入输出五大部件,它讲述了数据怎么存储和运算,指令系统又是什么,CPU怎么运转。 很多同学会好奇,我们为什么要学习计算机组成原理呢?学习计算机组成原理可以更好地理解软硬件之间的关系。它是软件和硬件之间的一座桥梁,既隔离了软件和硬件,也提供了让软件无需关心硬件,就能直接操作硬件的接口。学习计组,会对整个软件开发领域的全貌有一个系统的了解。 学习计算机组成原理时,可以抓住《一个中心,两个基本点》,可以分为两层学习,底层是数字电路,上层是功能结构。心里始终要带着一个核心问题:《程序是如何在计算机里跑起来的?》一层层深入、一层层展开就会收获更快。 那么接下来就开始我们的计算机组成原理学习之旅吧! ## 1.1.计算机发展历程 计算机发展分为硬件发展和软件发展。下面我们将分别展开论述。 1.1.1.硬件发展 计算机硬件发展主要经历了四代。分别为:电子管时代(1946-1957)特点:逻辑件采用电子管,使用机器语言进行编程,主存用延迟线或磁鼓存储信息。晶体管时代(1958-1964)特点:逻辑件采用晶体管,主存使用磁芯存储器,开始出现高级语言,有了操作系统的雏形。中小规模集成电路时代(1965-1971)特点:逻辑件采用中小规模集成电路;半导体存储代替磁芯存储,高级语言和操作系统迅速发展,开始有了分时操作系统。超大规模集成电路时代(1972至今)特点:逻辑件采用大规模集成电路和超大规模继承电路,产生了微处理器;例如并行、流水线、高速缓存、虚拟存储等概念都产生。 1.1.2.计算机件更新换代 摩尔定律:每隔18个月性能便会增加一倍。 半导体存储发展:1KB、4KB、16KB、64KB、256KB、1MB等等 微处理器发展:Intel8008(8位),8086(16位)等等,这里的位数指的是机器字长(我们会在稍后进行具体介绍,大家不要急哦~) 1.1.2.计算机软件发展 计算机软件的发展受到应用和硬件的推动和制约。软件技术发展大致可分为三个不同时期:软件技术发展早期,主要使用机器语言与汇编语言。(上世纪50-60)结构化程序和对象技术发展时期,主要是高级语言的发展(上世纪70-80)软件工程技术发展时期,这一阶段对于各种软件有了长足的发展,特别是操作系统(上世纪90至今) 大家现在可以回想一下,硬件发展有几个时期?软件发展有几个时期?计算机迭代的特点都有什么? 那么我们来做个题练练手吧: 例:微型计算机的发展以____技术为标志? 答:微处理器 你有没有答对呢? ## 1.2.计算机系统层次结构 计算机系统中硬件和软件共同构成一个完整的整体。硬件一般是指有形的物理设备,是计算机系统中实例物理装置的总称。软件一般是指运行在硬件上的程序和相关的数据和文档。 计算机系统性能的好坏,很大程度是由软件的效率和作用来表征的,但是软件性能的发挥又离不开硬件的支持。如果某一个功能,既可以用软件实现、又可以用硬件实现,则称为软硬件在逻辑功能上是等价的。 在设计计算机系统时,要进行软硬件功能的分配,一般来说如果一个功能使用频繁且硬件实现较为理想,使用硬件可以提高效率。 软件和硬件的功能是等效的,但是软件和硬件的功能不是等价的。 介绍完了软件和硬件的发展历程,我们接下来就详细介绍一下它们都是什么吧。 1.2.1.计算机硬件 一、冯诺依曼机思想 要说到计算机的发展,冯诺依曼绝对是绕不开的,那他的贡献究竟是什么? ——他提出了“存储程序”的概念,也正是“存储程序”的思想,才奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称为冯诺依曼机。 它的基本设计思想是:存储程序和程序控制 存储程序的基本思想:将事先编好的程序和原始数据送到主存后才能执行,程序启动执行后无需操作人员干预,计算机自动逐条执行指令直到程序结束。 它的主要特征是:采用“存储程序”的工作方式计算机硬件系统有五大部件,存储、运算、控制、输入、输出指令和数据以同等地位存储在存储器中,形式上没有区别指令和数据均用二进制码表示,指令由操作码和地址码组成,操作码指出操作类型,地址码指出操作数的地址。计算机的功能部件输入输出输入设备:主要将程序和数据以及其能够识别和接收的信息形式输入计算机。最常用的便是键盘鼠标摄像机等。输出设备:将计算机处理结果以人们所能接收的形式输出。最常见的是显示器、打印机。IO设备是计算机与外界联系的桥梁,是计算机中不可缺少的重要组成部分。存储器 存储器 = 主存储器(内存) + 辅助存储器(外存) 主存:CPU能够直接访问存储 外存:帮助主存记忆更多的信息。外存必须调入主存后才能被CPU访问 主存的工作方式是按存储单的地址进行存取,这种存取方式称为按地址存取方式。 主存组成:存储体、控制电路、地址寄存器MAR、数据寄存器MDR、地址译码五部分组成
存储体:由许多存储单组成,每个存储单包含若干存储件。每个存储件可以寄存一位二进制代码0/1 存储体相当于一栋大楼,存储单相当于一个寝室,存储件相当于寝室中的单个床位。0代表无人,1代表有人。 存储单:以8位二进制作为一个存储单,也就是一个字节 一个存储单可以存储一串二进制代码,这串二进制代码称为一个存储字,代码位数为存储字长。指令(操作码+地址码)就存放在存储单中。 存储单是有编号的,按地址访问,这些地址都是二进制的形式。 MAR地址寄存器:保存了存储单的地址,位数反映了存储单的个数。MAR长度与PC长度相等。 例如:4位地址寄存器,可以表示2^4=16个存储单 MDR数据寄存器:保存了要从某单写入或者独处的数据(代码),位数反映了存储字长。 例如:8位数据寄存器,数据就是8位,存储字长为8位。 注:MAR和MDR虽然是存储器的一部分,但是在现代计算机中却存在于CPU中,同时Cache也在CPU中。 主存与CPU的联系: 要想完成一个取或者存的操作,CPU还得给主存各种控制信号(读写、地址译码驱动) 现代计算机中:主存由半导体集成电路构成驱动、译码器和读写电路均在存储芯片中MAR和MDR在CPU芯片中存储和CPU通过总线连接地址总线用来指出存储单地址号。
存储体存放二进制信息,地址寄存器MAR存放访问地址,经过地址译码后找到对应存储单,数据寄存器MAR将存储器中读写的信息暂时保存,之后时序逻辑进行产生存储器操作的所需各种信号。运算器运算器是计算机的执行部件,主要进行算术运算和逻辑运算。运算器 = 算术逻辑单 + 通用寄存器组 + 状态寄存器根据运算器内部总线的连接方式,可以分为:单总线、双总线以及三总线结构。算术逻辑单(Arithmetic and Logical Unit – ALU):中央处理单的一部分,对计算机指令字中的操作数执行算术和逻辑运算。通用寄存器组GPRs:用于暂存操作数和中间结果。例如累加器ACC、乘商寄存器MQ、操作数寄存器X、变址寄存器IX、基址寄存器BR等,其中前三个是必须具备的。程序状态寄存器PSW:也称为标志寄存器,用于存放ALU运算得到的一些标志信息或者处理机的状态信息,例如结果是否溢出、有无进位或者错位、结果是否为负等。控制器 控制器是计算机的指挥中心,由其指挥各部件自动协调地进行工作,它负责决定执行程序的顺序,给出执行指令时机器各部件需要的操作控制命令。 控制器 = 程序计数器PC + 指令寄存器IR + 控制单CU 程序计数器PC:用来存放当前欲执行指令的地址。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,同时PC中的地址或自动加1或由转移指针给出下一条指令的地址。它与主存的MAR之间有一条直接通路。 指令寄存器IR:用来存放当前的指令,内容来自主存的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;地址码Ad(IR)送往MAR,用以取操作数。 一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)。CPU和主存共同构成主机,而主机之外的其他硬件(外存、IO设备)等统称为外部设备,简称外设。 CPU = ALU + 通用寄存器组GPRs + 标志寄存器 + 控制器 + 指令寄存器IR + 程序计数器PC + MDR + MAR
CPU和内存之间通过一组总线相连,总线中有3组信号线:地址、控制和数据。 MAR中的地址信息直接送到地址线上,用于指向读写操作的主存存储单; 控制线中有读写信号,指出数据是从CPU写入主存还是从主存读出到CPU; 根据读写操作来控制将MDR中的数据直接送到数据线还是将数据线上的数据接收到MDR中 CPU的一般流程便是:取指令:CPU的控制器从内存读取一条指令并放入指令寄存器。指令的格式一般张这个形状:
OP就是汇编中的mov、add、jmp等符号码;操作数地址说明该指令需要的操作数所在的地方,是在内存里还是CPU的寄存器中指令译码:指令寄存器中的指令经过译码决定进行何种操作、操作数的位置等。执行指令:有两个主要操作:取操作数 + 进行运算修改指令计数器:决定下一条指令的地址 1.2.2.计算机软件 系统软件和应用软件软件按照功能分类,可以分为系统软件和应用软件系统软件:操作系统OS、数据库管理系统DBMS、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务型程序等应用软件:用户为解决某个应用领域中的各类问题而编制的程序,例如工程设计程序、数字处理程序等。三个级别的语言机器语言:二进制代码语言,计算机唯一可以直接识别和执行的语言。汇编语言:用英文单词缩写代替二进制的指令代码,方便记忆和标识。需要经过汇编程序翻译成机器语言后,才能在执行。高级语言:C,C++,Java等方便程序设计人员编写大型程序。需要经过编译,成为汇编,之后经过汇编得到机器语言 高级语言最终都需要转换成机器语言,这时就需要翻译程序:汇编程序(汇编器):将汇编语言翻译成机器语言解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行编译程序(编译器):将高级语言翻译成汇编或者机器语言程序。 1.2.3.计算机系统的层次结构 计算机是一个软硬件组合的综合体。由于面对的应用范围越来越广,因此必须有更加复杂的硬件和软件的支持。关于计算机系统层次,一般来说我们将其分为五层。 层1:微程序机器M0,实在的硬件层,由机器硬件直接执行微指令 层2:传统机器M1(用机器语言的机器),实际的硬件层,由微程序解释机器指令系统 层3:虚拟机器M2(操作系统机器),由操作系统程序实现。操作系统由机器指令和广义指令组成。这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令。 层4:虚拟机器M3(汇编语言机器),为用户提供一种符号化语言,借此可以编写汇编语言源程序。 层5:虚拟机器M4(高级语言层),面向用户,方便用户编写应用程序而设置的。 第3-5层称为虚拟机,简单来说就是软件实现的机器。不必关心下层是怎样工作的。 下层是上层的基础,上层是下层扩展。 软件和硬件之间的界面就是指令集体系结构(ISA),ISA定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什么操作。ISA是指软件能感知到的部分,也称软件可见部分。 1.2.4.计算机系统的工作原理 “存储程序”工作方式 工作方式:程序执行前,将程序所含的指令和数据送入主存,一旦程序被启动,无须操作人员干预,自动逐条完成任务。根据PC取指令指令译码取操作数指令执行回写结果修改PC值 重复上述操作。从源程序到可执行文件
预编译:——1.将所有#define删除,展开所有的宏定义——2.处理所有条件预编译指令,如#if,#ifdef——3.处理#include预编译指令,将被包含的文件插入到该预编译指令的位置——4.过滤所有的注释——5.添加行号和文件名标识——6.生成.i文件编译:——1.词法分析:将源代码的字符序列分割成一系列记号——2.语法分析:对记号进行语法分析,产生语法树——3.语义分析:判断表达式是否有意义——4.代码优化——5.目标代码生成:生成汇编代码——6.目标代码优化——7.生成.s文件汇编:将汇编代码转变为机器指令,生成.o文件链接:将不同的源文件产生的目标代码进行链接,从而形成一个可执行的文件.exe/.out指令执行过程的描述 指令的执行分为三个具体阶段:取指令、分析指令、执行指令 因此一个程序具体的执行流程为:将第一条指令地址读到PC中(PC)->MAR,将第一条指令放在MAR中,M(MAR)->MDR,将第一条指令地址中的指令放在MDR中,(MDR)->IR,将MDR的数据放在IR中翻译IR的操作取操作数将操作数运往运算器送结果->内存或者寄存器(PC)+1->PC 将上述操作用一个具体的例子表示为: 例:计算 y = a*(x^2) + b*x + c取x到运算器中x*a,得到ax,存在运算器中加b,得到ax+b,存到运算器中乘以x,得到(ax+b)x,存到运算器中加c,得到最终结果,存到运算器中将运算器中的数据存到存储器y中,打印y 停止。 下面以取数指令为例来说明其信息流程:取指令:PC -> MAR -> M -> MDR -> IR根据PC取指令到IR,PC将内容送到MAR,MAR的内容送到地址线,控制器将读信号送到读写信号线,主存根据地址线的地址和读信号从指定存储单读出指令,送到数据线上,MDR从数据线接收指令信息,送到IR中分析指令:OP(IR) -> CU指令译码送出控制信号,控制器根据IR中指令的操作码生成相应的控制信号,送到不同的执行部件执行指令:Ad(IR) -> MAR -> M -> MDR -> ACC 将IR中指令地址码送到MAR,MAR中的内容送到地址线,控制信号送到读写信号线,从主存中取出操作数,通过数据线送到MDR,传送到ACC中 上边的知识点有些繁杂冗长,但是却收获多多,希望对大家有所帮助,那么做几个题来奖励一下自己吧。 问:完整的计算机系统应当包括_____ 答:配套的硬件设备和软件系统 问:冯诺依曼机的基本工作方式_____ 答:控制流驱动方式 注:早期冯诺依曼机以控制器为中心,而现在基本为存储为中心,冯诺依曼机的核心便是采用“存储程序”原理,基本方式便是控制流驱动方式 问:冯诺依曼机的工作方式基本特点____ 答:按地址访问并顺序执行指令 问:系列机的基本特性是______ 答:指令系统向后兼容 问:CPU区分指令和数据的区别是____ 答:指令周期的不同阶段 注:取址阶段去除的是指令,执行阶段取出的是数据 问:什么是存储程序原理?按照此原理,计算机应具有哪几大功能? 答:存储程序是指将指令以代码的形式事先输入到计算机存储器中,然后按其在存储器中的首地址执行程序的第一条指令,顺序执行指令,直至程序执行结束。 计算机应当具有5大功能:数据传送、数据存储、数据处理、| 操作控制、操作判断 好啦,到此为止计算机系统层次结构终于结束啦! 那么描述计算机性能的指标有哪些呢?让我们来继续一探究竟! ## 1.3.计算机的主要性能指标 1.3.1.主要性能指标 字长字长是指一次整数运算(定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。字长越长,数的表示范围越大,计算精度也就越高。一般为字节的整数倍。其中不可避免的就是机器字长、指令字长和存储字长的关系和区别机器字长:计算机能直接处理的二进制数据的位数,决定了计算机的运算精度。指令字长:一个指令中包含二进制代码的位数存储字长:一个存储单存储二进制代码的长度指令字长一般取存储字长的整数倍,如果指令字长等于存储字长的2倍,那么就需要2次访存来取出一条指令。机器字长和指令字长二者本身没有必然倍数关系,即互不影响。数据通路带宽数据通路带宽是指数据总线一次能并行发送信息的位数。这里指的是外部数据总线的宽度,它与CPU内部的数据总线宽度(寄存器大小)可能有所不同。主存容量主存容量通常用字节来衡量。也可以用字数*字长(512K*16位)来表示存储容量。其中MAR的位数反映了存储单的个数,MDR的位数反映了存储单的字长。例如:MAR=16,2^16=65526,64K内存,MDR=32位,表示存储容量为64K*32位运算速度吞吐量和响应时间吞吐量:系统在单位时间内处理请求的数量。响应时间:用户向计算机发送一个请求,到系统对该请求做出响应并获得结果的等待时间主频和CPU时钟周期CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,是CPU的最小时间单位。执行指令的每个动作至少需要1个时钟周期。主频:主频越高,完成一个指令的一个执行步骤所用的时间越短,速度越快CPI – 执行一条指令所需的时钟周期数是一个平均值CPI = 执行时间*主频/指令数CPU性能取决于三个要素:主频、CPI和指令条数MIPS – 每秒执行多少百万条指令 MIPS = 指令条数 / (执行时间*10^6) = 主频 / (CPI*10^6) MFL_6 – GFL_9 – TFL_12 – PFL_15 – EFL_18 – ZFL_21 注:在描述存储容量、文件大小等,KMGT通常用2的幂次表示,例如1Kb=2^10b,在描述速率、频率时,kMGT通常用10的幂次表示,如1kb/s = 10^3b/s 1.3.2.另外的几个专业术语 系列机相同基本指令系统,多个不同型号的系列产品兼容软件或者硬件的通用性。可以运行在不同的程序上固件 将程序固化在ROM中组成的部件称为固件。是软硬件结合的产物。 上边的总结可能不是很全,之后会定期更新补充,如果有错误的地方还请大家指正! 看到这里的同学,记得点赞,收藏加哦~ 以后的内容会更加精彩!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/52868.html