【软件设计师—基础精讲笔记1】第一章 计算机组成与体系结构

简介: 【软件设计师—基础精讲笔记1】第一章 计算机组成与体系结构

温馨提示:

       完整笔记已设置成专栏,欢迎各位点击右上角“订阅专栏”,收藏完整笔记。



一、计算机系统基础知识

1、计算机系统硬件基本组成

       计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。运算器、控制器被集成在一起统称为CPU。CPU是硬件系统的核心。存储器分为内部存储器和外部存储器。

2、中央处理器CPU

CPU主要由运算器、控制器、寄存器和内部总线等部件组成。

(1)运算器   --【术加数状】

①算逻辑单元 ALU:数据的算术运算和逻辑运算;

②累寄存器 AC:通用寄存器,为 ALU 提供一个工作区,用在暂存数据;

据缓冲寄存器 DR:写内存时,暂存指令或数据;

态条件寄存器 PSW:存状态标志与控制标志。

(2)控制器 -- 【程序、指令、地址】===城际令

①程序计数器 PC:存储下一条要执行指令的地址;

②指令寄存器 IR:存储即将执行的指令;

③指令译码器 ID:对指令中的操作码字段进行分析解释;

④地址寄存器AR:保存当前CPU所访问的内存单元

3、数据表示

       一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1。

       机器数对应的实际数值称为数的真值。由于第一位是符号位,所以机器数的形式值就不等于真正的数值。

(1)进制转换

       1、十进制转 R 进制(短除法);

       2、R 进制转十进制(按权展开法);

       3、二进制转八进制、转十六进制(分组快速转换)。

(2)编码方法

       只针对带符号数的编码方法。

【1】转换规则

原码:符号位+数值位绝对值。

反码:正数反码是原码本身,负数反码是符号位不变,数值位按位取反。

补码:正数补码是原码本身,负数补码是符号位不变,数值位在反码基础上加1。

移码:正数和负数的移码都是在补码基础上符号位取反。

【2】表示范围
码制 定点整数 定点小数 表示数码个数
原码 -(2n-1-1)~+(2n-1-1) -(1-2 -(n-1 ))~+(1-2 -(n-1)) 2n-1
反码 -(2n-1-1)~+(2n-1-1) -(1-2 -(n-1 ))~+(1-2 -(n-1)) 2n-
补码 - 2n-1~+(2n-1-1) -1~+(1-2 -(n-1)) 2n
移码 - 2n-1~+(2n-1-1) -1~+(1-2 -(n-1)) 2n

       【0的特殊化:0 在原码和反码中有+0 和-0 两种表示方式,而对于补码和移码其表示方式一致】

       【定义-0 的补码为其-2n-1 的补码,以 n=8 为例,人为定义 10000000 是-128 的补码】

(3)浮点数表示
【1】各部分表示意义

       (1)一般尾数用补码,阶码用移码;【尾补阶移,小看大】

       (2)阶码的位数决定数的表示范围,位数越多范围越大;

       (3)尾数的位数决定数的有效精度,位数越多精度越高。

【2】运算规则

                       对阶 --> 尾数计算 --> 结果格式化

       (1)对阶时,小数向大数看齐;

       (2)对阶是通过较小数的尾数右移实现的。

(4)校验码
【1】奇偶校验

       在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或为偶数(偶校验),从而使码距变为2。

【2】循环冗余校验码CRC

       其编码规则是利用生成多项式为k个数据位产生r个校验位,最终生成编码长度为k+r的编码。

可查错,不可纠错;运用模二除法计算校验码。

【3】海明码

       其编码是在数据位之间特定位置上插入k个校验位。设数据位有n位,校验位有k位,则必须满足以下关系:

       可检错,可纠错。

【4】校验码对比

二、计算机体系结构

1、Flynn分类法

2、指令系统
(1)CISC 与 RISC

       1、CISC:复杂指令集;RISC:精简指令集。

       2、CISC 的特点:指令数量多,指令频率差别大,多寻址,使用微码。

       3、RISC 的特点:指令数量少,操作寄存器,单周期,少寻址,多通用寄存器,硬布线逻辑控制,适用于流水线。

