Skip to content

Commit e0974aa

Browse files
storeunit pics (#179)
* StoreUnit & template * StoreUnit docs update * StoreUnit update * Update 01_storeunit.md * Update 01_storeunit.md pics update * Update 01_storeunit.md * Update 01_storeunit.md * Update 01_storeunit.md
1 parent 1d18e71 commit e0974aa

1 file changed

Lines changed: 7 additions & 46 deletions

File tree

documents/content/zh-cn/docs/98_ut/03_memblock/03_lsu/01_storeunit.md

Lines changed: 7 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
---
32
title: StoreUnit
43
linkTitle: StoreUnit
@@ -28,17 +27,9 @@ StoreUnit 是存储指令执行单元 ,由多个协同工作的子模块组成
2827

2928
#### 存储地址流水线
3029

31-
<div>
32-
<center>
3330

34-
<img src="../../../../../../static/docs/98_ut/03_memblock/03_storeunit/scalar.png"
31+
![sw指令流水示意图](../../../../../../static/docs/98_ut/03_memblock/03_storeunit/scalar.png)
3532

36-
alt="sw指令流水示意图"
37-
style="zoom:100%"/>
38-
<br>
39-
图1:LoadQueueRAR结构示意图<br><br>
40-
</center>
41-
</div>
4233

4334

4435
由4级结构组成:
@@ -95,17 +86,9 @@ StoreUnit 是存储指令执行单元 ,由多个协同工作的子模块组成
9586
对于除 SEG指令外的向量内存访问指令,VSSplit 负责接收向量内存访问指令发射队列发送的微操作(uop),并将该微操作拆分为多个元素。随后VSSplit 将这些元素发送至StoreUnit 执行,执行流程与标量内存访问指令相同。执行完成后,元素会被写回至 VSMerge,其中 Merge 模块会将这些元素收集并组合成微操作,最终写回向量寄存器文件。
9687
SEG 指令则由独立的 VSegmentUnit 模块处理。
9788

98-
<div>
99-
<center>
10089

101-
<img src="../../../../../../static/docs/98_ut/03_memblock/03_storeunit/vector.png"
90+
![vse指令流水示意图](../../../../../../static/docs/98_ut/03_memblock/03_storeunit/vector.png)
10291

103-
alt="vse指令流水示意图"
104-
style="zoom:100%"/>
105-
<br>
106-
图2:LoadQueueRAR结构示意图<br><br>
107-
</center>
108-
</div>
10992

11093

11194
StoreUnit处理非对齐Store指令流程和标量类似,特别的:
@@ -140,15 +123,8 @@ StoreUnit处理非对齐Store指令流程和标量类似,特别的:
140123

141124
原子指令、MMIO与NC地址空间均不支持非对齐访问,这些情况将触发AccessFault异常。
142125

143-
<div>
144-
<center>
145-
<img src="../../../../../../static/docs/98_ut/03_memblock/03_storeunit/misalign.png"
146-
alt="非对齐sd指令流水示意图"
147-
style="zoom:100%"/>
148-
<br>
149-
图3:非对齐sd指令流水示意图<br><br>
150-
</center>
151-
</div>
126+
![非对齐sd指令流水示意图](../../../../../../static/docs/98_ut/03_memblock/03_storeunit/misalign.png)
127+
152128

153129

154130
StoreUnit处理非对齐Store指令流程和标量类似,特别的:
@@ -178,15 +154,8 @@ RAW内存违例:处理器核执行的Load指令的结果应来源于当前处
178154

179155
Store指令地址流水线分为S0/S1/S2/S3四级,如图所示:
180156

181-
<div>
182-
<center>
183-
<img src="../../../../../../static/docs/98_ut/03_memblock/03_storeunit/StoreUnit.png"
184-
alt="StoreUnit整体框图"
185-
style="zoom:100%"/>
186-
<br>
187-
图4:StoreUnit整体框图<br><br>
188-
</center>
189-
</div>
157+
![整体框图](../../../../../../static/docs/98_ut/03_memblock/03_storeunit/StoreUnit.png)
158+
190159

191160

192161
接收store地址发射队列发来的请求,处理完成之后需要给后端和向量部分响应,处理过程中需要给发射队列反馈信息,给StoreQueue反馈信息,最后写回, 如果中间出现异常则从发射队列重新发射。
@@ -740,15 +709,7 @@ SBuffer支持超时清空机制;超过2^20周期未被换出的数据块将被
740709

741710
### 接口时序实例
742711

743-
<div>
744-
<center>
745-
<img src="../../../../../../static/docs/98_ut/03_memblock/03_storeunit/LSU-StoreUnit-Timing.svg"
746-
alt="StoreUnit接口时序"
747-
style="zoom:100%"/>
748-
<br>
749-
图1:StoreUnit接口时序<br><br>
750-
</center>
751-
</div>
712+
![StoreUnit接口时序](../../../../../../static/docs/98_ut/03_memblock/03_storeunit/LSU-StoreUnit-Timing.svg)
752713

753714

754715

0 commit comments

Comments
 (0)