Appearance
计算机组成原理
计算机体系与结构
冯诺依曼体系
程序指令和数据一起存储的计算机设计概念结构。必须有一个存储器、一个处理器、一个运算器,以及一个输入设备和一个输出设备。
目前的计算机本质上都属于冯诺依曼体系
CPU=运算器+控制器
特点:
- 能够把需要的程序和数据送至计算机
- 能够长期记忆程序、数据、中间结果及最终运算结果的能力
- 能够具备算术、逻辑运算和数据传送等数据加工处理的能力
- 能够按照要求将处理结果输出给用户
瓶颈:
CPU速度比存储器快,导致经常性空转等待数据传输。
现代计算机结构中,将存储器也纳入CPU。一般来说是高速Cache。
计算机的计算单位
- 位(bit):是信息的最小单位,也称为比特。
- 字节(byte):是信息处理中常用的单位。一个字节等于8位。例如:1000 0001
- 字(word):是计算机处理信息的基本单位。一个字通常等于2个字节。
- 双字(dword):是一个字的两倍,通常等于4个字节。
- 四字(qword):是一个双字的两倍,通常等于8个字节。
容量单位
1bit=1byte 1byte=8bit 1word=2byte 1dword=4byte 1qword=8byte
1KB=1024byte 1MB=1024KB 1GB=1024MB 1TB=1024GB 1PB=1024TB 1EB=1024PB
云硬盘通常是PB级的,云数据仓库通常是EB级的
1024=2^10
网络速度单位
100M/s = 100Mbps = 100Mbit/s
100Mbit/s = (100/8)MB/s = 12.5MB/s
CPU速度
Hz,赫兹,每秒分之一,是每秒钟的周期性变动重复次数的计量
例如:1GHz=1*1000^3Hz = 每秒10亿次周期
字符编码
ASCII,美国标准信息交换码,是基于拉丁字母的一套电脑编码系统,主要用于显示英语,数字,和符号。最初的ASCII码只包含128个字符,包括26个大写字母,26个小写字母,10个数字,以及一些特殊符号。
GB2312,是中国国家标准的字符编码,用于简体中文字符的编码。诞生早于GBK。约7000个常用中文字符。
GBK,同上。兼容GB2312,支持国际标准。约21000个常用中文字符,支持全部中日韩汉字。
Unicode,统一码或万国码,包含所有文字、符号。UTF-*是Unicode的实现方式。
UTF-8,是一种变长的编码方式,使用1到4个字节来表示一个字符。
解释型语言和编译型语言
编译型语言:
- 代码需要编译成机器码,再执行。
- 开发效率低,调试困难。
- 跨平台性差。
解释型语言:
- 代码不需要编译,直接解释执行。
- 开发效率高,调试方便。
- 跨平台性好。
编译型语言会直接转换成计算机可执行的机器码
解释型语言会先解释成中间代码,再由解释器解释执行。也就是说,解释型的语言需要一个“翻译”。
编译型的语言有:C、C++、Java、Go、Rust等
解释型的语言有:Python、JavaScript、PHP等
计算机结构
总线
提供对外的标准接口,解决不同设备之间的通信问题。
总线又分为内总线和系统总线。系统总线又分为数据总线、地址总线、控制总线。
片内总线:芯片内总线,寄存器互联,寄存器与控制器、运算器互联。
系统总线:CPU、主内存、IO设备、各组件之间的信息传输线。
数据总线:双向传输各个部件的数据信息,位数(总线宽度。一般与CPU位数相同,32位或64位)决定了一次数据传输的量。
地址总线:指定源数据或目的数据的存储地址,位数(总线宽度)决定了地址空间的大小。位数为n,则寻址范围为0~2^n。
控制总线:发出各种控制信号的传输线。控制信号经由控制总线从一个组件发送到另一个组件。监视各个组件的状态(就绪或未就绪),协调各个组件的工作。
总线仲裁
为了更好调度各个组件的工作,引入了总线仲裁机制。
方法有:链式查询、计时器定时查询、独立请求
链式查询:设备都与仲裁控制器相连,但设备之间的连接是串联的,所以在繁忙时,后面的设备只能等待前面的设备释放总线。
计时器定时查询:仲裁控制器对设备编号并使用计数器累计计数。接收到仲裁信号后,向所有设备发出计数值。计数值与设备编号一致的设备获得总线。如果超出了设备数量,则重新从0开始计数。
独立请求:每个设备都有一个请求线和一个响应线。当设备需要使用总线时,向请求线发送请求信号。当总线空闲时,仲裁控制器会检查每个设备的请求线。如果有设备的请求线为高电平,则该设备获得总线。