(2)寻址方式

立即寻址方式:【操作数】  特点:操作数直接在指令中,速度快,灵活性差。

直接寻址方式:【操作数地址】  特点:指令中存放的是操作数的地址。

间接寻址方式:【操作数地址的地址】  特点:指令中存放了一个地址,这个地址对应的内容是操作数的地址。

-------------------以上是针对指令-----------

寄存器寻址方式:【操作数】  特点:寄存器存放操作数。

寄存器间接寻址方式:【操作数地址】  特点:寄存器存放操作数地址

----------------------以上是针对寄存器----------

3、流水线技术
(1)相关概念

(1)流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理技术。

(2)流水线建立时间:1 条指令执行时间。

(3)流水线周期:执行时间最长的一段,记作 t。

(2)相关计算

(1)流水线执行时间(理论公式):(t1+t2+…+tk)+(n-1)*t

(2)流水线执行时间(实践公式):k *t +(n-1)*t

(3)流水线吞吐率:

(4)流水线最大吞吐率

(5)流水线加速比:

4、存储系统

(1)存储器分类

1、存储器位置:内存&外存

2、按访问方式:按地址访问存储器、按内容访问存储器(比如,相联存储器)

3、按寻址方式:随机存取存储器、顺序存取存储器、直接存取存储器

4、按工作方式:随机存取存储器 RAM(如内存 DRAM)、只读存储器 ROM(如 BIOS)

(2)高速缓存Cache

       在计算机的存储系统体系中,Cache 是(除寄存器以外)访问速度最快的层次。Cache 改善了系统性能,提高了 CPU 访问内存的效率。

       Cache 的地址映像由硬件直接完成。(常考)

Cache 映射方式:

直接相联映像:硬件电路较简单,但冲突率很高。Cache 对应页号位置已有数据即冲突需淘汰页面再调入。

全相联映像:电路难于设计和实现,只适用于小容量的 Cache,冲突率较低。所有位置都有数据,才会产生冲突,此时才需要淘汰已有页面,然后调入新的页面

组相联映像:直接相联与全相联的折中。

(3)内存

1、内存单元数 = 最大地址 - 最小地址+1

2、内存总容量:

       按字节编址,内存单元数 x 8bit;

       按编址,内存单元数 x 机器字长。

3、已知芯片单位容量,求所用芯片的片数:片数=总容量/单位容量;

4、已知所用芯片的片数,求取芯片单位容量:单位容量=总容量/芯片片数。

5、总线系统

(1)数据总线:在 CPU 与 RAM 之间来回传送需要处理或是需要储存的数据。

(2)地址总线:用来指定在 RAM之中储存的数据的地址。

(3)控制总线:将微处理器控制单元的信号,传送到周边设备。

三、系统性能测评

1、可靠性

(1)串联系统计算: R 总=R1 * R2 * …… * Rn;

(2)并联系统计算: R 总=1-(1-R1)(1-R2)…(1-Rn);

(3)N 模混联系统:先将整个系统划分为多个部分串联 R1、R2......等,再计算 R1、R2 内部的并联可靠性,带入原公式。

(4)可靠性指标

       平均无故障时间→ (MTTF) MTTF=1/λ,λ 为失效率

       平均故障修复时间→ (MTTR) MTTR=1/μ,μ 为修复率

       平均故障间隔时间→ (MTBF) MTBF = MTTR + MTTF

       系统可用性→ MTTF/(MTTR+MTTF)×100%

       在实际应用中,一般 MTTR 很小,所以通常认为 MTBF≈MTTF。可靠性可以用可以用 MTTF/(1+MTTF)来度量。

       可维护性可以用 1/(1+MTTR)来度量

2、计算机性能指标

(1)主频(计算机参数),时钟周期=主频的倒数,主频=倍频*外频。

(2)平均每条指令平均时钟周期个数(CPI), CPI=时钟周期总数/指令总条数。

(3)每(时钟)周期运行指令条数(IPC), IPC=指令总条数/时钟周期总数

