
00:00:00
外卖卷:非常划算 扫码领劵 省点小钱钱
计算机系统是由硬件和软件组成的,计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成。运算器、控制器等部件被集成在一起统称为中央处理单元。
中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。CPU 是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。此外 CPU 还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。
功能
组成
功能
组成
| 中文名称 | 英文名称 | 缩写 | 换算 |
|---|---|---|---|
| 位(比特) | bit | b | 8bit = 1B |
| 字节 | byte | B | 1B = 8bit |
| 千字节 | Kbytes | KB | 1KB = 1024B |
| 兆字节 | Mbytes | MB | 1MB = 1024KB |
| 吉字节 | Gbytes | GB | 1GB = 1024MB |
| 太字节 | Tbytes | TB | 1TB = 1024GB |
最小的数据单位:bit(b)
最小的存储单位:byte(B)
$R$ 进制(任意进制)转十进制使用按权展开法,其具体操作方式为:将 $R$ 进制数的每一位数值用 $R^k$ 形式表示,即幂的底数是 $R$,指数为 $k$,$k$ 与该位和小数点之间的距离有关,当该位位于小数点左边,$k$ 值是该位和小数点之间数码的个数,而当该位位于小数点右边,$k$ 值是负值,其绝对值是该位和小数点之间数码的个数加 1(小数点左边从 0 开始数,右边从 -1 开始数)。
例如:
十进制转 $R$ 进制(任意进制)使用短除法,也叫除 $n$ 取余法,$n$ 代表你要转换为 $R$ 进制中的 $R$。
二进制转八进制,每三个二进制位对应一个八进制位(以小数点为分界点,小数点左边的往左分段,不足三位补零,小数点右边的往右分段,不足三位补零),二进制转十六进制同理,每四个二进制位对应一个十六进制位。需要注意的是十六进制中的 10 ~ 15 使用 A ~ E 表示。
二进制与八进制编码对应表:
| 二进制 | 八进制 |
|---|---|
000 | 0 |
001 | 1 |
010 | 2 |
011 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
八进制转二进制,每一个八进制位对应三个二进制位。十六进制转二进制,每一个十六进制位对应四个二进制位。
八进制转十六进制,将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。十六进制转八进制则相反,但原理一样,都需要先转换为二进制。
特别注意无论是进 1 还是借 1 都要看是多少进制,二进制就满 2 进 1,借的那个 1 当 2 用,八进制满 8 进 1,借的那个 1 当 8 用,十六进制就满 16 进 1,借的那个 1 当 16 用。
首先将一个数(下面用 1 做演示)转化为二进制的表达形式,二进制的首位(最左边的一位)代表符号位,正数的符号位是 0,负数的符号位是 1,符号位不参与进制转换。
| 码制 | 数值 1 | 数值 -1 | 1 加上 -1 | 结果 |
|---|---|---|---|---|
| 源码 | 0000 0001 | 1000 0001 | 1000 0010 | -2 |
| 反码 | 0000 0001 | 1111 1110 | 1111 1111 | -0 |
| 补码 | 0000 0001 | 1111 1111 | 0000 0000 | 0 |
| 移码 | 1000 0001 | 0111 1111 | 1000 0000 | 0 |
可以看到 1 和 -1 的源码相加得到的源码并不是 0 的源码而是 -2 的源码,所以像源码的这种操作方式是不能直接在机器中做相关的运算的,所以有了其他的编码方式。
取值范围:
| 码制 | 整数 | 字长 $n=8$ |
|---|---|---|
| 源码 | $-(2^{n-1}-1){\ }{\sim}{\ }+2^{n-1}-1$ | $-127{\ }{\sim}{\ }127$ |
| 反码 | $-(2^{n-1}-1){\ }{\sim}{\ }+2^{n-1}-1$ | $-127{\ }{\sim}{\ }127$ |
| 补码 | $-2^{n-1}{\ }{\sim}{\ }+2^{n-1}-1$ | $-128{\ }{\sim}{\ }127$ |
| 移码 | $-2^{n-1}{\ }{\sim}{\ }+2^{n-1}-1$ | $-128{\ }{\sim}{\ }127$ |
可以看到最下面一行,补码比反码、源码取值范围要多一位,原因是源码和反码中的 +0 和 -0 是两个不同的编码,而补码不是,补码的 +0 和 -0 的编码是一样的,所以要少占用一个编码。
知识点:
一个二进制数 $N$ 可以表示为更一般的形式 $N=2^E{\times}F$,其中 $E$ 为阶码,$F$ 为尾数。用阶码和尾数表示的数称为浮点数,这种表示数的方法称为浮点表示法。
在浮点表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式如下:

