|
1 | | - |
2 | 1 | --- |
3 | 2 | title: StoreUnit |
4 | 3 | linkTitle: StoreUnit |
@@ -28,17 +27,9 @@ StoreUnit 是存储指令执行单元 ,由多个协同工作的子模块组成 |
28 | 27 |
|
29 | 28 | #### 存储地址流水线 |
30 | 29 |
|
31 | | -<div> |
32 | | - <center> |
33 | 30 |
|
34 | | - <img src="../../../../../../static/docs/98_ut/03_memblock/03_storeunit/scalar.png" |
| 31 | + |
35 | 32 |
|
36 | | - alt="sw指令流水示意图" |
37 | | - style="zoom:100%"/> |
38 | | - <br> |
39 | | - 图1:LoadQueueRAR结构示意图<br><br> |
40 | | - </center> |
41 | | -</div> |
42 | 33 |
|
43 | 34 |
|
44 | 35 | 由4级结构组成: |
@@ -95,17 +86,9 @@ StoreUnit 是存储指令执行单元 ,由多个协同工作的子模块组成 |
95 | 86 | 对于除 SEG指令外的向量内存访问指令,VSSplit 负责接收向量内存访问指令发射队列发送的微操作(uop),并将该微操作拆分为多个元素。随后VSSplit 将这些元素发送至StoreUnit 执行,执行流程与标量内存访问指令相同。执行完成后,元素会被写回至 VSMerge,其中 Merge 模块会将这些元素收集并组合成微操作,最终写回向量寄存器文件。 |
96 | 87 | SEG 指令则由独立的 VSegmentUnit 模块处理。 |
97 | 88 |
|
98 | | -<div> |
99 | | - <center> |
100 | 89 |
|
101 | | - <img src="../../../../../../static/docs/98_ut/03_memblock/03_storeunit/vector.png" |
| 90 | + |
102 | 91 |
|
103 | | - alt="vse指令流水示意图" |
104 | | - style="zoom:100%"/> |
105 | | - <br> |
106 | | - 图2:LoadQueueRAR结构示意图<br><br> |
107 | | - </center> |
108 | | -</div> |
109 | 92 |
|
110 | 93 |
|
111 | 94 | StoreUnit处理非对齐Store指令流程和标量类似,特别的: |
@@ -140,15 +123,8 @@ StoreUnit处理非对齐Store指令流程和标量类似,特别的: |
140 | 123 |
|
141 | 124 | 原子指令、MMIO与NC地址空间均不支持非对齐访问,这些情况将触发AccessFault异常。 |
142 | 125 |
|
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 | + |
| 127 | + |
152 | 128 |
|
153 | 129 |
|
154 | 130 | StoreUnit处理非对齐Store指令流程和标量类似,特别的: |
@@ -178,15 +154,8 @@ RAW内存违例:处理器核执行的Load指令的结果应来源于当前处 |
178 | 154 |
|
179 | 155 | Store指令地址流水线分为S0/S1/S2/S3四级,如图所示: |
180 | 156 |
|
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 | + |
| 158 | + |
190 | 159 |
|
191 | 160 |
|
192 | 161 | 接收store地址发射队列发来的请求,处理完成之后需要给后端和向量部分响应,处理过程中需要给发射队列反馈信息,给StoreQueue反馈信息,最后写回, 如果中间出现异常则从发射队列重新发射。 |
@@ -740,15 +709,7 @@ SBuffer支持超时清空机制;超过2^20周期未被换出的数据块将被 |
740 | 709 |
|
741 | 710 | ### 接口时序实例 |
742 | 711 |
|
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 | + |
752 | 713 |
|
753 | 714 |
|
754 | 715 |
|
|
0 commit comments