部分计算机体系结构和操作系统个人学习总结

本文概述了计算机体系结构的基础概念,包括处理器工作原理、运算逻辑单元(如nand、and、or、xor等)、ALU的加法运算、内存构造(寄存器、RAM和索引结构)以及RISC和CISC指令系统的比较,展示了流水线技术如何提高效率。
摘要由CSDN通过智能技术生成

部分计算机体系结构和操作系统个人学习总结

计算机体系结构

处理器体系结构

​ 处理器工作执行一系列的指令,每条指令执行某个简单的操作,例如两个数相加。指令被编码成由一个或多个字节序列组成的二进制格式。

​ 在硬件设计中,用电子电路计算对位进行运算的函数,类似于现代电路中用信号线上的高电压和低电压表示不同的位值。1代表高电压

​ 大部分处理器都有一个最小最基本的计算单元,此处以nand作为最小计算单元,nand就是(非and)(!&&),其他所有运算都在此计算单元基础上完成。

nand运算逻辑
abnand(a,b)
001
101
011
110
nand电路图

image-20240106214055686

and运算逻辑
aband(a,b)
000
100
010
111
and电路图

image-20240106214321013

and逻辑运算由两个nand基本计算单元构成,a和b nand出的结果同时作为第二个nand的a和b

not逻辑运算
anot(a)
01
10
not电路图

image-20240106214707813

not逻辑运算由一个nand构成,自己作为输入1和输入2得出

or逻辑运算
abor(a,b)
000
101
011
111
or电路图

image-20240106215017950

or由三个nand构成,也可以说是由a的not,b的not,(a的not和b的not的nand)构成。

xor逻辑运算
abxor(a,b)
000
101
011
110
xor电路图

image-20240106215728390

xor由四个nand构成

MUX选择器
abselout
0000
0100
1001
1101
0010
0111
10010
1111
MUX电路图

image-20240106220109503

image-20240106220214727

MUX选择器可以实现if,else的功能,做出二选一

MUX选择器由两个and、一个not和一个or构成。

ALU(运算逻辑单元)
加法运算

carry表示进位,sum表示运算结果

abcarrysum
0000
0101
1001
1110
电路图

image-20240106220825056

image-20240106220841281

三个数相加运算
abccarrysum
00000
00101
01001
01110
10001
10110
11010
11111

三个数相加是由多个两个数相加的运算单元结合构成

以此类比,最终可以实现16位的相加运算

ALU是cpu的核心

构造内存

计算机的内容是一次性的

DFF

image-20240106221520241

时间在计算机中是不连续的,是离散的,叫做【cycle】,因此可以将时间切片。此刻的输入可以作为下一刻的输出

sequential logic

(时序逻辑单元),普通(组合)的逻辑组件和DFF的组合

image-20240106221937736.png

在DFF的基础上加了一个load,任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态。

构造Bit

20240106222915.png

bit由MUX选择器和DFF构成

构造寄存器

image.png

寄存器越多,性能越好
寄存器多就可以减少去内存获取存储数据,从而提高缓存的利用率
构造RAM(内存)

image.png

如果是16个寄存器,那么k的长度(宽度)是4;
0-15个寄存器;
1111 = 15

如果是32个寄存器,那么k的宽度是5

寄存器0,寄存器1,寄存器2,... 寄存器15;

取第0个寄存器:0000
取第2个寄存器:0010
取第15个寄存器:1111

image-20240106231807095

一个一个小的register构成RAM8,多个RAM8构成RAM64……

内存的查找次数取决于内存的大小,
如果从RAM8里面找寄存器,例如输入的K=001,那么找的是第1个寄存器;
如果从RAM64里面找寄存器,例如输入的K=001010,那么找到的是第2(010)个RAM8里面找第1个(001)寄存器。

内存越大,查找的次数越多。

image.png

image.png

内存越大,速度越慢

缓存的局部性原理
能从“近”的地方取就不会到“远”的地方去。

1. 空间局部性;
sum = sum + a[i];主要指的是a[i]

2. 时间局部性;
sum = sum + a[i];主要指的是sum;

缓存局部性的拓展

缓存的速度是比内存要快的,什么样的数据需要从磁盘或者内存读到缓存中呢,计算机将指令邻近的指令或者数据读到缓存中,说白了就是赌,赌用户会用到邻近的数据或者指。想要利用好缓存,肯定是想要被读到缓存中的数据接着就会被使用,因此,程序设计者需要将相关数据尽量存放在一起。

缓存需要淘汰旧的缓存数据,不经常使用的缓存数据,使用LRU(least recently used)

缓存已经将需要的数据从更远更慢的介质读到了缓存中,即使是这样,但是缓存中的数据还是以百万、千万、亿条计数,从这么多数据中找到需要的数据也需要提高性能。

就像平时从字典中查找汉字,往往是通过目录确定汉字所在的具体页数,因此在缓存中,我们也需要类似目录一样的东西,也就是索引。索引有很多种,此处着重B+树索引,为了在索引中更多的存放信息,B+树的非叶子节点中只存放索引字段,而不存放整条数据,同时将所有叶子结点用指针连起来。必要时可以创建二级索引,将经常需要搜索的信息拿出,按照搜索次数排序。二级索引叶子结点存放的是主键的值。因此通过二级索引也可以快速定位到聚簇索引中的位置。

Counter

image.png

CPU的构成

image.png

内存和设备

image.png

计算机

image.png

计算机的内存中存放的是

1. 数据
2. 指令

计算机体系结构(Computer Architecture)是描述计算机各组成部分及其相互关系的一组规则和方法,是程序员所看到的计算机属性。计算机体系结构主要研究内容包括指令系统结构(Instruction Set Architecture,简称ISA)和计算机组织结构(Computer Organization)。

ISA

RISC(精简指令系统)

代表MIPS(寄存器是32个)和ARM。一般是用于手机。

针对效率的提升,我们可以用流水线(piple line)的原理。

假设洗衣房

1. 洗衣服
2. 烘干
3. 折叠衣服
4. 装包;
(4小时)

很多人要用洗衣房完成洗衣服,第一个人和第二个人没有先后顺序的情况下,第一个人完成第一个步骤时,第二个人就可以进行第一个步骤,以此类推。本来四个人需要16小时完成,而利用流水线只需要7个小时即可,大大提高了效率。

比如对一个数组进行求和,可以分别对数组的奇数项和数组的偶数项进行相加,最后进行总求和,奇数项和偶数项的相加可以同时进行,提高效率,减少时间。

CICS(复杂指令系统)

代表x86。一般用于个人电脑。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值