diff --git a/Computer-Network/3-network-layer-ex.md b/Computer-Network/3-network-layer-ex.md index e8db0d9..eba92f9 100644 --- a/Computer-Network/3-network-layer-ex.md +++ b/Computer-Network/3-network-layer-ex.md @@ -18,7 +18,7 @@ $D.$物理层、数据链路层、网络层及高层协议都可以不同 ### IP数据报分片 -数据报分片时要注意$MTU$,且因为偏移量以$8$为单位,所以报文段必须可被$8$整除。 +数据报分片时要注意$MTU$要减去报文头部长度,且因为偏移量以$8$为单位,所以余下的报文段数据长度必须可被$8$整除。 #### 可整除 diff --git a/Computer-Network/3-network-layer.md b/Computer-Network/3-network-layer.md index 7623700..967ac02 100644 --- a/Computer-Network/3-network-layer.md +++ b/Computer-Network/3-network-layer.md @@ -224,7 +224,7 @@ C类|2097151|192.0.1|223.255.255|254 #### 子网划分 + 由两级$IP$地址(网络号+主机号)变为三级$IP$地址(网络号+子网号+主机号),将原来的主机号分割出来一部分作为子网号,子网的划分由单位内部完成,但是对外仍表现一个网络,外部无法看到本单位内子网的划分。 -+ 子网号可以全$0$或全$1$,但是主机号仍然不能全$0$全$1$。 ++ 子网划分的子网号不能全$0$或全$1$。网络地址和主网络的网络地址是重叠的。(与$CIDR$区别) + 子网的标识依靠子网掩码,其中网络号和子网号的部分全部位数为$1$,而主机号部分全部为$0$。 + 将子网掩码与$IP$地址逐位进行与操作,就可以得到子网网络地址。 @@ -260,6 +260,7 @@ C类|2097151|192.0.1|223.255.255|254 #### CIDR + 一般子网划分在同一个单位下的子网掩码都是相同长度的,而无分类编址$CIDR$就是变长的子网掩码。 ++ $CIDR$的子网号可以全$0$全$1$。因为掩码与$IP$地址同时传送,所以可以。但是严格情况下不行。 + $CIDR$构建的超网可以在单位内部根据不同部门的主机个数分配不同数量的子网$IP$地址。 + 通过$CIDR$就将子网划分的三级$IP$地址又回归为两级$IP$地址(网络前缀+主机号)。 + $CIDR$记法:$IP$地址后加上/,然后写上网络前缀的位数。 diff --git a/Computer-Organization/2-storage-system.md b/Computer-Organization/2-storage-system.md index 6060e04..f6c6adb 100644 --- a/Computer-Organization/2-storage-system.md +++ b/Computer-Organization/2-storage-system.md @@ -265,6 +265,28 @@ $ROM$写入速度不如$RAM$,所以一般还是用来保存信息而不用于 + 高位交叉编址的多体存储器:高位是体号,低位是体内地址。按列,模块里先编址,一个个模块进行分配。只是相当于扩容而已,对于速度没有改变。若连续取$n$个存储字,每次访问需要$T$的时间,则耗时$nT$。 + 低位交叉编址的多体存储器:低位是体号,高位是体内地址。按行,每一个单元先编址,一行行进行分配。由于每个存储体都是独立的,所以可以间隔一小段时间就能进行另一个的存储单元的访存而不用等待上一个单元的阶数。若连续取$n$个存储字,每次访问需要$T$的时间,启动间隔为$\tau$,则耗时$T+(n-1)\tau$。 +如高位交叉编址,体号+体内地址: + +M0|M1|M2|M3 +:-:|:-:|:-:|:-: +0000|0100|1000|1100 +0001|0101|1001|1101 +0010|0110|1010|1110 +0011|0111|1011|1111 + +这时按顺序访问就是竖着的。 + +低位交叉编址,体内地址+体号: + +M0|M1|M2|M3 +:-:|:-:|:-:|:-: +0000|0001|0010|0011 +0100|0101|0110|0111 +1000|1001|1010|1011 +1100|1101|1110|1111 + +此时顺序访问就是横着的,可以流水线操作。 + 对于交叉存储器的存取速度: + 模块数为$m$,存储周期为$T$,字长为$W$,数据总线宽度为$W$,总线传输周期为$r$,连续存取$n$个字,求交叉存储器的带宽。(有$m$个存储体,存储周期为$T$,字长为$W$,每隔$r$时间启动下一个存储体,连续存取$n$个字,求交叉存储器的存取速率。) @@ -316,6 +338,8 @@ $ROM$写入速度不如$RAM$,所以一般还是用来保存信息而不用于 即将主存块调入$Cache$时应该将其放在哪里。 +地址以字节为单位。 + #### 直接映射 + 对号入座,每一个主存块只能存放在唯一一个地方。 @@ -326,6 +350,9 @@ $ROM$写入速度不如$RAM$,所以一般还是用来保存信息而不用于 + 如$Cache$一共八行,则主存按八为一个周期存储,则如$Cache$的$0$号地址中一定存入主存块地址模八后余$0$的主存块,即地址都为为$xx\cdots000$,同理$1$号地址存的都是$xx\cdots001$,所以可以保存主存地址减三的前面位数就足够了。这里的$000$和$001$等类似于$Cache$的组号。若$Cache$的行数为$2^n$,主存块号地址为$c$位,则标记项只用保存$c-n$位就可以了。 + 地址=主存字块标记+$Cache$字块标记+字块内地址。 + $Cache$地址=$Cache$字块标记+字块内地址。 ++ 主存字块标记为主存容量除以$Cache$容量,表示要用多少位来区分主存地址。 ++ $Cache$字块标记的位数为$Cache$的块数的二对数。 ++ 字块内地址就是块内地址,位数为每块容量的二对数。 + 优点:节省掉$Cache$字块标记,有效位存储的地址减少,实现难度降低。 + 缺点:空间利用率降低。