(4)百万条指令每秒(MIPS)=(IPC*时钟周期)/106

(5)每秒百万个浮点操作(MFLOPS),与 MIPS 相似,针对的是浮点操作。

(6)字长(计算机参数)。

(7)总线宽度:每次脉冲通过的数据量。

(8)带宽:单位时间通过的数据量,带宽=数据总量/总时间

(9)吞吐量,某个时间段内完成的任务总数;吞吐率,单位时间内完成的任务总数,吞吐率=任务总数/总时间。

四、考点补充

1、逻辑运算
(1)运算符

较高优先级: <、<=、>、>=

较低优先级: ==、!=

逻辑运算符:逻辑或( ||、+ 、∪、∨、OR)、逻辑与(&&、*、•、∩、∧、AND )、逻辑异或(⊕、XOR )、逻辑非(!、﹃ 、~ 、NOT,—)

(2)优先级

! > && > ||

!> 算术运算符 > 关系运算符 > && > || > 赋值运算符

(3)短路原则

(1)a&&b&&c :只有 a 为真时,才需要判断 b 的值,只有 a 和 b 都为真时,才需要判断 c 的值。

(2)a||b||c: 只要 a 为真,就不必判断 b 和 c 的值,只有 a 为假,才判断 b。a 和 b 都为假才判断 c。

2、编译流程

       词法分析阶段处理的错误:非法字符、单词拼写错误等。

       语法分析阶段处理的错误:标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误。

       静态语义分析阶段(即语义分析阶段)处理的错误:运算符与运算对象类型不合法等错误。

       目标代码生成(执行阶段)处理的错误:动态语义错误,包括陷入死循环、变量取零时做除数、引用数组元素下标越界等错误等。

总 结

       总结不易,如果喜欢,请关注、点赞、收藏。

完整笔记下载地址:(后续完成后更新)

基础精讲课件地址:(请关注、点赞、收藏后,私信我)

基础精讲视频地址:(请私信我)

目录
相关文章
|
缓存 数据处理 芯片
【软件设计师-从小白到大牛】上午题基础篇:第一章 计算机组成与体系结构(3)
检错是指可以检查出错误;纠错是指可以在检查出错误的基础上纠正错误。
72 0
|
3月前
|
存储 算法 安全
【第一章】软件设计师 之 计算机组成与体系结构
这篇文章是软件设计师备考资料的第一章,涵盖了计算机组成与体系结构的基础知识,包括不同进制之间的转换方法、数据表示、计算机结构、流水线概念、存储系统、校验码等内容。
【第一章】软件设计师 之 计算机组成与体系结构
|
3月前
|
敏捷开发 算法 安全
【 第十章】软件设计师 之 软件工程概述
软件设计师 之 软件工程概述 备考资料
【 第十章】软件设计师 之 软件工程概述
|
5月前
|
存储 编译器 C++
c++primer plus 6 读书笔记 第三章 处理数据
c++primer plus 6 读书笔记 第三章 处理数据
|
6月前
|
敏捷开发 算法 测试技术
【软件设计师—基础精讲笔记5】第五章 软件工程基础
【软件设计师—基础精讲笔记5】第五章 软件工程基础
101 2
|
6月前
|
设计模式 存储 算法
【软件设计师—基础精讲笔记7】第七章 面向对象技术
【软件设计师—基础精讲笔记7】第七章 面向对象技术
125 1
|
6月前
|
自然语言处理 Java 编译器
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
106 1
|
6月前
|
存储 算法 调度
【软件设计师—基础精讲笔记2】第二章 操作系统2
【软件设计师—基础精讲笔记2】第二章 操作系统1
62 1
|
6月前
|
存储 算法 Unix
【软件设计师—基础精讲笔记2】第二章 操作系统1
【软件设计师—基础精讲笔记2】第二章 操作系统
100 1
|
6月前
|
网络协议 安全 网络安全
【软件设计师—基础精讲笔记4】第四章 网络与信息安全
【软件设计师—基础精讲笔记4】第四章 网络与信息安全
98 1