前言:关于写此系列博客,仅仅只是为了记录一下我的计算机组成原理的学习进度以及便于复习,若有读者发现有不正确的地方请多多包涵并及时告诉我,谢谢。
所参考的资料为《计算机组成与系统结构》_第2版_袁春风。
(几乎为搬运,就是学习,但是本片几乎都是复习时手打,可能会有很多错别字)
全篇为博主的学习记录,若有转载请注明来源链接:
https://blog.csdn.net/wxy2635618879/article/details/104283786
第一章——计算机系统概述
1.1 计算机的发展历程
第一台通用电子计算机ENIAC的诞生是计算机技术的进步和划代的只要标志。
”存储程序”方式的基本思想是:必须将事先编好的程序和原始数据送入主存后才能执行程序,一旦程序被启动执行,计算机能在不需要操作人员的干预下自动完成逐条取出指令并执行的任务。
1.2计算机系统的基本组成
1.2.1 计算机硬件
硬件技术已经经历了4个发展阶段,但是绝大部分计算机的基本组成仍然机有冯·诺依曼结构计算机的特征。
冯·诺依曼结构计算机的基本思想主要包括:
- 采用”存储程序“工作方式
- 计算机由运算器、控制器、存储器、输入和输出设备5个基本部件组成。
- 存储器不但能存放数据,还能存放指令,并且在形式上数据和指令没有区别,但计算机应能区分它们;控制器能控制指令的自动执行;运算器能进行加、减、乘、除四种基本算数运算,并且也能进行逻辑运算;操作人员能通过输入输出设备使用计算机。
- 计算机内部以二进制形式表示指令和数据;每一条指令由操作码和地址码俩部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序。
上述图片就是一个经典的计算机系统的硬件组成。
计算机硬件主要包括:中央处理器、存储器、I/O控制器、外部设备和各类总线。
- 中央处理器(CPU,简称处理器),是计算机的整个核心部件,主要用于指令的执行。CPU主要包括俩种基本部件:数据通路和控制器。数据通路主要包含算术逻辑部件和通用寄存器等,其功能是用来执行算术和逻辑运算等操作。控制器用来对指令进行译码,生成相应的控制信号,以控制数据通路进行正确的操作。
- 存储器分为内存和外存,内存包括主存储器(简称主存)和高速缓存。早期计算器没有高速缓存所以一般情况下,不区分内存和主存。外存包括辅助存储器和海量后备存储器。通常把系统运行时直接和主存交换信息的存储器称为辅助存储器,简称辅存,目前主要的辅助存储器是磁盘存储器和固态硬盘。
- 外部设备简称为外设,也称为** I/O 设备**,外设通常由机械部分和电子部分组成,机械部分是外部设备本身,而电子部分则是控制外部设备的I/O 控制器或 I/O 适配器。 I/O 控制器或 I/O 适配器统称为设备控制器。例如,键盘接口、打印机适配器、显示控制器(简称显卡)、网络控制器(简称网卡)等都是一种设备控制器,属于一种 I/O 模块(也称 I/O 接口)。
- 总线(bus是传输信息的介质,用于在部件之间传输信息,CPU、主存和 I/O 模块通过总线互连, 在 CPU 和 I/O 模块中都内含相应的存储部件,即缓存器。
- ALU 是数据处理部件,用于执行数据的算术和逻辑运算,ALU 处理的数据来自寄存器堆;磁盘和主存是存储部件,分别用于存储长期保存信息和临时保存信息;各类总线以及总线接口部件、I/O 桥接器、I/O 扩展槽、I/O 控制器和显示适配器等都是互连部件,用于完成数据传送任务。所有这些部件的操作都通过 CPU 中的控制器对指令译码后送出的控制信号的控制来完成。
1.2.2 计算机软件
根据软件的用途,一般将软件分为系统软件和应用软件两大类。
- 系统软件包括为有效、安全地使用和管理计算机以及为开发和运行应用软件而提供的各种软件,介于计算机硬件和应用软件之间。系统软件包括操作系统、语言处理系统(C语言编辑器)、数据库管理系统和各类实用程序(如备份)。
- 应用软件是指专门为处理数据、科学计算、事务管理、多媒体处理、工程设计以及过程控制等应用所编写的各类程序。
1.3 计算机系统的层次结构
1.31 计算机系统抽象层的转化
如图是计算机系统层次转换示意图,描述了从最终用户希望计算机完成的应用(问题)到电子工程师使用器件完成基本电路设计的整个转换过程。
转换过程从上到下
- 首先,将应用问题转化为算法描述。
- 其次,将算法转换为编程语言描述的程序。
- 然后,将高级语言程序转换成计算机能够理解的机器语言程序。翻译程序有以下 3 类。
(1)汇编程序(assembler):也称汇编器,用来将汇编语言源程序翻译成机器语言目标程序。
(2)解释程序(interpreter):也称解释器,用来将源程序中的语句按其执行顺序逐条翻译成机器指令并立即执行。
(3)编译程序(compiler):也称编译器,用来将高级语言源程序翻译成汇编语言或机器语言目标程序。
以上都是软件层次的转化,而计算机硬件和软件之间需要有一个桥梁,这个桥梁就是指令集体系结构(ISA),简称体系结构或系统结构。
**ISA **规定的内容包括:数据类型及格式,指令格式,寻址方式和可访问地址空间大小,程序可访问的寄存器个数、位数和编号,控制寄存器的定义,I/O 空间的编址方式,中断结构,机器工作状态的定义和切换,输入/输出结构和数据传送方式,存储保护方式等。因此,可以看出,指令集体系结构是指软件能感知到的部分,也称软件可见部分。
机器语言程序就是一个 ISA 规定的指令的序列。
1.3.2 计算机系统的不同用户
按照在计算机上完成任务的不同,可以把使用计算机的用户分为以下4类:最终用户、系统管理员、应用程序员和系统程序员。
- 最终用户,使用应用程序完成特定任务的计算机用户称为最终用户(end user)。通俗的讲就是使用计算机看电影、玩游戏、发邮件、聊天等功能的用户。
- 系