diff --git a/W12D2/ZhouBinglin/Note W12D2.md b/W12D2/ZhouBinglin/Note W12D2.md new file mode 100644 index 0000000..1c09686 --- /dev/null +++ b/W12D2/ZhouBinglin/Note W12D2.md @@ -0,0 +1,37 @@ +# Note W12D2 + +> 主要上课内容:内存一致性协议:ESI, MESI + +## Snoopy 协议: + +### ESI: + +每个 L1 Cache 分为三种状态: `E(Exclusive)` , `S(Shared)` , `I(Invalid)` 。初始都是 `Invalid` 状态. + +#### 三种状态的解释: + +- `Exclusive` : 数据经过了修改,在此 cache 中是 dirty 的。 +- `Shared` : 数据是 up to date 的。 +- `Invalid` : 当前 cache 中没有数据。 + +#### 三种状态的装换: + +##### 根据从 CPU 来的请求转换状态: + +![](img1.png) + +##### 根据来自 总线 的信息转换状态: + +![](img2.png) + +##### 合并: + +![](img3.png) + +### MESI: + +增加状态 `M(Modify)` . 如果修改 modify 状态的 cache 将不会进行核间通信,这也是 MESI 相对于 ESI 的优点。 + +#### 状态转换图: + +![](img4.png) \ No newline at end of file diff --git a/W12D2/ZhouBinglin/img1.png b/W12D2/ZhouBinglin/img1.png new file mode 100644 index 0000000..ad910da Binary files /dev/null and b/W12D2/ZhouBinglin/img1.png differ diff --git a/W12D2/ZhouBinglin/img2.png b/W12D2/ZhouBinglin/img2.png new file mode 100644 index 0000000..4acb45b Binary files /dev/null and b/W12D2/ZhouBinglin/img2.png differ diff --git a/W12D2/ZhouBinglin/img3.png b/W12D2/ZhouBinglin/img3.png new file mode 100644 index 0000000..2110045 Binary files /dev/null and b/W12D2/ZhouBinglin/img3.png differ diff --git a/W12D2/ZhouBinglin/img4.png b/W12D2/ZhouBinglin/img4.png new file mode 100644 index 0000000..3629701 Binary files /dev/null and b/W12D2/ZhouBinglin/img4.png differ diff --git a/W12D2/menu.md b/W12D2/menu.md index e69de29..d74ec7f 100644 --- a/W12D2/menu.md +++ b/W12D2/menu.md @@ -0,0 +1 @@ +[周秉霖](ZhouBinglin/Note%20W12D2.md) \ No newline at end of file diff --git a/W16D1/ZhouBinglin/Note W16D1.md b/W16D1/ZhouBinglin/Note W16D1.md new file mode 100644 index 0000000..f6d7e43 --- /dev/null +++ b/W16D1/ZhouBinglin/Note W16D1.md @@ -0,0 +1,27 @@ +# 期末复习 + +## 1. 事务内存 + +不考虑一个核上跑多个Tx的情况。 + +会考使用addm, xbegin, xend等指令测量L1 cache大小的方案。 + +## 2. Store buffer + +一个核一个store buffer,作用是避免了核间通信,加快速度。 + +有FIFO和非FIFO之分,FIFO能够保证其他核看到的写顺序是一样的。 + +## 3. MESI 与 ESI的差异,机器状态和祖安环 + +## 4. RAIDS + +RAIDS-01:先做条带,再作镜像。 + +RAIDS-10:先做镜像,再作条带。 + +综合来说 RAID-10优于RAIDS-01。 + +## 5.MPK + +染色,用 “域” 表示读写权限,使用 PKRU 寄存器来表示不同 “域” 的读写权限。 \ No newline at end of file diff --git a/W16D1/menu.md b/W16D1/menu.md index e69de29..33f9024 100644 --- a/W16D1/menu.md +++ b/W16D1/menu.md @@ -0,0 +1 @@ +[周秉霖](ZhouBinglin/Note%20W16D1.md) \ No newline at end of file diff --git a/W5D2/menu.md b/W5D2/menu.md index e3d526a..3e6229c 100644 --- a/W5D2/menu.md +++ b/W5D2/menu.md @@ -1,3 +1,3 @@ [范棋珈](FanQijia/W5D2-FanQijia-Cache.md) -[周秉霖](ZhouBinglin/Arch Note W5D2.md) \ No newline at end of file +[周秉霖](ZhouBinglin/Arch%20Note%20W5D2.md) \ No newline at end of file diff --git a/W9D1/ZhouBinglin/Note W9D1.md b/W9D1/ZhouBinglin/Note W9D1.md new file mode 100644 index 0000000..7f7eee0 --- /dev/null +++ b/W9D1/ZhouBinglin/Note W9D1.md @@ -0,0 +1,68 @@ +# Note: W9D1: + +> By ZhouBinglin + +## 1.Main Memory Organization + +三种 Organization 组织结构: + +- Simple: + - CPU, Cache, Bus, Memory same width (32 or 64 bits) + + +- Wide: + - CPU: 1 word + - Cache, Bus, Memory: n words (总线上能携带更多信息) +- Interleaved: + - CPU, Cache, Bus 1 word + - Memory N modus + +![mg](img1.png) + +## 2.Main Memory Performance + +衡量memory速度的公式: $AMAT_{Mem} = T_{address} + T_{access} + T_{transfer}$ . + +对于三种不同的模型,假设 $T_{address} = 1$ ,$T_{access} = 6$ ,$T_{transfer} = 1$ . 读连续的 4 words data: + +- Simple M.P. $T=4\times(1 + 6 + 1) = 32$ +- Wide M.P.(Bus is 4 words) $T = 1 + 6 + 1$ +- Interleaved M.P. (4 bank) $T = 1 + 6 + 4\times1 = 11$ + +## 3.Multi Bnak + +#### 概念: + +存储器被组织为多个体(bank) + +#### 目的: + +在总线宽度不变的情况下,完成多个字的并行读写。加快访问速度。 + +速度变快的原因:多个字同时access到buffer里面,再一个一个地经总线传回到cpu。 + +本质是一种 **delay hidden** 策略:用多个word的回传时间掩盖掉第二次access的时间(注意:第二次access是从第一次access结束时开始的)。 + +所以我们能够得出结论: $\textbf{$Num_{bank}=T_{access}/T_{tansfer\_one\_word}$}$ 时 **delay hidden** 效果最好。从总线上看,此时word是连续不断地从mem回传。 + +#### Address 到 bank 的映射: + +假设 $m-banks$ ,每个bank的capacity 为 $n$ words: + +##### 1.高位交叉编址 + +$A = x\times n + y$ // $x$ 为bank的number,y为bank内offset + +##### 2.低位交叉编址 + +$A = y \times m + x$ // $x$ 为bank的number,y为bank内offset + +1,2相比低位交叉编址能够更好利用空间局部性,减少冲突率 + +tips:若用低位交叉编址发生bank冲突,可在编译器层面对代码进行优化。 + +##### 3.Gao.q.s : 快速交叉编址 + +$x = a \% m, y = a\%n$ 。但这要求 $n = 2^s, m = 2^k -1$ . + +![mg](img2.png) \ No newline at end of file diff --git a/W9D1/ZhouBinglin/img1.png b/W9D1/ZhouBinglin/img1.png new file mode 100644 index 0000000..dcc53e0 Binary files /dev/null and b/W9D1/ZhouBinglin/img1.png differ diff --git a/W9D1/ZhouBinglin/img2.png b/W9D1/ZhouBinglin/img2.png new file mode 100644 index 0000000..4c0bd32 Binary files /dev/null and b/W9D1/ZhouBinglin/img2.png differ diff --git a/W9D1/menu.md b/W9D1/menu.md index e69de29..bbf33f7 100644 --- a/W9D1/menu.md +++ b/W9D1/menu.md @@ -0,0 +1 @@ +[周秉霖](ZhouBinglin/Note%20W9D1.md) \ No newline at end of file