非计算机科班专业,近期在恶补计算机的四门基础课,学习过程中也顺便写点笔记记录一下。
自学的书是跟的2021王道考研单科辅导书来学的,做的笔记内容也按照其章节顺序来,关于笔记我就挑出我个人感觉比较重要的点进行记录(当然,自己很菜,基本都是抄原书的,有特色的话就是在某些地方添加了自己的一点见解)。
这篇博客的笔记内容是计算机系统概述。
1.计算机的发展
1)硬件发展
随着半导体体积的不断缩小以及相关技术的日渐成熟,一块芯片上所能容纳的电子元器件也越来越多,延迟也越来越小。与之带来最明显的就是芯片的运行速度和存储容量的提升,即芯片越来越小、CPU处理速度越来越快、内存越来越大。
2)软件发展
计算机的编程语言从原来的很接近机器底层到现在越来越抽象。
大致的顺序是:机器语言->汇编语言->面向过程语言->面向对象的语言。
关于面向过程与面向对象的最大区别应该就是解耦吧,解耦是软件中的灵魂。
(补充:编译型语言与解释型语言区别可参考:编译型语言和解释型语言的区别)
2.计算机的组成
1)冯诺依曼机的特点:
2)常见的寄存器
MAR: 地址寄存器,存放访存地址,经过地址译码后找到所选的存储单元。
MDR:数据寄存器,用于暂存要从存储器中读或写的信息。
PC:程序计数器,用来存放当前欲执行指令的地址,可以自动加1以形成下一条指令的地址,它与MAR之间有一条直接通路。
IR:指令寄存器,用来存放当前的指令,其内容来自主存的MDR。
3)总线
有地址总线、数据总线、控制总线
4)(补充)透明的意思
与日常生活中的透明相反,计算机领域的透明指的是感觉不到的某个事物或属性。
3.计算机性能指标
1)几种常见的字长
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。(如64位、32位)
存储字长:一个存储单元存储的二进制代码的长度。它们都必须是字节的整数倍。(通常为MDR位数)
指令字长:一个指令字中包含的二进制代码的位数。
(一般指令字长取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的2倍;若指令字长等于存储字长,则取指周期等于机器周期。)
(一般默认写字长的话应该指的是机器字长,而不同字长的机器的字大小是不一样的,如64位机的一个字是8字节,32位机是4字节)
2)数据通路带宽:
(也称为数据字长)指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。
3)吞吐量与响应时间、主频和CPU时钟周期(二者互为倒数)
4)CPI:执行一条指令所需要的时钟周期数、
CPU执行时间:运行一个程序所需时间
5)CPU周期
又称机器周期,就是CPU访问一次内存所花的时间,用从内存读取一条指令字的最短时间来定义。而指令周期则由若干CPU周期构成。
6)其他