一、编码:用特定的二进制代码来表示数据或指令

1.比特:(bit,缩写b)数字技术的处理对象,又称“二进制位”、“位”。它是计算机和其他数字系统处理、存储和传输数字信息的最小单位。位只有两种取值状态——0和1。位还能对应逻辑运算中的真和假。

2.字节:(byte,缩写B)二进制数据量的基本计量单位。一字节由8位二进制位组成。计算机以字节为单位编址。

  1Byte=8bit, 1kb=2^10=1024Byte, 1Mb=1024kb, 1G=1024Mb

bit bit bit bit bit bit bit bit
               
               
               
             
1 0 1 0 1 0 1 0

 

3.二进制与八进制、十六进制转换:每3位二进制数构成1位八进制数,每4位二进制数构成一位十六进制数。如二进制数10101010,从低位到高位,010为2,101为5,10为2,则10101010=2*8^2+5*8^1+2*8*0。

4.十六进制数表示:0-9为数字0-9,10-15为字母A-F。

5.二进制数的算数运算:二进制加法为基本运算,减法是通过加上一个负数(补码运算)来实现的。乘法和除法通过移位操作和加减运算来实现。

6.二进制数的逻辑运算(布尔运算):逻辑运算包括三种:逻辑与(and)、逻辑或(or)、逻辑非(not)。

逻辑与:有0为0,全1为1。1^0=0,0^1=0,0^0=0,1^1=1;

逻辑或:全0为0,有1为1。1v0=1,0v1=1,1v1=1,0v0=0;

逻辑非:0变1,1变0。


 

7.补码:计算机中的数值类型分为整数和实数两大类,整数分为无符号的整数和有符号的整数两类。

无符号整数:1字节表示的范围为0000 0000~1111 1111,即0~255;

有符号整数:表示方法为 符号位+数值位。最高位表示符号,0为正,1为负。对于正数,最高位为0,其余位表示数值;对于负数,最高位为1。

内存中的数据是以补码的形式存放的。一个正数的补码是它本身,一个负数的补码为数值位每位取反,再在末位加1所得数值。补码和原码互为补码。

内存数据   实际数值
0 0 0 0 0 0 0 0   0
0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 0 2
0 0 0 0 0 0 1 1 3
0 0 0 0 0 1 0 0 4
......  
 
0 1 1 1 1 1 1 1 127
1 0 0 0 0 0 0 0 -128
1 0 0 0 0 0 0 1 -127
1 0 0 0 0 0 1 0 -126
......  
 
1 1 1 1 1 1 0 1 -3
1 1 1 1 1 1 1 0 -2
1 1 1 1 1 1 1 1 -1

可见,1字节所能表示的有符号整数的范围为-128~127。

补码规则的好处:

1.最高位既是符号位,又是运算位,不需要单独表示;

2.正0与负0统一为0;

3.减法变加法,乘除可变为加法和减法。


 

二、计算机体系结构

计算机由运算器、控制器、存储器、输入设备和输出设备5大基本部件组成,核心部件是运算器。

运算器和控制器是CPU的主要组成部分。运算器是加法器的集合,一个加法器一次只能进行一位数值运算。开关的闭合表示数值的输入。闭合为1,断开为0.一条电路通,则数1被读入加法器。实际上,开关的闭合和断开很麻烦,因此我们想让运算器能够自己读取数据,于是有了存储器和控制器。存储器中存储需要运算的数据,当被读取时,由磁信号转换为电信号,运算结果又保存在存储器中。运算器还需要知道读取哪个数据,因此还需要指令。指令存储在内存中。指令的读取由控制器负责。读取的数据要通过线路到达运算器,这条线路叫数据总线。控制器获取指令的线路叫控制总线。控制器读取指令后告诉运算器到内存的哪个存储单元读取,即数据地址。内存是编址的存储设备,计算机采用平面编址方式。传输地址的线路叫做地址总线。

数据总线是有限的,运算器读取加数后需要暂存下来,再读取被加数。因此运算器中还需要有一种暂存设备,这就是寄存器。

存储器分为内存和辅存,内存是易失性存储设备,断电后存储信息消失,因此计算机中的数据想要永久保存,需借助辅存,如光盘、磁盘、U盘等。内存是编址的存储设备,计算机采用平面编址方式。

输入、输出设备(I/O设备)是与用户交互的,用于辅助计算机。硬盘也是I/O设备。

POST(power-on-self-test,加电自检):计算机一开机,芯片上的指令会映射到内存中,再由运算器读取。这是计算机开机后读取的第一串指令,用于探测外接设备(硬盘、网卡等)。

程序=指令+数据

Poll(轮巡):CPU不断探测输入设备是否输入信号。

中断(interrupt):敲下键盘后产生电信号,通知CPU执行。此时CPU会暂时中断正在进行的程序。

Northbridge(北桥):高速总线控制器,连接南桥、(固态)硬盘

Southbridge(南桥):低速总线控制器,连接键盘、鼠标、显示器等

缓存:CPU的读取速度很快,而存储器的输出速度较慢。存储器和处理器之间性能的差异犹如一道墙,这就是存储墙(Memory Wall)问题。针对存储墙问题,人们采取折中的办法,将存储器设计成层次结构,利用缓存和程序运行时的局部性来缓解处理器和存储器速度的矛盾。整个存储系统可分成下列层次:

寄存器组(位于CPU中) 最快 非常小 最贵
高速缓冲存储器(Cache) 非常快 非常贵
主存储器
辅助存储器 便宜
脱机存储器 非常慢 巨大 最便宜

三、计算机结构层次、语言

整个计算机体系可以划分为如下层级:

第6层 应用程序层 软件
第5层 高级语言层
第4层 汇编语言层
第3层 操作系统层
第2层 传统机器层 硬件
第1层 微体系结构层
第0层 数字逻辑层

 

API:计算机只能识别二进制位,即机器语言。为了方便程序员开发,芯片上附带有一层微码,即汇编语言。编译器负责将微码程序转换成机器语言。不同芯片的微码不同,为了方便程序员用高级语言统一开发和移植,不同芯片的制造厂商设计了共同的磨合程序,即API(application program interface,应用编程接口)。API使得不同厂商开发的硬件为程序开发提供了相同的环境。

指令集(ISA,Instruction Set Architecture):指令集属于微体系结构层。程序员编写的软件经编译器翻译成可执行程序,也就是一个机器指令的序列,然后由底层硬件一条一条读取这些指令来执行。因此软件最终体现为指令集中的各种指令。CISC和RISC是ISA的两大阵营。

 

posted on 2021-04-26 12:07  dream见  阅读(516)  评论(0编辑  收藏  举报