阶码不一致先对阶,小阶向大阶对齐,尾数右移。
浮点数所能表示的数值范围由阶码 $E$ 决定,所表示数值的精度由尾数 $F$ 决定。
当机器字长为 $n$ 时,补码和移码可表示 $2^n$ 个数(0 的表示有相同的编码),原码和反码只能表示 $2^n-1$ 个数(0 的表示占了两个编码)。
如果浮点数的阶码(包括 1 位阶符)用 $R$ 位的移码表示,尾数(包括 1 位数符)用 $M$ 位的补码表示,则这种浮点数所能表示的数值范围如下:
定点表示法中,小数点不需要占用存储位。
寻址方式
寻址方式的速度排序
采用不同寻址方式的目的是为了扩大寻址空间并提高编程灵活性。
存储系统的层次结构

码距:一个编码方案中任意两个合法编码之间至少有多少个数据位(码字)不同。(意思是一个合法编码需要改变几个码字才能得到另外一个合法编码,这几个码字个数就是码距)。例如 4 位 8421 码的码距为 1,在传输过程中,该代码的一位或多位发生错误,都将变成另外一个合法的编码,因此这种代码无检错能力。
码距等于 2 时有检错能力,码距大于等于 3 才可能有纠错能力。也就是一个校验码要想能够检错和纠错那么它的码距至少是 3。
对于奇偶校验,它可以检测代码奇数位出错(出错个数为奇数)的编码,但不能发现偶数位出错(出错个数为偶数)的情况。
奇偶校验:码距为 2,仅能检测出奇数位错误,不能纠错。
奇校验:增加一位校验码(码距加 1),使得编码中 1 的个数为奇数。
偶校验:增加一位校验码(码距加 1),使得编码中 1 的个数为偶数。
常用的奇偶校验码有 3 种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
海明码的构成方法是在数据位之间的特定位置上插入 $k$ 个校验位,通过扩大码距来实现检错和纠错。
设数据位是 $n$ 位,校验位是 $k$ 位,则 $n$ 和 $k$ 必须满足以下关系:
$$ 2^k-1{\ }{\geqslant}{\ }n+k $$
$k$ 个数据位后跟 $r$ 个校验位,编码长度为 $k+r$,码距为 2 可以检错但不能纠错。
采用模 2 运算得到校验码。
RISC 精简指令集(Reduced Instruction Set Computer)
CISC 复杂指令集(Complex Instruction Set Computer)

流水线的吞吐率 $TP$ 是指单位时间(固定时间)内所完成的任务数量或输出的结果数量。计算公式如下:
$$ TP=\frac{指令条数}{流水线执行时间} $$
如果流水线的子过程所用时间不一样,则吞吐率 $TP$ 应为最长子过程的倒数。计算公式如下:
$$ TP=\frac{1}{max(t_1,t_2,{\cdots},t_k)}=\frac{1}{操作周期} $$
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。计算流水线加速比的基本公式如下:
$$ S=\frac{不使用流水线所用的时间}{使用流水线所用的时间} $$
虚拟存储器由主存和辅存两级存储器组成。
按存储器所处的位置可分为内存和外存。
按存储器的工作方式可分为读/写存储器和只读存储器。
按访问方式可分为按地址访问的存储器和按内容访问的存储器。相联存储器是一种按内容访问的存储器。
按寻址方式可分为随机存储器、顺序存储器和直接存储器。
高速缓存用来存放当前最活跃的程序和数据,其特点是:位于 CPU 与主存之间;容量一般在几千字节到几兆字节之间;速度一般比主存快 5~10 倍,由快速半导体存储器构成;其内容是主存局部域的副本,对程序员来说是透明的。
Cache 的设计思想是在合理成本下提高命中率。
高速缓存(Cache)、主存(Main Memory)与 CPU 的关系如图:

Cache 存储器部分用来存放主存的部分拷贝(副本)信息。控制部分的功能是判断 CPU 要访问的信息是否在 Cache 存储器中,若在即为命中,若不在则没有命中。命中时直接对 Cache 存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到 Cache 存储器的哪一块里。
替换算法的目标就是使 Cache 获得尽可能高的命中率。常用算法有如下几种。
Cache 容量越大,则命中率越高,随着 Cache 容量的增加,其失效率接近 0%(命中率逐渐接近 100%)。但是,增加 Cache 容量意味着增加 Cache 的成本和增加 Cache 的命中时间。
Cache 设置多级高速缓存的主要目的是提高 CPU 访问主存数据或指令的效率。
Cache 与主存地址的映射是由硬件自动完成的。
在 CPU 工作时,送出的是主存单元的地址,而应从 Cache 存储器中读/写信息。这就需要将主存地址转换成 Cache 存储器的地址,这种地址的转换称为地址映像。
发生块冲突多少的排序:直接映像(冲突多) > 组相联映像(冲突较少) > 全相联映像(冲突少)
计算机在执行程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序转去执行有关服务程序,处理完后自动返回源程序,这个过程称为中断。中断是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、计算机网络和分布式计算机系统中都要用到这种技术。为了提高响应中断的速度,通常把所有中断服务程序的入口地址(或称为中断向量)汇集为中断向量表。

程序查询方式是一种程序直接控制方式,这是主机与外设间进行信息交换的最简单的方式,输入和输出完全是通过 CPU 执行程序来完成的。

中断驱动就是将 CPU 从繁忙等待的繁琐中解脱出来。在发送完一个或一批数据后,CPU 就去忙别的事情。I/O 设备处理完这批数据后,向 CPU 发出中断。CPU 响应中断后再发送下一批数据。

直接存储器存取(DMA)是一种高速数据传输的方法,数据可以从一个通道,不经过 CPU 的处理就直接在存储器或输入输出设备之间进行传输。

微机中的总线分为数据总线、地址总线和控制总线 3 类。
加密技术是最常用的安全保密手段,数据加密技术的关键在于加密/解密算法和密钥管理。数据加密的基本过程就是对原来为明文的文件或数据按某种加密算法进行处理,使其成为不可读的一段代码,通常称为“密文”。“密文”只能在输入相应的密钥之后才能显示出原来的内容,通过这样的途径使数据不被窃取。
对称加密是最快速、最简单的一种加密方式,加密与解密用的是同样的密钥,加密解密速度快,适合加密大量明文数据。密钥的分发有缺陷,发送密钥的过程中,密钥有很大的风险会被黑客们拦截。对称加密只能防止窃听。
对称加密算法:
非对称加密使用了一对密钥,分别是公钥和私钥。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人(银行)才能对你的消息解密。加密解密速度慢。
非对称加密算法:
对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
对一份数据进行一个单向的 Hash 函数,生成一个固定长度的 Hash 值,这个值就是这份数据的摘要,也称为指纹。
摘要算法是单向的,只能根据原始数据计算出它的摘要值,但是不能根据摘要值反算出原始数据。
对于同一个摘要算法,无论输入的数据是什么,输出都是相同长度的值。
将发送的明文进行 Hash 算法后得到摘要,将摘要和密文一起发送过去,然后与接收方解密后的明文进行相同的 Hash 算法得到的摘要进行对比,如果一致,则没有篡改,否则有篡改。
摘要一般不会单独使用,而是和数字签名一起使用。
发送方用自己的私钥对摘要进行签名(加密),将得到的数字签名和密文一起发送过去,然后接收方用发送方的公钥对数字签名进行验证(解密),如果验证成功,则该消息没有被假冒且不能否认(防止发送方否认签名),否则该消息的真实性为假冒发送。
数字证书是互联网通讯中标志通讯各方身份信息的一系列数据,提供了验证身份的方式。它是由一个由权威机构中心发行的,人们可以在网上用它来识别对方的身份。最简单的数字证书包含一个公开密钥、名称以及证书授权中心的数字签名。
用户向 CA 机构申请数字证书,将个人信息和公钥发给 CA 机构,CA 机构颁发数字证书给用户。数字证书用 CA 的私钥进行签名(加密),用 CA 的公钥验证(解密)数字证书,得到用户的公钥。

设系统中各个子系统的可靠性分别用 $R_1,R_2,{\cdots},R_N$ 来表示,则系统的可靠性 $R$ 可由下式求得。
$$ R=R_1R_2{\cdots}R_N $$

设每个子系统的可靠性分别以 $R_1,R_2,{\cdots},R_N$ 表示,整个系统的可靠性可由下式求得。
$$ R=1-(1-R_1)(1-R_2){\cdots}(1-R_N) $$
评论