1 | TOPPERS Confidential
|
---|
2 | TOPPERSããã¸ã§ã¯ã è¨è¨ã¡ã¢
|
---|
3 | ARMã®ã¢ã¼ããã¯ãã£ã«é¢ããã¡ã¢
|
---|
4 |
|
---|
5 | ä½æè
|
---|
6 | : é«ç°åºç« ï¼åå¤å±å¤§å¦ï¼
|
---|
7 | æçµæ´æ°: 2015å¹´8æ18æ¥
|
---|
8 |
|
---|
9 | âã¡ã¢ã®ä½ç½®ã¥ã
|
---|
10 |
|
---|
11 | ãã®ã¡ã¢ã¯ï¼ARMã®ã¢ã¼ããã¯ãã£ã«é¢ãã¦ï¼TOPPERSã«ã¼ãã«ããã¼ãã£ã³ã°
|
---|
12 | ããã«ããã£ã¦å¿
|
---|
13 | è¦ã¨ãªãäºé
|
---|
14 | ãã¾ã¨ãããã®ã§ããï¼
|
---|
15 |
|
---|
16 | ãªãï¼ãã®ã¡ã¢ã§å¯¾è±¡ã¨ããARMã¢ã¼ããã¯ãã£ã¯ä»¥ä¸ã®ãã®ã§ããï¼ARM-Mã¢ã¼
|
---|
17 | ããã¯ãã£ï¼Cortex-Mã·ãªã¼ãºï¼ããã³ARMv8ã¢ã¼ããã¯ãã£ï¼64ãããARMï¼
|
---|
18 | ã¯æ±ããªãï¼
|
---|
19 |
|
---|
20 | ARMv4ï¼ARM7TDMIï¼ARM9TDMIï¼
|
---|
21 | ARMv5ï¼ARM9Eï¼ARM10Eï¼
|
---|
22 | ARMv6ï¼ARM11ï¼
|
---|
23 | ARMv7-Aï¼Cortex-A8ï¼Cortex-A9ï¼Cortex-A15ãªã©ï¼
|
---|
24 | ARMv7-Rï¼Cortex-R4ï¼Cortex-R5ï¼Cortex-R7ï¼
|
---|
25 |
|
---|
26 | ARMã®MMUé¢é£ã®äºé
|
---|
27 | ã«ã¤ãã¦ã¯ï¼ãARMã®VMSAã«é¢ããã¡ã¢ããåç
|
---|
28 | §ãããã¨ï¼
|
---|
29 |
|
---|
30 | âç®æ¬¡
|
---|
31 |
|
---|
32 | ã»åèæç®
|
---|
33 | ã»å®è¡ã¢ã¼ã
|
---|
34 | - ç¹æ¨©ã¬ãã«
|
---|
35 | - ããã»ããµã¢ã¼ã
|
---|
36 | ã»æ±ç¨ã¬ã¸ã¹ã¿
|
---|
37 | - ã¢ããªã±ã¼ã·ã§ã³ã¬ãã«ã®æ±ç¨ã¬ã¸ã¹ã¿
|
---|
38 | - ã·ã¹ãã ã¬ãã«ã®æ±ç¨ã¬ã¸ã¹ã¿
|
---|
39 | ã»ããã°ã©ã ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿
|
---|
40 | - ã¢ããªã±ã¼ã·ã§ã³ã¬ãã«ã®ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿
|
---|
41 | - ã·ã¹ãã ã¬ãã«ã®ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿
|
---|
42 | - å®æ°å¤ã®å®ç¾©
|
---|
43 | ã»è¤æ°ã®ã¬ã¸ã¹ã¿ã®æä½
|
---|
44 | - ã¢ãã¬ãã·ã³ã°ã¢ã¼ã
|
---|
45 | - ã¬ã¸ã¹ã¿ã®ãã¼ãï¼ã¹ãã¢é åº
|
---|
46 | - Wãããï¼"!"ã®ä»å ï¼
|
---|
47 | - Sãããï¼"^"ã®ä»å ï¼
|
---|
48 | ã»ä¾å¤
|
---|
49 | - ä¾å¤ã®ç¨®é¡ã¨ã¢ã¼ã/ãã¯ã¿
|
---|
50 | - ä¾å¤åä»æã®å¦ç
|
---|
51 | - å²è¾¼ã¿ã®åºå
|
---|
52 | ¥å£
|
---|
53 | - ARMv6以éã®ä¾å¤å¦çå½ä»¤
|
---|
54 | ã»ã·ã¹ãã å½ä»¤ãªãã¡ã¬ã³ã¹
|
---|
55 | - ldm
|
---|
56 | - stm
|
---|
57 | - mrs
|
---|
58 | - msr
|
---|
59 | - cps
|
---|
60 | ã»ãã£ãã·ã¥ã¨åå²äºæ¸¬
|
---|
61 | - ãã£ãã·ã¥ã®èå¥
|
---|
62 | - ãã£ãã·ã¥ã®æ¯èã
|
---|
63 | - ãã£ãã·ã¥ã®ã¤ãã¼ãã«ï¼ãã£ã¹ã¨ã¼ãã«
|
---|
64 | - ARMv7ã«ããããã£ãã·ã¥ã¨åå²äºæ¸¬ã®ã¡ã³ããã³ã¹æä½
|
---|
65 | ã»TLBã®ã¡ã³ããã³ã¹æä½
|
---|
66 | - VMSAã«ãããTLBã®ã¡ã³ããã³ã¹æä½
|
---|
67 | ã»ã¡ã¢ãªã¿ã¤ãã»å±æ§ã¨ã¡ã¢ãªé åºã¢ãã«
|
---|
68 | - ã¡ã¢ãªã¿ã¤ã
|
---|
69 | - ã¡ã¢ãªå±æ§
|
---|
70 | - Deviceã¨Strongly-orderedã¡ã¢ãª
|
---|
71 | ã»ã¡ã¢ãªã¢ã¯ã»ã¹é åº
|
---|
72 | - ãªã¼ãã¨ã©ã¤ã
|
---|
73 | - ã¡ã¢ãªã¢ã¯ã»ã¹ã®é åºè¦æ±
|
---|
74 | - ã¡ã¢ãªããªã¢
|
---|
75 | - CPSRã®å¤æ´ã¨ã¡ã¢ãªé åºã¢ãã«
|
---|
76 | - ããªã¢å½ä»¤ã®ä½¿ç¨ä¾
|
---|
77 | ã»ã³ããã»ããµ
|
---|
78 | - ã³ããã»ããµãµãã¼ã
|
---|
79 | - ã³ããã»ããµå½ä»¤
|
---|
80 | ã»CP15
|
---|
81 | - ä»®æ³ã¡ã¢ãªã·ã¹ãã ã¢ã¼ããã¯ãã£ï¼VMSAï¼ã§ã®ã¬ã¸ã¹ã¿
|
---|
82 | - ç©çã¡ã¢ãªã·ã¹ãã ã¢ã¼ããã¯ãã£ï¼PMSAï¼ã§ã®ã¬ã¸ã¹ã¿
|
---|
83 | - ããã©ã¼ãã³ã¹ã¢ãã¿ã¬ã¸ã¹ã¿
|
---|
84 |
|
---|
85 | âåèæç®
|
---|
86 |
|
---|
87 | [1] ARM Architecture Reference Manual, 2005
|
---|
88 | DDI 01001.pdf
|
---|
89 | â» ARMv6以åã®å®ç¾©
|
---|
90 |
|
---|
91 | [2] ARM Architecture Reference Manual - ARMv7-A and ARv7-R edition, 2014
|
---|
92 | DDI0406C_C_arm_architecture_reference_manual.pdf
|
---|
93 | â» ARMv7ã®å®ç¾©ï¼ARMv6以åã¨ã®å·®åã«ã¤ãã¦ãè¨è¼ãã
|
---|
94 |
|
---|
95 | âç¨èªé
|
---|
96 |
|
---|
97 | RAZ Read-As-Zero
|
---|
98 | RAZ/WI Read-As-Zero Write-Ignored
|
---|
99 | RAZ/SBZP Read-As-Zero Should-Be-Zero-or-Preserved on writes
|
---|
100 |
|
---|
101 | âå®è¡ã¢ã¼ã
|
---|
102 |
|
---|
103 | âç¹æ¨©ã¬ãã«
|
---|
104 |
|
---|
105 | ARMã¯ï¼ä»¥ä¸ã®ç¹æ¨©ã¬ãã«ãæã¤ï¼
|
---|
106 |
|
---|
107 | PL0 ã¦ã¼ã¶ããã°ã©ã ãå®è¡ããã¢ã¼ãï¼éç¹æ¨©ã¬ãã«
|
---|
108 | PL1 OSãå®è¡ããã¬ãã«ï¼ã¹ã¼ããã¤ã¶ã¬ãã«ï¼ããããç¹æ¨©ã¬ãã«ï¼
|
---|
109 | PL2 VMMãå®è¡ããã¬ãã«ï¼ãã¤ããã¤ã¶ã¬ãã«ãä»®æ³åæ¡å¼µã
|
---|
110 |
|
---|
111 | ã»ãã¥ãªãã£æ¡å¼µã«ããã¦ï¼Secureç¶æ
|
---|
112 | ã¯ï¼PL2ãæããªãï¼è¨ãæããã¨ï¼
|
---|
113 | PL2ã¯ï¼Non-secureç¶æ
|
---|
114 | ã«éãããï¼Secureç¶æ
|
---|
115 | ã§VMãç¨ãããã¨ã¯æ³å®ãã¦ã
|
---|
116 | ãªãï¼ï¼
|
---|
117 |
|
---|
118 | âããã»ããµã¢ã¼ãï¼[2] B.1.3ç¯ï¼
|
---|
119 |
|
---|
120 | ARMã¯ï¼ä»¥ä¸ã®ããã»ããµã¢ã¼ããæã¤ï¼
|
---|
121 |
|
---|
122 | User usr ã¦ã¼ã¶
|
---|
123 | FIQ fiq FIQ
|
---|
124 | IRQ irq IRQ
|
---|
125 | Supervisor svc ã¹ã¼ããã¤ã¶
|
---|
126 | Abort abt ã¢ãã¼ã
|
---|
127 | Undefined und æªå®ç¾©
|
---|
128 | System sys ã·ã¹ãã
|
---|
129 |
|
---|
130 | ã¦ã¼ã¶ã¢ã¼ãã¯éç¹æ¨©ã¬ãã«ï¼PL0ï¼ï¼ãã®ä»ã¯ç¹æ¨©ã¬ãã«ï¼PL1ï¼ã§ããï¼ã¦ã¼
|
---|
131 | ã¶ã¢ã¼ãã¨ã·ã¹ãã ã¢ã¼ã以å¤ãï¼ä¾å¤ã¢ã¼ãã¨ç·ç§°ããï¼
|
---|
132 |
|
---|
133 | ã»ãã¥ãªãã£æ¡å¼µã§ã¯ï¼Secureç¶æ
|
---|
134 | ã¨Non-secureç¶æ
|
---|
135 | ã®åãæãç¨ã«ï¼ä»¥ä¸ã®
|
---|
136 | ã¢ã¼ããæã¤ï¼ä»¥ä¸ï¼ãã®ã¡ã¢ã§ã¯æ±ããªãï¼ï¼ãã®ã¢ã¼ãã¯ï¼ç¹æ¨©ã¬ãã«
|
---|
137 | ï¼PL1ï¼ã§ããï¼Secureç¶æ
|
---|
138 | ã«éå®ãããï¼
|
---|
139 |
|
---|
140 | Monitor mon ã¢ãã¿
|
---|
141 |
|
---|
142 | ã¾ãï¼ä»®æ³åæ¡å¼µã§ã¯ï¼ä»¥ä¸ã®ã¢ã¼ããæã¤ï¼ä»¥ä¸ï¼ãã®ã¡ã¢ã§ã¯æ±ããªãï¼ï¼
|
---|
143 | ãã®ã¢ã¼ãã¯ï¼ãã¤ããã¤ã¶ã¬ãã«ï¼PL2ï¼ã§ããï¼Non-secureç¶æ
|
---|
144 | ã«éå®ãã
|
---|
145 | ãï¼
|
---|
146 |
|
---|
147 | Hyp hyp ãã¤ããã¤ã¶
|
---|
148 |
|
---|
149 | âæ±ç¨ã¬ã¸ã¹ã¿
|
---|
150 |
|
---|
151 | âã¢ããªã±ã¼ã·ã§ã³ã¬ãã«ã®æ±ç¨ã¬ã¸ã¹ã¿
|
---|
152 |
|
---|
153 | ARMã®æ±ç¨ã¬ã¸ã¹ã¿ã¯ï¼r0ãr15ã®16æ¬ããï¼ãã ãï¼ä»¥ä¸ã®ã¬ã¸ã¹ã¿ã¯ç¹æ®ç®
|
---|
154 | çã«ä½¿ããã¦ããï¼æ±ç¨ã¬ã¸ã¹ã¿ã¨ãã¦ã¯ä½¿ç¨ããªãï¼
|
---|
155 |
|
---|
156 | r13 ã¹ã¿ãã¯ãã¤ã³ã¿ sp
|
---|
157 | r14 ãªã³ã¯ã¬ã¸ã¹ã¿ lr
|
---|
158 | r15 ããã°ã©ã ã«ã¦ã³ã¿ pc
|
---|
159 |
|
---|
160 | ã¾ãï¼ä»¥ä¸ã®ã¬ã¸ã¹ã¿ãç¹æ®ç®çã«ä½¿ãããå ´åããããï¼é常ã¯æ±ç¨ã¬ã¸ã¹
|
---|
161 | ã¿ã¨ãã¦ä½¿ç¨ããï¼
|
---|
162 |
|
---|
163 | r12 InterProcedure ip
|
---|
164 |
|
---|
165 | ç¹æ®ç®çã®ã¬ã¸ã¹ã¿ä»¥å¤ã§ï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã¯ä»¥ä¸ã®éãï¼
|
---|
166 |
|
---|
167 | r0, r1, r2, r3, r12
|
---|
168 |
|
---|
169 | ãã®ä»ã®ã¬ã¸ã¹ã¿ï¼r4ãr11ï¼ã¯ï¼callee saved registerã§ããï¼
|
---|
170 |
|
---|
171 | âã·ã¹ãã ã¬ãã«ã®æ±ç¨ã¬ã¸ã¹ã¿
|
---|
172 |
|
---|
173 | åä¾å¤ã¢ã¼ãã¯ï¼å°ç¨ã®spï¼r13ï¼ã¨lrï¼r14ï¼ãæã¤ï¼FIQã¢ã¼ãã¯ï¼ããã«å
|
---|
174 | ãã¦ï¼R8ãR12ãå°ç¨ã«æã¤ï¼ãã®ä»ã®ã¬ã¸ã¹ã¿ï¼pcãå«ãï¼ã¯ï¼ã¦ã¼ã¶ã¢ã¼ã
|
---|
175 | ã¨å
|
---|
176 | ±ç¨ãã¦ããï¼
|
---|
177 |
|
---|
178 | ã·ã¹ãã ã¢ã¼ãã¯ï¼ãã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¦ã¼ã¶ã¢ã¼ãã¨å
|
---|
179 | ±ç¨ãã¦ããï¼ã¤ã¾ãï¼
|
---|
180 | ã·ã¹ãã ã¢ã¼ãã¨ã¦ã¼ã¶ã¢ã¼ãã®éãã¯ï¼ç¹æ¨©ã¢ã¼ããå¦ãã®éãã®ã¿ï¼ï¼
|
---|
181 |
|
---|
182 | ç¹å®ã®ã¢ã¼ãã®spã¨lrãï¼sp_usrï¼lr_usrï¼sp_svcï¼lr_svcã®ããã«è¡¨è¨ããï¼
|
---|
183 |
|
---|
184 | âããã°ã©ã ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿
|
---|
185 |
|
---|
186 | âã¢ããªã±ã¼ã·ã§ã³ã¬ãã«ã®ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿
|
---|
187 |
|
---|
188 | ã¢ããªã±ã¼ã·ã§ã³ã¬ãã«ã®ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã¨ãã¦ï¼APSRï¼Application
|
---|
189 | Program Status Registerï¼ãããï¼APSRã®æ§æã¯ä»¥ä¸ã®éãï¼
|
---|
190 |
|
---|
191 | ããã31ï¼MSBï¼ Nãã©ã°ï¼Negativeï¼
|
---|
192 | 30 Zãã©ã°ï¼Zeroï¼
|
---|
193 | 29 Cãã©ã°ï¼Carryï¼
|
---|
194 | 28 Vãã©ã°ï¼Overflowï¼
|
---|
195 | 27 Qãã©ã°ï¼Overflowã¾ãã¯Saturationï¼DSPå½ä»¤ç¨ï¼
|
---|
196 | 26ã24 常ã«0ï¼RAZ/SBZPï¼
|
---|
197 | 23ã20 äºç´
|
---|
198 | 19ã16 GE[3:0] Greater or Equalãã©ã°ï¼SIMDå½ä»¤ç¨ï¼
|
---|
199 | 15ã0 äºç´
|
---|
200 |
|
---|
201 | âã·ã¹ãã ã¬ãã«ã®ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿
|
---|
202 |
|
---|
203 | ã·ã¹ãã ã¬ãã«ã®ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã¨ãã¦ï¼CPSRï¼Current Program Status
|
---|
204 | Registerï¼ãããï¼CPSRã¯ï¼APSRã®æ¡å¼µã§ããï¼è¨ãæããã¨ï¼APSRã¯ï¼CPSR
|
---|
205 | ã®ä¸é¨ãè¦ãã¦ããï¼ï¼CPSRã®æ§æã¯ä»¥ä¸ã®éãï¼
|
---|
206 |
|
---|
207 | ããã31ã27 N,Z,C,V,Qãã©ã° ⦠APSRã¨åã
|
---|
208 | 26ã25 IT[1:0] ä¸ã®ITãããã®ä¸ä½2ããã
|
---|
209 | 24 Jãããï¼Jazelleãããï¼
|
---|
210 | 23ã20 äºç´
|
---|
211 | 19ã16 GE[3:0] Greater or Equalãã©ã°ï¼SIMDå½ä»¤ç¨ï¼â¦ APSRã¨åã
|
---|
212 | 15ã10 IT[7:2] If-Thenå®è¡ç¶æ
|
---|
213 | ãããï¼Thumb ITå½ä»¤ç¨ï¼
|
---|
214 | 9 Eãããï¼ã¨ã³ãã£ã¢ã³ç¶æ
|
---|
215 | ï¼
|
---|
216 | 8 Aãããï¼éåæã¢ãã¼ãç¦æ¢ï¼
|
---|
217 | 7 Iãããï¼IRQç¦æ¢ï¼
|
---|
218 | 6 Fãããï¼FIQç¦æ¢ï¼
|
---|
219 | 5 Tãããï¼Thumbãããï¼Jãããã¨åããã¦å½ä»¤ã»ãããæå®ï¼
|
---|
220 | 4ã0 M[4:0] ããã»ããµã¢ã¼ã
|
---|
221 |
|
---|
222 | CPSRã¯ï¼ãã¹ã¦ã®ã¢ã¼ãã§å
|
---|
223 | ±ç¨ãã¦ããï¼ã¤ã¾ãï¼CPSRã¯1ã¤ãããªãï¼ï¼
|
---|
224 |
|
---|
225 | ã¢ã¼ãåæãåã®CPSRãä¿åããããã®ã¬ã¸ã¹ã¿ã¨ãã¦ï¼SPSRï¼Saved
|
---|
226 | Program Status Registerï¼ãããï¼SPSRã¯ï¼åä¾å¤ã¢ã¼ãæ¯ã«å°ç¨ã«æã¤ï¼ã¦ã¼
|
---|
227 | ã¶ã¢ã¼ãã¨ã·ã¹ãã ã¢ã¼ãã¯ï¼SPSRãæããªãï¼ï¼
|
---|
228 |
|
---|
229 | âã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã«é¢ããå®æ°å¤ã®å®ç¾©ï¼arm.hï¼
|
---|
230 |
|
---|
231 | ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã«è¨å®ããå¤ã表ãããã®å®æ°å¤ãç¨æãã¦ããï¼
|
---|
232 |
|
---|
233 | /*
|
---|
234 | * CPSRã®å²è¾¼ã¿ç¦æ¢ããã
|
---|
235 | */
|
---|
236 | #define CPSR_INT_MASK UINT_C(0xc0)
|
---|
237 | #define CPSR_IRQ_BIT UINT_C(0x80)
|
---|
238 | #define CPSR_FIQ_BIT UINT_C(0x40)
|
---|
239 |
|
---|
240 | /*
|
---|
241 | * CPSRã®Thumbããã
|
---|
242 | */
|
---|
243 | #define CPSR_THUMB_BIT UINT_C(0x20)
|
---|
244 |
|
---|
245 | /*
|
---|
246 | * CPSRã®ã¢ã¼ãããã
|
---|
247 | */
|
---|
248 | #define CPSR_MODE_MASK UINT_C(0x1f)
|
---|
249 | #define CPSR_USR_MODE UINT_C(0x10)
|
---|
250 | #define CPSR_FIQ_MODE UINT_C(0x11)
|
---|
251 | #define CPSR_IRQ_MODE UINT_C(0x12)
|
---|
252 | #define CPSR_SVC_MODE UINT_C(0x13)
|
---|
253 | #define CPSR_ABT_MODE UINT_C(0x17)
|
---|
254 | #define CPSR_UND_MODE UINT_C(0x1b)
|
---|
255 | #define CPSR_SYS_MODE UINT_C(0x1f)
|
---|
256 |
|
---|
257 | âè¤æ°ã®ã¬ã¸ã¹ã¿ã®æä½
|
---|
258 |
|
---|
259 | âã¢ãã¬ãã·ã³ã°ã¢ã¼ã
|
---|
260 |
|
---|
261 | è¤æ°ã®ã¬ã¸ã¹ã¿ã®ãã¼ãï¼ã¹ãã¢ã«ã¯ï¼4ã¤ã®ã¢ãã¬ãã·ã³ã°ã¢ã¼ããããï¼
|
---|
262 |
|
---|
263 | IAï¼Increment Afterï¼ æå®ããçªå°ãã大ããæ¹ã®çªå°ã«åãã£ã¦ä½¿ç¨
|
---|
264 | IBï¼Increment Beforeï¼ æå®ããçªå°ï¼4ãã大ããæ¹ã®çªå°ã«åãã£ã¦ä½¿ç¨
|
---|
265 | DAï¼Decrement Afterï¼ æå®ããçªå°ããå°ããæ¹ã®çªå°ã«åãã£ã¦ä½¿ç¨
|
---|
266 | DBï¼Decrement Beforeï¼ æå®ããçªå°â4ããå°ããæ¹ã®çªå°ã«åãã£ã¦ä½¿ç¨
|
---|
267 |
|
---|
268 | ã¹ã¿ãã¯æä½ã®å ´åã«ã¯ï¼ããããããããããã«ï¼ä»¥ä¸ã®4ã¤ã®ã¢ãã¬ãã·ã³
|
---|
269 | ã°ã¢ã¼ããç¨ããï¼
|
---|
270 |
|
---|
271 | FDï¼Full Descendingï¼
|
---|
272 | EDï¼Empty Descendingï¼
|
---|
273 | FAï¼Full Ascendingï¼
|
---|
274 | EAï¼Enpty Ascendingï¼
|
---|
275 |
|
---|
276 | Full ⦠ã¹ã¿ãã¯ãã¤ã³ã¿ã¯ä½¿ã£ã¦ããæå¾ã®çªå°ãæã
|
---|
277 | Empty ⦠ã¹ã¿ãã¯ãã¤ã³ã¿ã¯æ¬¡ã«ä½¿ãï¼ã¤ã¾ãï¼ä½¿ã£ã¦ããªãï¼çªå°ãæã
|
---|
278 | Descending ⦠ã¹ã¿ãã¯ã¯å°ããçªå°ã«åãã£ã¦ä¼¸ã³ã
|
---|
279 | Ascending ⦠ã¹ã¿ãã¯ã¯å¤§ããçªå°ã«åãã£ã¦ä¼¸ã³ã
|
---|
280 |
|
---|
281 | ã¹ã¿ãã¯æä½ã«ã¯ï¼é常ã¯FDã使ãï¼ldmå½ä»¤ã¨stmå½ä»¤ã«ããã¦ï¼ä»¥ä¸ã®ãã
|
---|
282 | ã«å¯¾å¿ããï¼
|
---|
283 |
|
---|
284 | ã¹ã¿ãã¯æä½ ã¹ã¿ãã¯ä»¥å¤ã®æä½
|
---|
285 | stmfdï¼Full Descendingï¼ stmdbï¼Decrement Beforeï¼ â¦ push
|
---|
286 | ldmfdï¼Full Descendingï¼ ldmiaï¼Increment Afterï¼ â¦ pop
|
---|
287 |
|
---|
288 | âã¬ã¸ã¹ã¿ã®ãã¼ãï¼ã¹ãã¢é åº
|
---|
289 |
|
---|
290 | çªå·ã®å°ããã¬ã¸ã¹ã¿ãï¼å°ããã¢ãã¬ã¹ãããã¼ãï¼ã«ã¹ãã¢ããï¼
|
---|
291 |
|
---|
292 | âWãããï¼"!"ã®ä»å ï¼
|
---|
293 |
|
---|
294 | Wãããã1ã®å ´åï¼ãã¼ã¹ã¬ã¸ã¹ã¿ã®å¤ãï¼ã¤ã³ã¯ãªã¡ã³ãã¾ãã¯ãã¯ãªã¡ã³
|
---|
295 | ãããå¤ã«ï¼æ´æ°ããï¼
|
---|
296 |
|
---|
297 | âSãããï¼"^"ã®ä»å ï¼
|
---|
298 |
|
---|
299 | Sãããã¯ï¼ç¶æ³ã«ãã2ã¤ã®æ©è½ãæã¤ï¼
|
---|
300 |
|
---|
301 | pcï¼r15ï¼ãå«ãldmã®å ´å
|
---|
302 | cpsrãï¼spsrãããã¼ãï¼å¾©å¸°ï¼ãããï¼
|
---|
303 |
|
---|
304 | stmã¨pcï¼r15ï¼ãå«ã¾ãªãldmã®å ´å
|
---|
305 | ç¹æ¨©ã¢ã¼ãã§ä½¿ç¨ããå ´åï¼ã¦ã¼ã¶ã¢ã¼ãã®ã¬ã¸ã¹ã¿ã転éãããï¼
|
---|
306 |
|
---|
307 | âä¾å¤
|
---|
308 |
|
---|
309 | âä¾å¤ã®ç¨®é¡ã¨ã¢ã¼ã/ãã¯ã¿
|
---|
310 |
|
---|
311 | ä¾å¤ã¿ã¤ã ä¾å¤ã¢ã¼ã ãã¯ã¿ã¢ãã¬ã¹
|
---|
312 | ãã¼ãã« ãã¤ãã¯ã¿
|
---|
313 | ----------------------------------------------------------------------
|
---|
314 | Reset ã¹ã¼ããã¤ã¶ 0x00000000 0xffff0000
|
---|
315 | Undefined instructions æªå®ç¾© 0x00000004 0xffff0004
|
---|
316 | Supervisor Call ã¹ã¼ããã¤ã¶ 0x00000008 0xffff0008
|
---|
317 | Prefetch Abort ã¢ãã¼ã 0x0000000c 0xffff000c
|
---|
318 | Data Abort ã¢ãã¼ã 0x00000010 0xffff0010
|
---|
319 | IRQ (interrupt) IRQ 0x00000018 0xffff0018
|
---|
320 | FIQ (fast interrupt) FIQ 0x0000001c 0xffff001c
|
---|
321 | ----------------------------------------------------------------------
|
---|
322 | â»Supervisor Callã¯ï¼å¤ãããã¥ã¢ã«ã§ã¯Software interrupt (SWI)ã¨æ¸ããã¦ãã
|
---|
323 | â»Prefetch Abortï¼å½ä»¤ãã§ããã§ã®ã¡ã¢ãªã¢ãã¼ã
|
---|
324 | â»Data Abortï¼ãã¼ã¿ã¢ã¯ã»ã¹ã§ã®ã¡ã¢ãªã¢ãã¼ã
|
---|
325 |
|
---|
326 | ãã¯ã¿å²è¾¼ã¿ã¢ã¼ãï¼CP15ã§å¶å¾¡ãããï¼ã®å ´åï¼IRQã¨FIQã«å¯¾ãã¦ã¯ï¼ä¸ã®
|
---|
327 | ãã¯ã¿ã¢ãã¬ã¹ã¯ä½¿ãããï¼å®è£
|
---|
328 | ä¾åã®ã¢ãã¬ã¹ã使ãããï¼
|
---|
329 |
|
---|
330 | âä¾å¤åä»æã®å¦ç
|
---|
331 |
|
---|
332 | ã»ä¾å¤çºçæç¹ã®pcã¨cpsrãï¼è©²å½ããä¾å¤ã¢ã¼ãã®lrã¨spsrã«ä¿åãããï¼
|
---|
333 | - lrã«ä¿åãããå¤ã¯ï¼ç¶æ³ã«ãã£ã¦ç°ãªãï¼å¾è¿°ï¼ï¼
|
---|
334 |
|
---|
335 | ã»ãã»ãã¥ãªãã£æ¡å¼µãå¿
|
---|
336 | è¦ãªå ´åã«ã¯ï¼Secureã¢ã¼ãã«åãæããï¼
|
---|
337 |
|
---|
338 | ã»cpsrã以ä¸ã®ããã«å¤æ´ãããï¼
|
---|
339 | - ã¢ã¼ããåãä»ããä¾å¤ã®ã¢ã¼ãã«å¤æ´ãããï¼
|
---|
340 | - 該å½ããå²è¾¼ã¿ãã¹ã¯ãã»ãããããï¼
|
---|
341 | + ResetãFIQãªãï¼FIQãç¦æ¢ããï¼
|
---|
342 | + IRQãç¦æ¢ããï¼
|
---|
343 | +ãARMv6以éãUNDEFã¨SWI以å¤ãªãï¼éåæã¢ãã¼ããç¦æ¢ããï¼
|
---|
344 | - å½ä»¤ã»ããï¼Jï¼Tï¼ãä¾å¤ã¨ã³ããªãè¦æ±ãããå¤ã«ã»ãããããï¼
|
---|
345 | + ARMç¶æ
|
---|
346 | ã«ããï¼
|
---|
347 | - ã¨ã³ãã£ã¢ã³ç¶æ
|
---|
348 | ï¼Eï¼ãä¾å¤ã¨ã³ããªãè¦æ±ãããå¤ã«ã»ãããããï¼
|
---|
349 | + CP15ã®reg1_EEãããã§æ±ºã¾ãï¼
|
---|
350 | - IT[7:0]ã0ã«ã¯ãªã¢ãããï¼
|
---|
351 |
|
---|
352 | ã»ãã¯ã¿ã¢ãã¬ã¹ã«åå²ããï¼
|
---|
353 |
|
---|
354 | âlrã«ä¿åãããå¤
|
---|
355 |
|
---|
356 | ä¾å¤ã¿ã¤ã æã¾ããæ»ãçªå° ãªãã»ãã
|
---|
357 | ----------------------------------------------------------------------
|
---|
358 | Undefined instructions æªå®ç¾©å½ä»¤ã®çªå° ï¼4/2(*)
|
---|
359 | Supervisor Call SVCã®æ¬¡ã®å½ä»¤ã®çªå° ï¼0
|
---|
360 | Prefetch Abort ã¢ãã¼ããããå½ä»¤ã®çªå° ï¼4
|
---|
361 | Data Abort ã¢ãã¼ããçæããå½ä»¤ã®çªå°ï¼8
|
---|
362 | IRQ (interrupt) 次ã«å®è¡ãã¹ãçªå° ï¼4
|
---|
363 | FIQ (fast interrupt) 次ã«å®è¡ãã¹ãçªå° ï¼4
|
---|
364 | ----------------------------------------------------------------------
|
---|
365 | (*) ARMã¢ã¼ãã§ã¯4ï¼Thumbã¢ã¼ãã§ã¯2
|
---|
366 | â»æã¾ããæ»ãçªå°ã¯ï¼ããã¾ã§ã1ã¤ã®æ³å®ã¨æãããï¼ä¾ãã°ï¼æªå®ç¾©å½ä»¤
|
---|
367 | ããã¨ãã¥ã¬ã¼ã·ã§ã³ããå ´åã«ã¯ï¼ãã®æ¬¡ã®çªå°ã¸æ»ãæ¹ãæ®éã§ãããï¼
|
---|
368 |
|
---|
369 | âå²è¾¼ã¿ã®åºå
|
---|
370 | ¥å£
|
---|
371 |
|
---|
372 | 以ä¸ã¯ï¼ã¢ã¼ããå¤æ´ããªãå ´åã®å²è¾¼ã¿ã®åºå
|
---|
373 | ¥å£ã®å¦çã§ããï¼
|
---|
374 |
|
---|
375 | å²è¾¼ã¿ã®å
|
---|
376 | ¥å£ã§ã¯ï¼lrãã4ãå¼ãã¦æ»ãçªå°ãæ±ããå¾ï¼å¿
|
---|
377 | è¦ãªã¬ã¸ã¹ã¿ã¨
|
---|
378 | lrï¼æ»ãçªå°ï¼ãã¹ã¿ãã¯ã«ä¿åããï¼
|
---|
379 |
|
---|
380 | sub lr, lr, #4
|
---|
381 | stmfd sp!, {<other_registers>, lr}
|
---|
382 |
|
---|
383 | å²è¾¼ã¿ã®åºå£ã§ã¯ï¼å¿
|
---|
384 | è¦ãªã¬ã¸ã¹ã¿ã¨æ»ãçªå°ãã¹ã¿ãã¯ããï¼æ»ãçªå°ã¯pc
|
---|
385 | ã«ï¼ï¼cpsrãspsrãã復帰ããï¼æå¾ã«"^"ãä»ãããã¨ã§ï¼cpsrãspsrãã復
|
---|
386 | 帰ãããã¨ã示ãï¼
|
---|
387 |
|
---|
388 | ldmfd sp!, {<other_registers>, pc}^
|
---|
389 |
|
---|
390 | ãã®å½ä»¤ã¯ï¼ã·ã¹ãã ã¢ã¼ãã§ã¯ä½¿ããªãï¼spsrããªãããï¼ï¼
|
---|
391 |
|
---|
392 | âARMv6以éã®ä¾å¤å¦çå½ä»¤
|
---|
393 |
|
---|
394 | ARMv6ããï¼CPSå½ä»¤ï¼SRSå½ä»¤ï¼RFEå½ä»¤ãç¨æãããï¼ãããã®å½ä»¤ãããå ´
|
---|
395 | åã¨ãªãå ´åã§ï¼ä¾å¤å¦çã®åºå
|
---|
396 | ¥å£ã®æé©ãªã³ã¼ããç°ãªãï¼
|
---|
397 |
|
---|
398 | srsï¼Store Return Stateï¼â¦ ç¾å¨ã®ã¢ã¼ãã®lrã¨spsrãï¼å¥ã®ã¢ã¼ãã®spã
|
---|
399 | ç¨ãã¦ä¿åããããã®å½ä»¤ï¼lrãå°ããå´ã®çªå°ï¼spsrã大ããå´ã®çªå°ã«ä¿
|
---|
400 | åãããï¼ã·ã¹ãã ã¢ã¼ãã§ã¯ä½¿ããªãï¼spsrããªãããï¼ï¼
|
---|
401 |
|
---|
402 | ä¾ï¼srsfd #CPSR_SVC_MODE! ⦠lrï¼ä¾å¤ããã®æ»ãå
|
---|
403 | ï¼ã¨spsrï¼ä¾å¤çºçå
|
---|
404 | ã®cpsrï¼ãï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã®ã¹ã¿ãã¯ã«
|
---|
405 | ä¿åããï¼
|
---|
406 |
|
---|
407 | rfeï¼Return From Exceptionï¼â¦ pcã¨cpsrãï¼å¾©å¸°ããå½ä»¤ï¼SRSã§ä¿åãã
|
---|
408 | ãç¶æ
|
---|
409 | ã«æ»ãããã«ç¨ããï¼
|
---|
410 |
|
---|
411 | ä¾ï¼rfefd sp! ⦠pcã¨cpsrãï¼ç¾å¨ã®ã¢ã¼ãã®ã¹ã¿ãã¯ãã復
|
---|
412 | 帰ããï¼
|
---|
413 |
|
---|
414 | cpsï¼Change Processor Stateï¼â¦ cpsrã®å²è¾¼ã¿ãã¹ã¯ã¨ã¢ã¼ãããããå¤æ´
|
---|
415 | ããããã®å½ä»¤ï¼
|
---|
416 |
|
---|
417 | âã·ã¹ãã å½ä»¤ãªãã¡ã¬ã³ã¹
|
---|
418 |
|
---|
419 | âldm
|
---|
420 |
|
---|
421 | (1) ldm<ã¢ãã¬ãã·ã³ã°ã¢ã¼ã><æ¡ä»¶> <Rn>{!}, <ã¬ã¸ã¹ã¿ãªã¹ã>
|
---|
422 |
|
---|
423 | Rnã§ç¤ºãããé£ç¶ããçªå°ããï¼ã¬ã¸ã¹ã¿ãªã¹ãã«ãªã¹ãã¢ãããããã¬ã¸ã¹
|
---|
424 | ã¿ã«å¤ããã¼ãããï¼ã¦ã¼ã¶ã¢ã¼ããå«ããã¹ã¦ã®ã¢ã¼ãã§ä½¿ç¨ã§ããï¼
|
---|
425 |
|
---|
426 | (2) ldm<ã¢ãã¬ãã·ã³ã°ã¢ã¼ã><æ¡ä»¶> <Rn>, <PC以å¤ã®ã¬ã¸ã¹ã¿ãªã¹ã>^
|
---|
427 | â»æå¾ã«"^"ãããï¼
|
---|
428 |
|
---|
429 | Rnã§ç¤ºãããé£ç¶ããçªå°ããï¼ã¬ã¸ã¹ã¿ãªã¹ãã«ãªã¹ãã¢ããããããã¦ã¼
|
---|
430 | ã¶ã¢ã¼ãã®ã¬ã¸ã¹ã¿ãã«å¤ããã¼ãããï¼ã·ã¹ãã ã¢ã¼ã以å¤ã®ç¹æ¨©ã¢ã¼ãã§
|
---|
431 | 使ç¨ã§ããï¼"!"ã¯ä½¿ããªãï¼
|
---|
432 |
|
---|
433 | (3) ldm<ã¢ãã¬ãã·ã³ã°ã¢ã¼ã><æ¡ä»¶> <Rn>{!}, <PCãå«ãã¬ã¸ã¹ã¿ãªã¹ã>^
|
---|
434 | â»æå¾ã«"^"ãããï¼
|
---|
435 |
|
---|
436 | Rnã§ç¤ºãããé£ç¶ããçªå°ããï¼ã¬ã¸ã¹ã¿ãªã¹ãã«ãªã¹ãã¢ãããããã¬ã¸ã¹
|
---|
437 | ã¿ã«å¤ããã¼ãããï¼ã¾ãï¼ç¾å¨ã®ã¢ã¼ãã®spsrãï¼cpsrã«ã³ãã¼ããï¼ã·ã¹
|
---|
438 | ãã ã¢ã¼ã以å¤ã®ç¹æ¨©ã¢ã¼ãã§ä½¿ç¨ã§ããï¼
|
---|
439 |
|
---|
440 | âstm
|
---|
441 |
|
---|
442 | (1) stm<ã¢ãã¬ãã·ã³ã°ã¢ã¼ã><æ¡ä»¶> <Rn>{!}, <ã¬ã¸ã¹ã¿ãªã¹ã>
|
---|
443 |
|
---|
444 | Rnã§ç¤ºãããé£ç¶ããçªå°ããï¼ã¬ã¸ã¹ã¿ãªã¹ãã«ãªã¹ãã¢ãããããã¬ã¸ã¹
|
---|
445 | ã¿ã«å¤ãã¹ãã¢ããï¼ã¦ã¼ã¶ã¢ã¼ããå«ããã¹ã¦ã®ã¢ã¼ãã§ä½¿ç¨ã§ããï¼
|
---|
446 |
|
---|
447 | (2) stm<ã¢ãã¬ãã·ã³ã°ã¢ã¼ã><æ¡ä»¶> <Rn>, <ã¬ã¸ã¹ã¿ãªã¹ã>^
|
---|
448 | â»æå¾ã«"^"ãããï¼
|
---|
449 |
|
---|
450 | Rnã§ç¤ºãããé£ç¶ããçªå°ããï¼ã¬ã¸ã¹ã¿ãªã¹ãã«ãªã¹ãã¢ããããããã¦ã¼
|
---|
451 | ã¶ã¢ã¼ãã®ã¬ã¸ã¹ã¿ãã«å¤ãã¹ãã¢ããï¼ã·ã¹ãã ã¢ã¼ã以å¤ã®ç¹æ¨©ã¢ã¼ãã§
|
---|
452 | 使ç¨ã§ããï¼"!"ã¯ä½¿ããªãï¼
|
---|
453 |
|
---|
454 | âmrs
|
---|
455 |
|
---|
456 | ç¹æ®ã¬ã¸ã¹ã¿ï¼ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼ãï¼æ±ç¨ã¬ã¸ã¹ã¿ã«ã³ãã¼ããï¼
|
---|
457 | ARMv7VEï¼ä»®æ³åæ¡å¼µï¼ã§ã¯ï¼ä»ã®ã¢ã¼ãã®ã¬ã¸ã¹ã¿ãæ±ç¨ã¬ã¸ã¹ã¿ã«ã³ãã¼ã
|
---|
458 | ãæ©è½ãæã¤ï¼
|
---|
459 |
|
---|
460 | (1) mrs<æ¡ä»¶> <Rd>, <ç¹æ®ã¬ã¸ã¹ã¿è¨è¿°>
|
---|
461 |
|
---|
462 | ç¹æ®ã¬ã¸ã¹ã¿ãï¼æ±ç¨ã¬ã¸ã¹ã¿Rdã«ã³ãã¼ããï¼
|
---|
463 |
|
---|
464 | <ç¹æ®ã¬ã¸ã¹ã¿è¨è¿°>ã«ã¯ï¼ä»¥ä¸ã®ãããããæå®ããï¼
|
---|
465 | - apsr
|
---|
466 | - cpsr ⦠ã¦ã¼ã¶ã¢ã¼ãã§ä½¿ã£ãå ´åã¯ï¼apsrãæå³ããï¼
|
---|
467 | - spsr ⦠ã¦ã¼ã¶ã¢ã¼ãã§ã¯ä½¿ããªãï¼
|
---|
468 |
|
---|
469 | âmsr
|
---|
470 |
|
---|
471 | ç¹æ®ã¬ã¸ã¹ã¿ï¼ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼ã«ï¼å³å¤ã¾ãã¯æ±ç¨ã¬ã¸ã¹ã¿ã®å¤ãã³ãã¼
|
---|
472 | ããï¼ARMv7VEï¼ä»®æ³åæ¡å¼µï¼ã§ã¯ï¼ä»ã®ã¢ã¼ãã®ã¬ã¸ã¹ã¿ã«æ±ç¨ã¬ã¸ã¹ã¿ã®å¤
|
---|
473 | ãã³ãã¼ããæ©è½ãæã¤ï¼
|
---|
474 |
|
---|
475 | ãã®å½ä»¤ã§Eãããï¼ã¨ã³ãã£ã¢ã³ç¶æ
|
---|
476 | ï¼ãæ¸ãæããã¹ãã§ã¯ãªãï¼setendå½
|
---|
477 | 令ã使ãã¹ãï¼
|
---|
478 |
|
---|
479 | (1) msr<æ¡ä»¶> <ç¹æ®ã¬ã¸ã¹ã¿è¨è¿°>, #<å®æ°>
|
---|
480 |
|
---|
481 | ç¹æ®ã¬ã¸ã¹ã¿ï¼ã®ä¸é¨ï¼ã«ï¼å³å¤ãã³ãã¼ããï¼
|
---|
482 |
|
---|
483 | <ç¹æ®ã¬ã¸ã¹ã¿è¨è¿°>ã«ã¯ï¼ä»¥ä¸ã®ãããããæå®ããï¼
|
---|
484 | - apsr_nzcvq ⦠cpsr_fã¨åã
|
---|
485 | - apsr_g ⦠cpsr_sã¨åã
|
---|
486 | - apsr_nzcvqg ⦠cpsr_fsã¨åã
|
---|
487 | - cpsr_<ãã£ã¼ã«ãæå®>
|
---|
488 | - spsr_<ãã£ã¼ã«ãæå®>
|
---|
489 |
|
---|
490 | <ãã£ã¼ã«ãæå®>ã«ã¯ï¼ä»¥ä¸ã®æåã®åãè¨è¿°ããï¼
|
---|
491 | - c ⦠PSRã®ããã7ã0ï¼Iãããï¼Fãããï¼Tãããï¼M[4:0]ï¼
|
---|
492 | - x ⦠PSRã®ããã15ã8ï¼IT[7:2]ï¼Eãããï¼Aãããï¼
|
---|
493 | - s ⦠PSRã®ããã23ã16ï¼GE[3:0]ï¼
|
---|
494 | - f ⦠PSRã®ããã31ã24ï¼N,Z,C,V,Qãã©ã°ï¼IT[1:0]ï¼Jãããï¼
|
---|
495 |
|
---|
496 | (2) msr<æ¡ä»¶> <ç¹æ®ã¬ã¸ã¹ã¿è¨è¿°>, <Rn>
|
---|
497 |
|
---|
498 | ç¹æ®ã¬ã¸ã¹ã¿ï¼ã®ä¸é¨ï¼ã«ï¼æ±ç¨ã¬ã¸ã¹ã¿Rnã®å¤ãã³ãã¼ããï¼<ç¹æ®ã¬ã¸ã¹ã¿
|
---|
499 | è¨è¿°>ã¯ï¼ä¸ã¨åæ§ï¼
|
---|
500 |
|
---|
501 | âcps ⦠ARMv6以é
|
---|
502 |
|
---|
503 | ããã»ããµã®ç¶æ
|
---|
504 | ï¼CPSRã®Aãããï¼Iãããï¼Fãããï¼ããã»ããµã¢ã¼ãï¼ã
|
---|
505 | å¤æ´ããï¼
|
---|
506 |
|
---|
507 | (1) cpsie <å²è¾¼ã¿ãã©ã°>{, #<ã¢ã¼ã>}
|
---|
508 |
|
---|
509 | æå®ããå²è¾¼ã¿ãã©ã°ã0ã«ããï¼è¨±å¯ããï¼ï¼ã¾ãï¼ï¼æå®ããå ´åã«ã¯ï¼ã
|
---|
510 | ãã»ããµã¢ã¼ããå¤æ´ããï¼
|
---|
511 |
|
---|
512 | <å²è¾¼ã¿ãã©ã°>ã«ã¯ï¼ä»¥ä¸ã®æåã®åãè¨è¿°ããï¼
|
---|
513 | - a ⦠Aãããï¼éåæã¢ãã¼ãç¦æ¢ï¼
|
---|
514 | - i ⦠Iãããï¼IRQç¦æ¢ï¼
|
---|
515 | - f ⦠Fãããï¼FIQç¦æ¢ï¼
|
---|
516 |
|
---|
517 | <ã¢ã¼ã>ã«ã¯ï¼0ã31ã®å¤ï¼ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã®ä¸ä½5ãããï¼ãè¨è¿°ããï¼
|
---|
518 |
|
---|
519 | ä¾ï¼cpsie i ⦠IRQã許å¯ï¼cpsrä¸ã®Iããããã¯ãªã¢ï¼
|
---|
520 |
|
---|
521 | (2) cpsid <å²è¾¼ã¿ãã©ã°>{, #<ã¢ã¼ã>}
|
---|
522 |
|
---|
523 | æå®ããå²è¾¼ã¿ãã©ã°ã1ã«ããï¼ç¦æ¢ããï¼ï¼ã¾ãï¼ï¼æå®ããå ´åã«ã¯ï¼ã
|
---|
524 | ãã»ããµã¢ã¼ããå¤æ´ããï¼<å²è¾¼ã¿ãã©ã°>ã¨<ã¢ã¼ã>ã¯ä¸ã¨åæ§ï¼
|
---|
525 |
|
---|
526 | ä¾ï¼cpsid i ⦠IRQãç¦æ¢ï¼cpsrä¸ã®Iããããã»ããï¼
|
---|
527 | ä¾ï¼cpsid if ⦠IRQã¨FIQãç¦æ¢
|
---|
528 | ä¾ï¼cpsid i,#CPSR_SVC_MODE ⦠IRQãç¦æ¢ãã¦ï¼ã¹ã¼ããã¤ã¶ã¢ã¼ãã«
|
---|
529 |
|
---|
530 | (3) cps #<ã¢ã¼ã>
|
---|
531 |
|
---|
532 | ããã»ããµã¢ã¼ããå¤æ´ããï¼<ã¢ã¼ã>ã¯ä¸ã¨åæ§ï¼
|
---|
533 |
|
---|
534 | ä¾ï¼cps #CPSR_USR_MODE ⦠ã¦ã¼ã¶ã¢ã¼ãã«
|
---|
535 |
|
---|
536 | âãã£ãã·ã¥ã¨åå²äºæ¸¬ï¼[2] B2.2ç¯ï¼
|
---|
537 |
|
---|
538 | ã»ä»¥åã®ã¢ã¼ããã¯ãã£
|
---|
539 | - ARMv6ã«ã¤ãã¦ã¯ï¼[2] D12.6.2ç¯
|
---|
540 | - ARMv4, ARMv5ã«ã¤ãã¦ã¯ï¼[2] D15.6.1ç¯
|
---|
541 |
|
---|
542 | âãã£ãã·ã¥ã®èå¥ï¼[2] B2.2.1ç¯ï¼
|
---|
543 |
|
---|
544 | ã»ãã£ãã·ã¥ã¿ã¤ãã¬ã¸ã¹ã¿ï¼CTRï¼
|
---|
545 | - æçã©ã¤ã³é·ãªã©ï¼ã©ã®ãããªãã£ãã·ã¥ãã¤ãã¦ããããèªã¿åºãã
|
---|
546 | - 詳ããã¯ï¼[2] B4.1.42ç¯
|
---|
547 | - ARMv6以åã¯ãã©ã¼ããããç°ãªã
|
---|
548 |
|
---|
549 | ã»ãã£ãã·ã¥ã¬ãã«IDã¬ã¸ã¹ã¿ï¼CLIDRï¼
|
---|
550 | - åã¬ãã«ï¼7ã¬ãã«ã¾ã§ï¼ã®ãã£ãã·ã¥ã®ã¿ã¤ããèªã¿åºãã
|
---|
551 | - ã³ãã¼ã¬ã³ã¹ã«é¢ããæ
|
---|
552 | å ±ãèªã¿åºãã
|
---|
553 | - ARMv6以åã«ã¯ãªã
|
---|
554 |
|
---|
555 | ã»ãã£ãã·ã¥ãµã¤ãºé¸æã¬ã¸ã¹ã¿ï¼CSSELRï¼
|
---|
556 | - ç¾å¨ã®ãã£ãã·ã¥ãµã¤ãºIDã¬ã¸ã¹ã¿ï¼CCSIDRï¼ãé¸æãã
|
---|
557 | - ãã£ãã·ã¥ã¬ãã«ã¨ã¿ã¤ãï¼å½ä»¤ or ãã¼ã¿ï¼çµ±åï¼ãæå®ãã
|
---|
558 | - ARMv6以åã«ã¯ãªã
|
---|
559 |
|
---|
560 | ã»ãã£ãã·ã¥ãµã¤ãºIDã¬ã¸ã¹ã¿ï¼CCSIDRï¼
|
---|
561 | - ãã£ãã·ã¥ã¬ãã«æ¯ã«ããï¼CSSELRã§é¸æããï¼
|
---|
562 | - ãã£ãã·ã¥ã«é¢ããæ
|
---|
563 | å ±ãèªã¿åºãã
|
---|
564 | + write-throughï¼write-backï¼read-allocationï¼write-allocatioãã§ããã
|
---|
565 | + ã»ããæ°ï¼é£æ³åº¦ï¼ã©ã¤ã³ãµã¤ãº
|
---|
566 | - ARMv6以åã«ã¯ãªã
|
---|
567 |
|
---|
568 | âãã£ãã·ã¥ã®æ¯èãï¼[2] B2.2.2ç¯ï¼
|
---|
569 |
|
---|
570 | ï¼çç¥ï¼
|
---|
571 |
|
---|
572 | âãã£ãã·ã¥ã®ã¤ãã¼ãã«ï¼ãã£ã¹ã¨ã¼ãã«ï¼[2] B2.2.3ç¯ï¼
|
---|
573 |
|
---|
574 | ã»ARMv7ã®ã·ã¹ãã å¶å¾¡ã¬ã¸ã¹ã¿
|
---|
575 | - Cãããã¨Iãããã§ï¼ãã£ãã·ã¥ã®ã¤ãã¼ãã«ï¼ãã£ã¹ã¨ã¼ãã«ãè¡ã
|
---|
576 | - Cãããï¼ãã¹ã¦ã®ã¬ãã«ã®çµ±åï¼ãã¼ã¿ãã£ãã·ã¥ãå¶å¾¡
|
---|
577 | - Iãããï¼ãã¹ã¦ã®ã¬ãã«ã®å½ä»¤ãã£ãã·ã¥ãå¶å¾¡
|
---|
578 | - ããç´°ããªå¶å¾¡ã¯å®è£
|
---|
579 | ä¾å
|
---|
580 |
|
---|
581 | ã»ARMv6ã®ã·ã¹ãã å¶å¾¡ã¬ã¸ã¹ã¿
|
---|
582 | - Cãããã¨Iãããã¯ï¼ã¬ãã«1ãã£ãã·ã¥ã®å¶å¾¡ãè¡ã
|
---|
583 | - Wãããã§ã©ã¤ããããã¡ã®å¶å¾¡ãè¡ã
|
---|
584 |
|
---|
585 | âARMv7ã«ããããã£ãã·ã¥ã¨åå²äºæ¸¬ã®ã¡ã³ããã³ã¹æä½ï¼[2] B2.2.6ç¯ï¼
|
---|
586 |
|
---|
587 | ã»ä»¥åã®ã¢ã¼ããã¯ãã£
|
---|
588 | - ARMv6ã«ã¤ãã¦ã¯ï¼[2] D12.7.10ç¯
|
---|
589 | - ARMv4, ARMv5ã«ã¤ãã¦ã¯ï¼[2] D15.7.8ç¯
|
---|
590 |
|
---|
591 | ã»ç¨èªã®å®ç¾©
|
---|
592 | - MVAï¼Modified Virtual Addressï¼
|
---|
593 | + ã¡ã³ããã³ã¹ããå ´æãã¡ã¢ãªä¸ã®ã¢ãã¬ã¹ã§æå®ãã
|
---|
594 | + é«éã³ã³ããã¹ãã¹ã¤ããæ¡å¼µããªãæã¯ï¼VAï¼Virtual Addressï¼ã«ä¸è´
|
---|
595 | ï¼é«éã³ã³ããã¹ãã¹ã¤ããæ¡å¼µã¯ï¼ARMv6以éã§ã¯æ¨å¥¨ãããªã
|
---|
596 | + MMUããªãæã¯PAï¼Physical Addressï¼ã«ä¸è´
|
---|
597 | - ã»ããï¼ã¦ã§ã¤ï¼set/wayï¼
|
---|
598 | + ã¡ã³ããã³ã¹ããå ´æããã£ãã·ã¥ä¸ã®ã»ããã¨ã¦ã§ã¤ã§æå®ãã
|
---|
599 | + ã¬ãã«ï¼Levelï¼â¦ ãã£ãã·ã¥ã®ã¬ãã«ï¼å°ããæ¹ãããã»ããµã«è¿ã
|
---|
600 | + ã»ããï¼Setï¼
|
---|
601 | + ã¦ã§ã¤ï¼Wayï¼
|
---|
602 | - ã¯ãªã¼ã³ï¼cleanï¼
|
---|
603 | + èªåãè¡ã£ãæ´æ°ãï¼ä»ã®ãªãã¶ã¼ããããè¦ããããã«ä¿è¨¼ãã
|
---|
604 | - ç¡å¹åï¼invalidateï¼
|
---|
605 | + ä»ã®ãªãã¶ã¼ããè¡ã£ãæ´æ°ãï¼èªåããè¦ããããã«ä¿è¨¼ãã
|
---|
606 | + èªåãè¡ã£ãæ´æ°ã失ããããã¨ã«ãªãå ´åããã
|
---|
607 | - ã¯ãªã¼ã³ã¨ç¡å¹åï¼clean and invalidateï¼
|
---|
608 | + ã¯ãªã¼ã³ãè¡ã£ãå¾ã«ç¡å¹åãè¡ã
|
---|
609 | - PoCï¼ä¸è²«æ§ãã¤ã³ãï¼â¦ MVAã®å ´å
|
---|
610 | + ãã¹ã¦ã®ã¨ã¼ã¸ã§ã³ããåç
|
---|
611 | §ããå
|
---|
612 | ±éã®å ´æ
|
---|
613 | + ä¸è¬ã«ã¯ã¡ã¤ã³ã¡ã¢ãª
|
---|
614 | - PoUï¼çµ±åãã¤ã³ãï¼â¦ MVAã®å ´å
|
---|
615 | + ããã»ããµã®PoUã¨ã¯ï¼ãã®ããã»ããµã®å½ä»¤ï¼ãã¼ã¿ã¢ã¯ã»ã¹ï¼
|
---|
616 | ãã¼ã¸ãã¼ãã«ã¦ã©ã¼ã¯ãåç
|
---|
617 | §ããå
|
---|
618 | ±éã®å ´æ
|
---|
619 | + Inner Shareableå
|
---|
620 | ±æãã¡ã¤ã³ã®PoUã¨ã¯ï¼ãã¡ã¤ã³å
|
---|
621 | ã®ãã¹ã¦ã®
|
---|
622 | ããã»ããµã®å½ä»¤ï¼ãã¼ã¿ã¢ã¯ã»ã¹ï¼ãã¼ã¸ãã¼ãã«ã¦ã©ã¼ã¯ã
|
---|
623 | åç
|
---|
624 | §ããå
|
---|
625 | ±éã®å ´æ
|
---|
626 | - LoCï¼Level of Coherenceï¼
|
---|
627 | + PoCã¾ã§ã®ä¸è²«æ§ãä¿ã¤ããã«ã¡ã³ããã³ã¹ãå¿
|
---|
628 | è¦ãªæçµãã£ãã·ã¥
|
---|
629 | ã¬ãã«
|
---|
630 | - LoUUï¼Level of Unification, Uniprocessorï¼
|
---|
631 | + ããã»ããµã®PoUã¾ã§ã®ä¸è²«æ§ãä¿ã¤ããã«ã¡ã³ããã³ã¹ãå¿
|
---|
632 | è¦ãª
|
---|
633 | æçµãã£ãã·ã¥ã¬ãã«
|
---|
634 | - LoUISï¼Level of unification, Inner Shareableï¼
|
---|
635 | + Inner Shareableå
|
---|
636 | ±æãã¡ã¤ã³ã®PoUã¾ã§ã®ä¸è²«æ§ãä¿ã¤ããã«ã¡ã³
|
---|
637 | ããã³ã¹ãå¿
|
---|
638 | è¦ãªæçµãã£ãã·ã¥ã¬ãã«
|
---|
639 |
|
---|
640 | ã»ã¢ãã¬ã¹ï¼VMAï¼ãã¼ã¹ã®æä½ã«ããããã£ãã·ã¥é層ã®æ½è±¡å
|
---|
641 | - PoCãPoU
|
---|
642 | - ãã£ãã·ã¥ã¿ã¤ãã¬ã¸ã¹ã¿ï¼CTRï¼ã«ãã£ãã·ã¥ã®ã©ã¤ã³ãµã¤ãºãä¿æ
|
---|
643 | + ãã®åä½ã§ã¡ã³ããã³ã¹ããã®ãæãå¹çç
|
---|
644 |
|
---|
645 | ã»ã»ããï¼ã¦ã§ã¤ãã¼ã¹ã®æä½ã«ããããã£ãã·ã¥é層ã®æ½è±¡å
|
---|
646 | - ã¯ãªã¼ã³æä½ã¯ï¼æå®ãããã¬ãã«ããï¼å°ãªãã¨ã次ã®ã¬ãã«ã¸ã¯ãªã¼ã³ãã
|
---|
647 | - ç¡å¹åæä½ã¯ï¼æå®ãããã¬ãã«ã®ã¿ãç¡å¹åãã
|
---|
648 |
|
---|
649 | âVMSAã«ããããã£ãã·ã¥ã¨åå²äºæ¸¬ã®ã¡ã³ããã³ã¹æä½ï¼[2] B4.2.1ç¯ï¼
|
---|
650 |
|
---|
651 | ã»ARMv7-Aï¼VMSAï¼ã«ããããã£ãã·ã¥ã»åå²äºæ¸¬ã¡ã³ããã³ã¹æä½
|
---|
652 | - ICIALLIS, ICIALLU, ICIMVAU ⦠å½ä»¤ãã£ãã·ã¥ã¨åå²äºæ¸¬ã®ç¡å¹å
|
---|
653 | - BPIALLIS, CPIALL, CPIMVA ⦠åå²äºæ¸¬ã®ç¡å¹å
|
---|
654 | - DCIMVAC, DCISW ⦠ãã¼ã¿ï¼çµ±åãã£ãã·ã¥ã®ç¡å¹å
|
---|
655 | - DCCMVAC, DCCSW, DCCMVAU ⦠ãã¼ã¿ï¼çµ±åãã£ãã·ã¥ã®ã¯ãªã¼ã³
|
---|
656 | - DCCIMVAC, DCCISW ⦠ãã¼ã¿ï¼çµ±åãã£ãã·ã¥ã®ã¯ãªã¼ã³ï¼ç¡å¹å
|
---|
657 |
|
---|
658 | ----------------------------------------------------------------------
|
---|
659 | ICIALLUIS ãã¹ã¦ã®å½ä»¤ãã£ãã·ã¥ãç¡å¹åï¼Inner ShareableããPoU
|
---|
660 | åå²äºæ¸¬ããã©ãã·ã¥
|
---|
661 | ICIALLU PoUã¾ã§ã®ãã¹ã¦ã®å½ä»¤ãã£ãã·ã¥ãç¡å¹åï¼åå²äºæ¸¬ã
|
---|
662 | ICIMVAU PoUã¾ã§ã®MVAã§æå®ããå½ä»¤ãã£ãã·ã¥ã©ã¤ã³ãç¡å¹å
|
---|
663 |
|
---|
664 | BPIALLIS ãã¹ã¦ã®åå²äºæ¸¬ã¨ã³ããªãç¡å¹åï¼Inner Sharable
|
---|
665 | BPIALL ãã¹ã¦ã®åå²äºæ¸¬ã¨ã³ããªãç¡å¹å
|
---|
666 | BPIMVA åå²äºæ¸¬ããMVAãç¡å¹å
|
---|
667 |
|
---|
668 | DCIMVAC PoCã¾ã§ã®MVAã§æå®ãããã¼ã¿ï¼çµ±åãã£ãã·ã¥ãç¡å¹å
|
---|
669 | DCISW Set/wayã§æå®ãããã¼ã¿ï¼çµ±åãã£ãã·ã¥ãç¡å¹å
|
---|
670 | DCCMVAC PoCã¾ã§ã®MVAã§æå®ãããã¼ã¿ï¼çµ±åãã£ãã·ã¥ãã¯ãªã¼ã³
|
---|
671 | DCCSW Set/wayã§æå®ãããã¼ã¿ï¼çµ±åãã£ãã·ã¥ãã¯ãªã¼ã³
|
---|
672 | DCCMVAU PoUã¾ã§ã®MVAã§æå®ãããã¼ã¿ï¼çµ±åãã£ãã·ã¥ãã¯ãªã¼ã³
|
---|
673 | DCCIMVAC PoCã¾ã§ã®MVAã§æå®ãããã¼ã¿ï¼çµ±åãã£ãã·ã¥ãã¯ãªã¼ã³ï¼ç¡å¹å
|
---|
674 | DCCISW Set/wayã§æå®ãããã¼ã¿ï¼çµ±åãã£ãã·ã¥ãã¯ãªã¼ã³ï¼ç¡å¹å
|
---|
675 | ----------------------------------------------------------------------
|
---|
676 |
|
---|
677 | ã»ARMv6ã§ã®éãï¼[2] D12.7.10ç¯ï¼
|
---|
678 | ã»ARMv4, ARMv5ã§ã®éãï¼[2] D15.7.8ç¯ï¼
|
---|
679 | - ã¬ãã«1ãã£ãã·ã¥ã®ã¿ãæä½ãã
|
---|
680 | â» ARMv7ã§ã¯è¤æ°ã®ã¬ãã«ã®ãã£ãã·ã¥ãæä½ãã
|
---|
681 | - ARMv7ã«å¯¾å¿ãããã®ãããï¼ä»¥ä¸ã§âã®å³ã¯ï¼ARMv7ã®åçã®æä½ï¼
|
---|
682 | + Invalidate instruction cache âICIALLU
|
---|
683 | + Invalidate instruction cache line by MVA âICIMVAU
|
---|
684 | + Invalidate all branch predictors âBPIALL
|
---|
685 | + Invalidate branch predictor entry by MVA âBPIMVA
|
---|
686 | + Invalidate data cache line by MVA âDCIMVAC
|
---|
687 | + Invalidate data cache line by set/way âDCISW
|
---|
688 | + Clean data cache line by MVA âDCCMVAC/DCCMVAU
|
---|
689 | + Clean data cache line by set/way âDCCSW
|
---|
690 | + Clean and Invalidate data cache line by MVA âDCCIMVAC
|
---|
691 | + Clean and Invalidate data cache line by set/way âDCCISW
|
---|
692 |
|
---|
693 | - ãã¼ã¿ãã£ãã·ã¥å
|
---|
694 | ¨ä½ã«å¯¾ããæä½ã¯ARMv7ã«ã¯ãªã
|
---|
695 | + Invalidate data cache
|
---|
696 | + Clean data cacheï¼ARMv6ã®ã¿ï¼
|
---|
697 | + Clean and Invalidate data cacheï¼ARMv6ã®ã¿ï¼
|
---|
698 | - ARMv7ã§ã¯ï¼çµ±åãã£ãã·ã¥ã®æä½ã¯ï¼ãã¼ã¿ãã£ãã·ã¥ã®æä½ã«çµ±ä¸ã
|
---|
699 | ãã¦ãããï¼ARMv6以åã§ã¯å¥ã
|
---|
700 | ã«ãã
|
---|
701 | + Invalidate unified cache, or instruction cache and data cache
|
---|
702 | + Invalidate unified cache line by MVA
|
---|
703 | + Invalidate unified cache line by set/way
|
---|
704 | + Clean entire unified cache
|
---|
705 | + Clean unified cache line by MVA
|
---|
706 | + Clean unified cache line by set/way
|
---|
707 | + Clean and invalidate entire unified cache
|
---|
708 | 注æï¼ãã®æä½ã¯[1]ã«æ²è¼ããã¦ãããï¼[2]ã«ã¯æ²è¼ããã¦ããªã
|
---|
709 | + Clean and Invalidate unified cache line by MVA
|
---|
710 | + Clean and Invalidate unified cache line by set/way
|
---|
711 | - Set/wayæå®ã«ããå½ä»¤ãã£ãã·ã¥ã®ç¡å¹åã¯ARMv7ã«ã¯ãªã
|
---|
712 | + Invalidate instruction cache line by set/way
|
---|
713 | - ARMv6以åã®ã¿ã«ããæä½ï¼ãªãã·ã§ã³ï¼
|
---|
714 | + Test and Clean data cache ⦠ä¸ã«èª¬æ
|
---|
715 | + Test and Clean and Invalidate data cache ⦠ä¸ã«èª¬æ
|
---|
716 | + Prefetch instruction cache line by MVA ⦠TLBããã¯ãã¦ã³ã§ä½¿ã
|
---|
717 | - ARMv6ã®ã¿ã«ããç¹æ®ãªæä½
|
---|
718 | + Cache Dirty Status Register ⦠å
|
---|
719 | ¨ä½ãã¯ãªã¼ã³ããæã«ä½¿ã
|
---|
720 |
|
---|
721 | ã»ARMv6以åã§ã®ï¼Test and Cleanï¼Test and Clean and Invalidateã®ä½¿ãæ¹
|
---|
722 | - ã¯ãªã¼ã³ï¼ã¯ãªã¼ã³ï¼ç¡å¹åãå¹ççã«è¡ãããã«ç¨æããã¦ãã
|
---|
723 | - æ¡ä»¶ãã©ã°ããã¹ãã£ãã¼ã·ã§ã³ã¨ããMRCå½ä»¤ã使ã
|
---|
724 | â ã°ãã¼ãã«ãã£ãã·ã¥ãã¼ãã£ç¶æ
|
---|
725 | ãZãã©ã°ã«å
|
---|
726 | ¥ã
|
---|
727 |
|
---|
728 | - ãã¼ã¿ãã£ãã·ã¥å
|
---|
729 | ¨ä½ã®ã¯ãªã¼ã³
|
---|
730 | tc_loop:
|
---|
731 | MRC p15, 0, APSR_nzcv, c7, c10, 3 ; test and clean
|
---|
732 | BNE tc_loop
|
---|
733 |
|
---|
734 | - ãã¼ã¿ãã£ãã·ã¥å
|
---|
735 | ¨ä½ã®ã¯ãªã¼ã³ï¼ç¡å¹å
|
---|
736 | tci_loop:
|
---|
737 | MRC p15, 0, APSR_nzcv, c7, c14, 3 ; test, clean and invalidate
|
---|
738 | BNE tci_loop
|
---|
739 |
|
---|
740 | âTLBã®ã¡ã³ããã³ã¹æä½
|
---|
741 |
|
---|
742 | âVMSAã«ãããTLBã®ã¡ã³ããã³ã¹æä½ï¼[2] B4.2.2ç¯ï¼
|
---|
743 |
|
---|
744 | â» Hypã¢ã¼ãã®æã¯å¥éè¦å®
|
---|
745 |
|
---|
746 | ã»ARMv7-Aï¼VMSAï¼ã«ãããTLBã¡ã³ããã³ã¹æä½
|
---|
747 | - ITLBIALL, ITLBIMVA, ITLBIASID ⦠å½ä»¤TLB
|
---|
748 | - DTLBIALL, DTLBIMVA, DTLBIASID ⦠ãã¼ã¿TLB
|
---|
749 | - TLBIALL, TLBIMVA, TLBIASID ⦠統åTLB
|
---|
750 |
|
---|
751 | ã»ãã«ãããã»ããµæ¡å¼µã§ä»¥ä¸ã追å ï¼åæã®ARMv7ã«ã¯ãªãï¼
|
---|
752 | - TLBIMVAA
|
---|
753 | - TLBIALLIS, TLBIMVAIS, TLBIASIDIS, TLBIMVAAIS
|
---|
754 |
|
---|
755 | ã»å½ä»¤ï¼ãã¼ã¿ï¼çµ±åã®ä½¿ãåã
|
---|
756 | - å½ä»¤TLBã¨ãã¼ã¿TLBãå¥ã«å®è£
|
---|
757 | ããã¦ããå ´åï¼çµ±åTLBæä½ã¯ä¸¡è
|
---|
758 | ãæä½ãã
|
---|
759 | - çµ±åTLBãå®è£
|
---|
760 | ããã¦ããå ´åï¼å½ä»¤ï¼ãã¼ã¿TLBæä½ã¯çµ±åTLBãæä½ãã
|
---|
761 | - å½ä»¤ï¼ãã¼ã¿TLBæä½ã使ããã¨ã¯æ¨å¥¨ããªã
|
---|
762 |
|
---|
763 | ã»æä½ã®ç¨®é¡
|
---|
764 | ...IALL ⦠ãã¹ã¦ã®TLBãç¡å¹åãã
|
---|
765 | ...IMVA ⦠ã¢ãã¬ã¹ï¼MVAï¼æå®ã§TLBãç¡å¹åãã
|
---|
766 | ...IASID ⦠ASIDæå®ã§TLBãç¡å¹åãã
|
---|
767 | ...IMVAA ⦠ã¢ãã¬ã¹ã¨ASIDã®ä¸¡æ¹ãæå®ãã¦TLBãç¡å¹åãã
|
---|
768 |
|
---|
769 | ã»ä»¥åã®ã¢ã¼ããã¯ãã£
|
---|
770 | - ARMv6ã«ã¤ãã¦ã¯ï¼ARMv7-Aã¨åã
|
---|
771 | - ARMv4, ARMv5ã«ã¤ãã¦ã¯ï¼ä»¥ä¸ã®ã¿ãæã¤ï¼[2] D15.7.10ç¯ï¼
|
---|
772 | + ITLBIALL, ITLBIMVA ⦠å½ä»¤TLB
|
---|
773 | + DTLBIALL, DTLBIMVA ⦠ãã¼ã¿TLB
|
---|
774 | + TLBIALL, TLBIMVA ⦠統åTLB
|
---|
775 |
|
---|
776 | âã¡ã¢ãªã¿ã¤ãã»å±æ§ã¨ã¡ã¢ãªé åºã¢ãã«ï¼[2] A3.5ç¯ï¼
|
---|
777 |
|
---|
778 | âã¡ã¢ãªã¿ã¤ãï¼[2] A3.5.1ç¯ï¼
|
---|
779 |
|
---|
780 | ã»3ã¤ã®ã¡ã¢ãªã¿ã¤ãï¼ARMv6以éï¼
|
---|
781 | Normal
|
---|
782 | Device
|
---|
783 | Strongly-ordered
|
---|
784 |
|
---|
785 | ã»Strongly-orderedï¼Deviceã¡ã¢ãªã«ã¯ï¼ä»¥ä¸ã®å¶éãããï¼
|
---|
786 | - ã¢ã¯ã»ã¹ã®åæ°ï¼é åºï¼ãµã¤ãºãä¿åãããï¼ãã£ãã·ã¥ãããªãï¼ï¼
|
---|
787 | - ãªã¼ãã»ã©ã¤ãã¨ãï¼ææ©çã«å®è¡ãããªãï¼
|
---|
788 | + ãã ãï¼ãã¼ã¸ãã¼ãã«ã¦ã©ã¼ã¯ã¯ææ©çã«å®è¡ãããï¼
|
---|
789 | - ãªã¼ãã»ã©ã¤ãã¢ã¯ã»ã¹ãç¹°ãè¿ãããªãï¼
|
---|
790 |
|
---|
791 | âã¡ã¢ãªå±æ§ï¼[2] A3.5.2ç¯ï¼
|
---|
792 |
|
---|
793 | ã»å
|
---|
794 | ±æå¯è½æ§ï¼Shareabilityï¼
|
---|
795 | - Normalã¨ï¼LPAEãå«ã¾ãªãå®è£
|
---|
796 | ã§ã¯ï¼Deviceã«é©ç¨ãããï¼
|
---|
797 | â» LPAEï¼Large Physical Address Extension
|
---|
798 | + LPAEãå«ãå®è£
|
---|
799 | ã§ã¯ï¼Deviceã¯å¸¸ã«Outer Shareable
|
---|
800 | + DeviceãShareableã¨Outer Shareable以å¤ã«ãããã¨ã¯æ¨å¥¨ããªãï¼
|
---|
801 | - Outer Shareable
|
---|
802 | - Inner Shareable
|
---|
803 | - Non-shareable
|
---|
804 | - Outer Shareableã¨Inner Shareableã®åºå¥ã¯ARMv7ãã
|
---|
805 |
|
---|
806 | ã»ãã£ãã·ã¥å¯è½æ§ï¼Cacheabilityï¼
|
---|
807 | - Normalã«é©ç¨ãããï¼
|
---|
808 | + Innerã¨Outerãã£ãã·ã¥é åã«ç¬ç«ã«è¨å®ã§ããï¼
|
---|
809 | - Non-cacheable
|
---|
810 | - Write-Through Cacheable
|
---|
811 | - Write-Back Cacheable
|
---|
812 |
|
---|
813 | âAtomicityï¼ååæ§ï¼[2] A3.5.3ç¯ï¼
|
---|
814 |
|
---|
815 | - Single-copy atomicity
|
---|
816 | - Multi-copy atomicity
|
---|
817 |
|
---|
818 | âConcurrent modification and execution of instructionsï¼[2] A3.5.4ç¯ï¼
|
---|
819 |
|
---|
820 | âNormalã¡ã¢ãªï¼[2] A3.5.5ç¯ï¼
|
---|
821 |
|
---|
822 | âDeviceã¨Strongly-orderedã¡ã¢ãªï¼[2] A3.5.6ç¯ï¼
|
---|
823 | - ARMv7ã§ã¯ï¼Deviceã¨Strongly-orderedã®éãã¯shareabilityã®ã¿
|
---|
824 | + ARMv6ã§ã¯ï¼CPSRå¤æ´æã®æ¯èãã«ãéããããï¼
|
---|
825 | - Deviceã¨Strongly-orderedã®ã¢ã¼ããã¯ãã£è¦æ±ã®éãã¯ï¼
|
---|
826 | + Strongly-orderedã¡ã¢ãªã¸ã®ã©ã¤ãã¯ï¼ã¡ã¢ãªï¼ããªãã§ã©ã«ï¼ã«
|
---|
827 | å°éããå¾ã§ãªãã¨å®äºããªã
|
---|
828 | + Deviceã¡ã¢ãªã¸ã®ã©ã¤ãã¯ï¼ã¡ã¢ãªï¼ããªãã§ã©ã«ï¼ã«å°éããå
|
---|
829 | ã§ãå®äºã§ãã
|
---|
830 |
|
---|
831 | âã¡ã¢ãªé åºã¢ãã«ï¼[1] B2.1ç¯ï¼
|
---|
832 |
|
---|
833 | ã»ARMv5ã¾ã§ã¯ï¼ã¡ã¢ãªã¢ã¯ã»ã¹é åºã«é¢ãã¦æ´çããã¦ããªãã£ã
|
---|
834 | - å®è£
|
---|
835 | ã«åºã¥ãã¦ä»¥ä¸ã®ãããªæ¦å¿µããã£ã
|
---|
836 | + Write-Through Cacheable, Write-Back Cacheable
|
---|
837 | + Non-Cacheable Bufferable, Non-Cacheable, Non-Bufferable
|
---|
838 | - VMSA/PMSAã®Bï¼bufferableï¼ãããã¨Cï¼cacheableï¼ãããã§å¶å¾¡
|
---|
839 | - äºææ§ããªããªã©ã®èª²é¡ãçãã¦ãã
|
---|
840 |
|
---|
841 | ã»ã¡ã¢ãªå±æ§
|
---|
842 | Shareableï¼ã¾ã㯠Sharedï¼â¦ è¤æ°ã®è¦³æ¸¬è
|
---|
843 | ããä¸è²«ãã¦è¦ããã
|
---|
844 |
|
---|
845 | ã»ä»ã®é¢ä¿è¨è¿°
|
---|
846 | VMSA on MMUï¼PMSA on MPUï¼ãã£ãã·ã¥ã¨åå²äºæ¸¬
|
---|
847 | VMSAï¼Virtual Memory System Architecture
|
---|
848 | PMSAï¼Protected Memory System Architecture
|
---|
849 |
|
---|
850 | âã¡ã¢ãªã¢ã¯ã»ã¹é åºï¼[2] A3.8ç¯ï¼
|
---|
851 |
|
---|
852 | âãªã¼ãã¨ã©ã¤ã
|
---|
853 |
|
---|
854 | ã»æ示çã§ãªãã¡ã¢ãªã¢ã¯ã»ã¹ï¼ã¡ã¢ãªã¢ã¯ã»ã¹é åºã®è°è«ã¯å½ã¦ã¯ã¾ããªãï¼
|
---|
855 | - å½ä»¤ãã§ãã
|
---|
856 | - ãã£ãã·ã¥ã®ãã¼ãã¨ã©ã¤ãããã¯
|
---|
857 | - å¤æãã¼ãã«ã®ã¦ã©ã¼ã¯
|
---|
858 |
|
---|
859 | ã»ãªã¼ã ⦠æ示çãªã¡ã¢ãªã¢ã¯ã»ã¹
|
---|
860 | - LDR, LDRB, LDRH, LDRSB, LDRSH
|
---|
861 | - LDRT, LDRBT, LDRHT, LDRSBT, LDRSHT
|
---|
862 | - LDREX, LDREXB, LDREXD, LDREXH ⦠åæããªããã£ã
|
---|
863 | - LDM, LDRD, POP, RFE
|
---|
864 | - LDC, LDC2, VLDM, VLDR, VLD1, VLD2, VLD3, VLD4, VPOP
|
---|
865 | - STREX, STREXB, STREXD, STREXH ã«ããã¹ãã¼ã¿ã¹å¤ã®è¿å´
|
---|
866 | - SWP, SWPBï¼ARMå½ä»¤ã»ããï¼â¦ åæããªããã£ãï¼ARMv6以éã§ã¯éæ¨å¥¨
|
---|
867 | - TBB, TBHï¼Thumbå½ä»¤ã»ããï¼
|
---|
868 | ï¼ä»ã«Jazelleé¢ä¿
|
---|
869 |
|
---|
870 | ã»ã©ã¤ã ⦠æ示çãªã¡ã¢ãªã¢ã¯ã»ã¹
|
---|
871 | - STR, STRB, STRH
|
---|
872 | - STRT, STRBT, STRHT
|
---|
873 | - STREX, STREXB, STREXD, STREXH ⦠åæããªããã£ã
|
---|
874 | - STM, STRD, PUSH, SRS
|
---|
875 | - STC, STC2, VPUSH, VSTM, VSTR, VST1, VST2, VST3, VST4
|
---|
876 | - SWP, SWPBï¼ARMå½ä»¤ã»ããï¼â¦ åæããªããã£ãï¼ARMv6以éã§ã¯éæ¨å¥¨
|
---|
877 | ï¼ä»ã«Jazelleé¢ä¿
|
---|
878 |
|
---|
879 | ã»è¦³æ¸¬è
|
---|
880 |
|
---|
881 | - 観測è
|
---|
882 | ï¼observerï¼ã¨ã¯ï¼ã·ã¹ãã ä¸ã§ã¡ã¢ãªã«ã¢ã¯ã»ã¹ã§ãããã®
|
---|
883 | - ããã»ããµã®ä»¥ä¸ã®æ©æ§ã¯ç¬ç«ãã観測è
|
---|
884 | ã¨æ±ã
|
---|
885 | + ã¡ã¢ãªã®ãªã¼ãã¨ã©ã¤ããè¡ãæ©æ§
|
---|
886 | + å½ä»¤ãã§ããï¼å½ä»¤ãã£ãã·ã¥ã®ãã£ã«ï¼ç´æ¥ãã§ããï¼ã®æ©æ§
|
---|
887 | + å¤æãã¼ãã«ã¦ã©ã¼ã¯ãè¡ãæ©æ§
|
---|
888 |
|
---|
889 | ã»è¦³æ¸¬ã§ããï¼ã°ãã¼ãã«ã«è¦³æ¸¬ã§ããã¨ã¯ï¼
|
---|
890 |
|
---|
891 | ï¼ã¡ã¢ãªã¸ã®ã¢ã¯ã»ã¹é åºã¯ï¼ãã¹ã¦ã®ãªãã¶ã¼ãã§ä¸è²«ãã¦ãããã¨ãæ³å®
|
---|
892 |
|
---|
893 | - ããã¡ã¢ãªä½ç½®ã¸ã®ã©ã¤ããï¼ãã観測è
|
---|
894 | ãã観測ã§ããã¨è¨ãã®ã¯â¦
|
---|
895 | + åã観測è
|
---|
896 | ããã®ã¡ã¢ãªä½ç½®ããã以éã«ãªã¼ãããå ´åã«ï¼ä»¥ä¸ã®ã
|
---|
897 | ãããã«ãªã
|
---|
898 | * æ¸ãè¾¼ãã å¤ãåç
|
---|
899 | §ã§ããï¼
|
---|
900 | * ä»»æã®è¦³æ¸¬è
|
---|
901 | ã«ãã£ã¦ï¼ããããå¾ã«æ¸ãè¾¼ã¾ããå¤ãåç
|
---|
902 | §ã§ãã
|
---|
903 | + ãã¤ï¼åã観測è
|
---|
904 | ããã®ã¡ã¢ãªä½ç½®ã«ãã以éã«æ¸ãè¾¼ãã å ´åã«ï¼
|
---|
905 | å¾è
|
---|
906 | ã®ã©ã¤ãã®æ¹ãå¾ã«å®è¡ããããã®ã¨é åºä»ããããæ
|
---|
907 |
|
---|
908 | - ããShareableãªã¡ã¢ãªä½ç½®ã¸ã®ã©ã¤ããï¼ã°ãã¼ãã«ã«è¦³æ¸¬ã§ããã¨è¨
|
---|
909 | ãã®ã¯â¦
|
---|
910 | + ä»»æã®è¦³æ¸¬è
|
---|
911 | ããã®ã¡ã¢ãªä½ç½®ããã以éã«ãªã¼ãããå ´åã«ï¼ä»¥ä¸ã®
|
---|
912 | ããããã«ãªã
|
---|
913 | * æ¸ãè¾¼ãã å¤ãåç
|
---|
914 | §ã§ããï¼
|
---|
915 | * ä»»æã®è¦³æ¸¬è
|
---|
916 | ã«ãã£ã¦ï¼ããããå¾ã«æ¸ãè¾¼ã¾ããå¤ãåç
|
---|
917 | §ã§ãã
|
---|
918 | + ãã¤ï¼ä»»æã®è¦³æ¸¬è
|
---|
919 | ããã®ã¡ã¢ãªä½ç½®ã«ãã以éã«æ¸ãè¾¼ãã å ´åã«ï¼
|
---|
920 | å¾è
|
---|
921 | ã®ã©ã¤ãã®æ¹ãå¾ã«å®è¡ããããã®ã¨é åºä»ããããæ
|
---|
922 |
|
---|
923 | - ããã¡ã¢ãªä½ç½®ã¸ã®ãªã¼ããï¼ãã観測è
|
---|
924 | ãã観測ã§ããã¨è¨ãã®ã¯â¦
|
---|
925 | + åã観測è
|
---|
926 | ããã®ã¡ã¢ãªä½ç½®ã«ãã以éã«æ¸ãè¾¼ãã å ´åã§ãï¼
|
---|
927 | ãªã¼ãã«ãã£ã¦è¿ãå¤ãå½±é¿ãããªãæ
|
---|
928 |
|
---|
929 | - ããShareableãªã¡ã¢ãªä½ç½®ã¸ã®ãªã¼ããï¼ã°ãã¼ãã«ã«è¦³æ¸¬ã§ããã¨
|
---|
930 | è¨ãã®ã¯â¦
|
---|
931 | + ä»»æã®è¦³æ¸¬è
|
---|
932 | ããã®ã¡ã¢ãªä½ç½®ã«ãã以éã«æ¸ãè¾¼ãã å ´åã§ãï¼
|
---|
933 | ãªã¼ãã«ãã£ã¦è¿ãå¤ãå½±é¿ãããªãæ
|
---|
934 |
|
---|
935 | Strongly-orderedã¡ã¢ãªã®å ´åã«ã¯ï¼ããã«ï¼
|
---|
936 |
|
---|
937 | - å¯ä½ç¨ã®ããããªãã§ã©ã«ãã¡ã¢ãªããããããã¡ã¢ãªä½ç½®ã®ãªã¼ãã¾
|
---|
938 | ãã¯ã©ã¤ãã観測ã§ããã¨ã¯ï¼ãªã¼ãã»ã©ã¤ãã以ä¸ã®æ¡ä»¶ãæºã
|
---|
939 | ãæ
|
---|
940 | + ãªã¹ãã¢ããããã¦ããä¸è¬çãªæ¡ä»¶ãæºãã
|
---|
941 | + ããªãã§ã©ã«ã®ç¶æ
|
---|
942 | ã«å½±é¿ãéå§ãã
|
---|
943 | + ä»ã®ããªãã§ã©ã«ï¼ããã»ããµï¼ã¡ã¢ãªã«å½±é¿ããå ´åã«ã¯ï¼é¢é£ã
|
---|
944 | ãå¯ä½ç¨ãããªã¬ãã
|
---|
945 | ï¼è¨ãæããã¨ï¼ã¡ã¢ãªã¢ã¯ã»ã¹ãããªãã§ã©ã«ã«å°éãããã¨
|
---|
946 |
|
---|
947 | ã»ãªã¼ãã»ã©ã¤ãã®å®äºã¨ã¯â¦ ï¼çç¥ï¼
|
---|
948 |
|
---|
949 | ã»Strongly-orderãDeviceã¡ã¢ãªã¢ã¯ã»ã¹ã®å®äºã¯ï¼ãã¹ã¦ã®å¯ä½ç¨ããã¹ã¦
|
---|
950 | ãã®è¦³æ¸¬è
|
---|
951 | ã«è¦ããããã«ãªã£ããã¨ãæå³ããªã
|
---|
952 |
|
---|
953 | âã¡ã¢ãªã¢ã¯ã»ã¹ã®é åºè¦æ±ï¼[2] A3.8.2ï¼
|
---|
954 |
|
---|
955 | ã»ç¨èªã®å®ç¾©
|
---|
956 |
|
---|
957 | ã¢ãã¬ã¹ä¾åæ§ï¼ãªã¼ãã¢ã¯ã»ã¹ã«ãã£ã¦è¿ãããå¤ãï¼å¾ç¶ã®èªã¿åº
|
---|
958 | ããã©ã¤ãã¢ã¯ã»ã¹ã®ä»®æ³ã¢ãã¬ã¹ã®è¨ç®ã«ä½¿ãããï¼å¿
|
---|
959 | ãããï¼ä»®æ³
|
---|
960 | ã¢ãã¬ã¹ãå¤ããã¨ã¯éããªãï¼æï¼ã¢ãã¬ã¹ä¾åæ§ãããã¨è¨ãï¼
|
---|
961 |
|
---|
962 | å¶å¾¡ä¾åæ§ï¼ãªã¼ãã¢ã¯ã»ã¹ã«ãã£ã¦è¿ãããå¤ãï¼æ¡ä»¶ãã©ã°ã決å®
|
---|
963 | ãï¼æ¡ä»¶ãã©ã°ã®å¤ãï¼å¾ç¶ã®ãªã¼ãã¢ã¯ã»ã¹ã®ã¢ãã¬ã¹æ±ºå®ã«ä½¿ãã
|
---|
964 | ãï¼æ¡ä»¶ä»ãå®è¡ãæ¡ä»¶åå²ï¼æï¼å¶å¾¡ä¾åæ§ãããã¨è¨ãï¼
|
---|
965 |
|
---|
966 | ã»ä¸ã®è¡¨ã¯ï¼æ示çãªã¢ã¯ã»ã¹A1ã¨A2ããã®ããã°ã©ã é åºã§å®è¡ãããæã®
|
---|
967 | ãã¡ã¢ãªã¢ã¯ã»ã¹é åºã示ãï¼"<"ã¯ï¼ã¡ã¢ãªããããããããªãã§ã©ã«ã¾ãã¯
|
---|
968 | ãã¡ã¢ãªãããã¯ã«ï¼ããã°ã©ã é åºã§ã¢ã¯ã»ã¹ãå±ããã¨ã示ãï¼
|
---|
969 |
|
---|
970 | A2
|
---|
971 | A1 Normal Device Strongly-ordered
|
---|
972 | Normal - - -
|
---|
973 | Device - < <
|
---|
974 | Strongly-ordered - < <
|
---|
975 |
|
---|
976 | ãï¼ã¡ã¢ãªããããããããªãã§ã©ã«ã¨ã¡ã¢ãªãããã¯ã®ãµã¤ãºã¯ï¼å®è£
|
---|
977 | å®ç¾©
|
---|
978 | ï¼ãã ãï¼1KB以ä¸ï¼ã§ããï¼éã«è¨ãã¨ï¼1KBãè¶
|
---|
979 | ãããµã¤ãºã®ã¡ã¢ãªã
|
---|
980 | ããã¯ã«ã¯ï¼ã¡ã¢ãªã¢ã¯ã»ã¹é åºã®ä¿è¨¼ãå®è£
|
---|
981 | ä¾åã«ãªãï¼
|
---|
982 |
|
---|
983 | ã»æ示çã§ãªãã¡ã¢ãªã¢ã¯ã»ã¹ã«ã¯ï¼ã¢ã¯ã»ã¹é åºè¦æ±ããªãï¼
|
---|
984 |
|
---|
985 | ã»ãã®ä»ã«ï¼ä»¥ä¸ã®å¶ç´ãããï¼
|
---|
986 | - åä¸ã®è¦³æ¸¬è
|
---|
987 | ããã®ã¢ã¯ã»ã¹ã¯ï¼ã¦ãããã»ããµã®ã»ãã³ãã£ãã¯ã¹ï¼å½
|
---|
988 | 令éã®ä¾åé¢ä¿ï¼ã³ãã¼ã¬ã³ã·ï¼ãç¶æãããï¼
|
---|
989 | - ã¢ãã¬ã¹ä¾åæ§ãããã°ï¼ã©ã®ãªãã¶ã¼ããããããã°ã©ã é åºã«è¦ããï¼
|
---|
990 | - å¶å¾¡ä¾åæ§ã ãã§ã¯ï¼ä¸ã®å¶ç´ã¯ä¿è¨¼ãããªãï¼
|
---|
991 | - ãªã¼ãã¢ã¯ã»ã¹ãè¿ããå¤ãï¼å¾ç¶ã®ã©ã¤ãã¢ã¯ã»ã¹ã«ãã£ã¦ä½¿ãã
|
---|
992 | ãå ´åï¼
|
---|
993 |
|
---|
994 | ï¼æªå®æï¼
|
---|
995 |
|
---|
996 | ã»å½ä»¤å®è¡ã®ããã°ã©ã é åº
|
---|
997 | - å½ä»¤å®è¡ã®ããã°ã©ã é åºã¯ï¼ããã°ã©ã ã®åç´ãªã·ã¼ã±ã³ã·ã£ã«å®è¡
|
---|
998 | ã«ãããå½ä»¤ã®é åºã§ããï¼
|
---|
999 |
|
---|
1000 | - å®è¡ã«ãããæ示çãªã¡ã¢ãªã¢ã¯ã»ã¹ã¯ï¼ä»¥ä¸ã®ããããã§ãã
|
---|
1001 | Strictly Ordered < å³å¯ã«é åºéãèµ·ãã
|
---|
1002 | Ordered <= é åºéãèµ·ãããï¼åæã«èµ·ãã
|
---|
1003 |
|
---|
1004 | ï¼æªå®æï¼
|
---|
1005 |
|
---|
1006 | âã¡ã¢ãªããªã¢ï¼[2] A3.8.3ï¼
|
---|
1007 |
|
---|
1008 | ã»ARMv6ã¨ARMv7ã¯ï¼3ã¤ã®æ示çãªã¡ã¢ãªããªã¢æ©è½ãæã¤ï¼
|
---|
1009 | - ARMv7ã§ã¯ï¼ã¡ã¢ãªããªã¢ã¯å½ä»¤ã§å®ç¾ãããï¼
|
---|
1010 | - ARMv6ã§ã¯ï¼ã¡ã¢ãªããªã¢ã¯CP15ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ãã§å®ç¾ãããï¼
|
---|
1011 |
|
---|
1012 | - ãã¼ã¿ã¡ã¢ãªããªã¢ï¼DMBï¼
|
---|
1013 | - ãã¼ã¿åæããªã¢ï¼DSBï¼
|
---|
1014 | - å½ä»¤åæããªã¢ï¼ISBï¼
|
---|
1015 |
|
---|
1016 | - DMBã¨DSBã¯ï¼ãã¼ãï¼ã¹ãã¢å½ä»¤ã«ããã¡ã¢ãªã¢ã¯ã»ã¹ãï¼ããã»ããµ
|
---|
1017 | ã«ãããã¼ã¿ã¾ãã¯çµ±åãã£ãã·ã¥ã®ä¿å®æä½ã«å½±é¿ããï¼å½ä»¤ãã§ã
|
---|
1018 | ãããã¼ãã¦ã§ã¢å¤æãã¼ãã«ã¢ã¯ã»ã¹ã«ããã¡ã¢ãªã¢ã¯ã»ã¹ã¯ï¼æ示
|
---|
1019 | çãªã¢ã¯ã»ã¹ã§ã¯ãªãï¼ãããã«ã¯å½±é¿ããªãï¼ï¼
|
---|
1020 |
|
---|
1021 | ã»ãã¼ã¿ã¡ã¢ãªããªã¢ï¼DMBï¼
|
---|
1022 |
|
---|
1023 | ããARMv6ã§ã®èª¬æï¼[1] B.2.6.1ï¼ã
|
---|
1024 | - DMBããåã®ããã°ã©ã é åºã®å½ä»¤ã«ãããã¹ã¦ã®æ示çãªã¡ã¢ãªã¢ã¯ã»
|
---|
1025 | ã¹ã¯ï¼DMBããå¾ã®ããã°ã©ã é åºã®å½ä»¤ã«ãããã¹ã¦ã®æ示çãªã¡ã¢ãª
|
---|
1026 | ã¢ã¯ã»ã¹ã観測ãããåã«ï¼ã°ãã¼ãã«ã«è¦³æ¸¬ã§ããï¼
|
---|
1027 | - DMBã¯ï¼ãã®ããã»ããµã§å®è¡ãããä»ã®å½ä»¤ã®å®è¡é åºã«ã¯å½±é¿ããªãï¼
|
---|
1028 | âDMBã¯ï¼åå¾ã®å½ä»¤ã®æ示çãªã¡ã¢ãªæä½ã®é åºãä¿è¨¼ããï¼ãããã®å®
|
---|
1029 | äºã¯ä¿è¨¼ããªãï¼ãã®æã¯æå³ä¸æï¼ï¼
|
---|
1030 |
|
---|
1031 | ããARMv7ã§ã®éãã
|
---|
1032 | - å
|
---|
1033 | ±æå¯è½ãã¡ã¤ã³ã¨ã¢ã¯ã»ã¹ã¿ã¤ããå¼æ°ã«åãï¼
|
---|
1034 | + ããã©ã«ãã¯ï¼ã·ã¹ãã å
|
---|
1035 | ¨ä½ã§ï¼ãªã¼ãã»ã©ã¤ãã®ä¸¡æ¹ï¼
|
---|
1036 | - ã¢ã¯ã»ã¹ã®ç¨®é¡ãã°ã«ã¼ãAã¨ã°ã«ã¼ãBã«åãï¼ããã«è©³ç´°ã«å®ç¾©ï¼
|
---|
1037 |
|
---|
1038 | ã»ãã¼ã¿åæããªã¢ï¼DSBï¼
|
---|
1039 |
|
---|
1040 | ããARMv6ã§ã®èª¬æï¼[1] B.2.6.2ï¼ã
|
---|
1041 | - DSBãå®äºããã®ã¯ï¼DSMã®åã®æ示çãªã¡ã¢ãªã¢ã¯ã»ã¹ããã¹ã¦å®äºãï¼
|
---|
1042 | ãã¤ï¼ãã®å½ä»¤ã«å
|
---|
1043 | è¡ãããã£ãã·ã¥ï¼åå²äºæ¸¬ï¼TLBä¿å®æä½ããã¹ã¦
|
---|
1044 | å®äºããå¾ã§ããï¼
|
---|
1045 | - DSBã®å¾ç¶ã®å½ä»¤ã¯ï¼DSBãããã¾ã§å®è¡ãããªãï¼
|
---|
1046 |
|
---|
1047 | ããARMv7ã§ã®éãã
|
---|
1048 | - å
|
---|
1049 | ±æå¯è½ãã¡ã¤ã³ã¨ã¢ã¯ã»ã¹ã¿ã¤ããå¼æ°ã«åãï¼
|
---|
1050 | + ããã©ã«ãã¯ï¼ã·ã¹ãã å
|
---|
1051 | ¨ä½ã§ï¼ãªã¼ãã»ã©ã¤ãã®ä¸¡æ¹ï¼
|
---|
1052 | - å
|
---|
1053 | è¡ãããã£ãã·ã¥ï¼åå²äºæ¸¬ï¼TLBä¿å®æä½ã®å®äºãå¾
|
---|
1054 | ã¤ã®ã¯ï¼ã¢ã¯ã»
|
---|
1055 | ã¹ã¿ã¤ãããªã¼ãã»ã©ã¤ãã®ä¸¡æ¹ã®å ´åã«éãï¼
|
---|
1056 |
|
---|
1057 | - ARMv6以åã¯ï¼DWBï¼DrainWriteBufferã¾ãã¯DataWriteBarrierï¼ã¨ãå¼
|
---|
1058 | ã°ãã¦ããï¼
|
---|
1059 |
|
---|
1060 | ã»å½ä»¤åæããªã¢ï¼ISBï¼
|
---|
1061 | - ISBã®å¾ç¶ã®å½ä»¤ãï¼ISBãå®äºããå¾ã«ãã£ãã·ã¥ã¾ãã¯ã¡ã¢ãªãã
|
---|
1062 | ãã§ãããããããã«ï¼ããã»ããµã®ãã¤ãã©ã¤ã³ããã©ãã·ã¥ããï¼
|
---|
1063 |
|
---|
1064 | - ARMv6ã§ã¯ï¼PrefetchFlushã¨å¼ã°ãã¦ããï¼
|
---|
1065 |
|
---|
1066 | - ISBã®åã«å®è¡ãããã³ã³ããã¹ãå¤æ´æä½ãï¼ISBã®å¾ã«ãã§ãããã
|
---|
1067 | ãå½ä»¤ããè¦ãããã¨ãä¿è¨¼ããï¼ã³ã³ããã¹ãå¤æ´æä½ã®ä¾ã¯ï¼
|
---|
1068 | + ASIDã®å¤æ´ ⦠[2]ã«æ¸ããã¦ãã
|
---|
1069 | + å®äºããï¼âæå³ä¸æï¼ãã£ãã·ã¥ã»TLBã»åå²äºæ¸¬ä¿å®æä½
|
---|
1070 | + ã·ã¹ãã å¶å¾¡ã¬ã¸ã¹ã¿ï¼CP15ã¬ã¸ã¹ã¿ï¼ã®å¤æ´ãªã©
|
---|
1071 |
|
---|
1072 | - ISBã®å¾ã®åå²å½ä»¤ãï¼ISBã®å¾ã«è¦ããã³ã³ããã¹ãã®åå²äºæ¸¬ãã¸ã
|
---|
1073 | ã¯ã«æ¸ãè¾¼ã¾ãããã¨ãä¿è¨¼ããï¼ããã¯ï¼å½ä»¤åãæ£ããå®è¡ããã
|
---|
1074 | ãã¨ãä¿è¨¼ããããã«å¿
|
---|
1075 | è¦ï¼
|
---|
1076 | - å½ä»¤ãåçã«æ¸ãæããå ´åã«ã¯ï¼ISBã¨DMBï¼DSBã®ä¸¡æ¹ã使ãå¿
|
---|
1077 | è¦ãã
|
---|
1078 | ãï¼
|
---|
1079 |
|
---|
1080 | âCPSRã®å¤æ´ã¨ã¡ã¢ãªé åºã¢ãã«ï¼[1] B2.7.7ï¼
|
---|
1081 |
|
---|
1082 | ã»CPSï¼SETENDï¼MSRå½ä»¤ã«ããCPSRã®å¤æ´ï¼ä¾å¤ã®çºçï¼ãªã¿ã¼ã³ãä¼´ããªã
|
---|
1083 | ãCPSRã«å¯¾ããæä½ï¼ã¯ï¼
|
---|
1084 | - æåã®å½ä»¤ã«å½±é¿ããªããã¨ãä¿è¨¼ãããï¼
|
---|
1085 | - 以ä¸ãé¤ãã¦ï¼å¾ç¶ã®å½ä»¤ããè¦ãããã¨ãä¿è¨¼ãããï¼
|
---|
1086 | + å½ä»¤ãã¼ããã·ã§ã³ã®ãã§ãã¯ã«å¯¾ããå¹æ
|
---|
1087 |
|
---|
1088 | ã»CPSRã®å¤æ´ã«ããï¼ç¹æ¨©ï¼ã¾ãã¯ã»ãã¥ãªãã£ï¼ç¶æ
|
---|
1089 | ãå¤æ´ãããå ´åã«ã¯ï¼
|
---|
1090 | ãå½ä»¤ãã¼ããã·ã§ã³ã®å¹æãè¦ããããã«ã¯ï¼ISBï¼ä¾å¤ã®çºçï¼ä¾å¤ããã®
|
---|
1091 | ããªã¿ã¼ã³ã®ãããããçµãªããã°ãªããªãï¼
|
---|
1092 |
|
---|
1093 | ã»ARMv6ã§ã¯ï¼CPSRã®å²è¾¼ã¿ãã¹ã¯ãå¤æ´ããå½ä»¤ã¯ï¼æåã®Strongly-ordered
|
---|
1094 | ãã¢ã¯ã»ã¹ãå®äºããã®ãå¾
|
---|
1095 | ã¤ãï¼ãã®ä»æ§ã¯ARMv7ã«ã¯é©ç¨ãããªãï¼åæã
|
---|
1096 | ãå¿
|
---|
1097 | è¦ãªå ´åã«ã¯ï¼Strongly-orderedã¢ã¯ã»ã¹ãããå½ä»¤ã®ç´å¾ã«ï¼DSBã使ã
|
---|
1098 | ãå¿
|
---|
1099 | è¦ãããï¼ï¼[2] D12.3.4ï¼
|
---|
1100 | - MSRå½ä»¤ã¨ï¼PCãæ¸ãæããå½ä»¤ã§SPSRãCPSRã«ã³ãã¼ãããã®ã該å½ï¼
|
---|
1101 | - ARMv6ã§ãï¼ãã®æ¯èãã«ä¾åãããã¨ã¯æ¨å¥¨ããªãï¼
|
---|
1102 | - Deviceã¢ã¯ã»ã¹ã«ã¯é©ç¨ãããªãï¼â¦ ã©ãã«æ¸ãã¦ãã£ããä¸æ
|
---|
1103 |
|
---|
1104 | âããªã¢å½ä»¤ã®ä½¿ç¨ä¾ï¼[2] D7ï¼
|
---|
1105 |
|
---|
1106 | ã»SEMï¼Sequential Execution Modelï¼ã¨ã¯ï¼ããå½ä»¤ãå®è¡éå§ããåã«ï¼æ
|
---|
1107 | ãåã®å½ä»¤ã®å®è¡ãå®äºãã¦ãããããªå®è¡ã¢ãã«ï¼æè¿ã®ããã»ããµã§ã¯ï¼
|
---|
1108 | ãå
|
---|
1109 | é¨çã«ã¯SEMã«ãªã£ã¦ãããï¼ããªã¢å½ä»¤ãå¿
|
---|
1110 | è¦ã«ãªãï¼
|
---|
1111 |
|
---|
1112 | ã»ããã§ã¯ï¼ARMv6以éã®DMBã¨DSBã®ä½¿ç¨ä¾ã説æ
|
---|
1113 |
|
---|
1114 | ã»weakly consistent ordering ã®åç´ãªä¾
|
---|
1115 |
|
---|
1116 | åæå [r1]=0, [r2]=0, r5=0x55, r6=0x66
|
---|
1117 | P1:
|
---|
1118 | str r5, [r1]
|
---|
1119 | ldr r6, [r2]
|
---|
1120 | P2:
|
---|
1121 | str r6, [r2]
|
---|
1122 | ldr r5, [r1]
|
---|
1123 |
|
---|
1124 | â P1ã§r6=0ï¼P2ã§r5=0ã«ãªããã¨ããã
|
---|
1125 | strã«ããã©ã¤ããï¼ldrã«ãããªã¼ãããå¾åãã«ãããå ´å
|
---|
1126 |
|
---|
1127 | ã»Weely ordered ã«ãããã¡ãã»ã¼ã¸æ¸¡ã
|
---|
1128 |
|
---|
1129 | åæå r0=1, r5=0x55
|
---|
1130 | P1:
|
---|
1131 | str r5, [r1]
|
---|
1132 | str r0, [r2]
|
---|
1133 | P2:
|
---|
1134 | wait until [r2]==1
|
---|
1135 | ldr r5, [r1]
|
---|
1136 |
|
---|
1137 | â P2ã§r5=0ã«ãªããã¨ããã
|
---|
1138 | P1ã®2ã¤ã®strã«ããã©ã¤ãã®é åºãå
|
---|
1139 | ¥ãæ¿ãã£ãå ´å
|
---|
1140 |
|
---|
1141 | ï¼P2ã¨åãå¦çãè¡ãããã»ããµãè¤æ°ããã¨ï¼ããã»ããµã«ãã£ã¦ï¼r5ã«
|
---|
1142 | ãã¼ããã¦ããå¤ãç°ãªãå ´åããã
|
---|
1143 |
|
---|
1144 | ãããªã¢ã«ãã解決
|
---|
1145 | P1:
|
---|
1146 | str r5, [r1]
|
---|
1147 | dmb [ST] ⦠ã·ã¹ãã å
|
---|
1148 | ¨ä½ï¼ã©ã¤ãã®ã¿
|
---|
1149 | str r0, [r2]
|
---|
1150 | P2:
|
---|
1151 | wait until [r2]==1
|
---|
1152 | dmb
|
---|
1153 | ldr r5, [r1]
|
---|
1154 |
|
---|
1155 | ãã¢ãã¬ã¹ä¾åæ§ã«ãã解決
|
---|
1156 | P1:
|
---|
1157 | str r5, [r1]
|
---|
1158 | dmb [ST] ⦠ã·ã¹ãã å
|
---|
1159 | ¨ä½ï¼ã©ã¤ãã®ã¿
|
---|
1160 | str r0, [r2]
|
---|
1161 | P2:
|
---|
1162 | wait until [r2]==1 ⦠ãã®ä¸ã§r12ã使ã£ã¦ããã¨æ³å®
|
---|
1163 | and r12, r12, #0
|
---|
1164 | ldr r5, [r1,r12]
|
---|
1165 |
|
---|
1166 | â æå¾ã®ldrã®ã¢ãã¬ã¹è¨ç®ã«r12ãå¿
|
---|
1167 | è¦ããã£ã¦ï¼r12ã¸ã®ãªã¼ãã¯ï¼ãã®
|
---|
1168 | ldrå½ä»¤ã«å¿
|
---|
1169 | ãå
|
---|
1170 | è¡ããï¼ãããªãã¨ï¼ã¢ãã¬ã¹ãè¨ç®ã§ããªãï¼
|
---|
1171 |
|
---|
1172 | ã»ã¢ãã¬ã¹ä¾åæ§ã¨å¶å¾¡ä¾åæ§
|
---|
1173 |
|
---|
1174 | (a) ã¢ãã¬ã¹ä¾åæ§
|
---|
1175 | ldr r1, [r0]
|
---|
1176 | ldr r2, [r1]
|
---|
1177 | â ã¢ãã¬ã¹ä¾åæ§ãããããï¼éé ã«ãªããªã
|
---|
1178 |
|
---|
1179 | (b) ã¢ãã¬ã¹ä¾åæ§
|
---|
1180 | ldr r1, [r0]
|
---|
1181 | and r1, r1, #0
|
---|
1182 | ldr r2, [r3,r1]
|
---|
1183 | â [r0]ãããã¼ãããr1ã®å¤ã¯ï¼å®éã«ã¯[r3,r1]ã«å½±é¿ããªããï¼
|
---|
1184 | å½¢å¼çã«ã¯ã¢ãã¬ã¹ä¾åæ§ãããããï¼éé ã«ãªããªã
|
---|
1185 |
|
---|
1186 | (c) å¶å¾¡ä¾åæ§
|
---|
1187 | ldr r1, [r0]
|
---|
1188 | cmp r1, #55
|
---|
1189 | ldrne r2, [r3]
|
---|
1190 | â r1ã®å¤ã§ldrneãå®è¡ãããã©ãããå¤ãããï¼ã¢ãã¬ã¹ä¾åæ§ã¯
|
---|
1191 | ãªãï¼å¶å¾¡ä¾åæ§ã¯ããï¼ããï¼ldrneãå
|
---|
1192 | ã«ï¼ææ©çã«ï¼å®è¡
|
---|
1193 | ããã¦ãããï¼ãã¼ãããã¢ãã¬ã¹ã¯å¤ãããªãï¼
|
---|
1194 |
|
---|
1195 | (d) å¶å¾¡ä¾åæ§ï¼âå¾®å¦âï¼
|
---|
1196 | ldr r1, [r0]
|
---|
1197 | cmp r1, #55
|
---|
1198 | movne r4, #22
|
---|
1199 | ldr r2, [r3,r4]
|
---|
1200 | â r1ã®å¤ã§movneãå®è¡ãããã©ãããå¤ããï¼æå¾ã®ldrã§ãã¼ãã
|
---|
1201 | ãã¢ãã¬ã¹ãå¤ãããï¼ãã©ã°çµç±ã§ã®çµåã¯ã¢ãã¬ã¹ä¾åæ§ã¨
|
---|
1202 | ã¯æ±ãããï¼ldrãå
|
---|
1203 | ã«ï¼ææ©çã«ï¼å®è¡ããã¦ãããï¼ãã¼ãã
|
---|
1204 | ãã¢ãã¬ã¹ã¯å¤ããï¼
|
---|
1205 |
|
---|
1206 | âããã¤ãçç¥
|
---|
1207 | - è¤æ°ã®ãªãã¶ã¼ããããã¡ãã»ã¼ã¸æ¸¡ãï¼ä¸ã«è¨è¼ï¼
|
---|
1208 | - ãªãã¸ã§ã¯ãã®æ§ææã®ã¢ãã¬ã¹ä¾åæ§
|
---|
1209 | ãªã¼ãå´ã¯ã¢ãã¬ã¹ä¾åæ§ã使ãããã¨ãå¤ã
|
---|
1210 | - è¤æ°ã®ãªãã¶ã¼ããããå ´åã®å æé¢ä¿
|
---|
1211 | å æé¢ä¿ãå´©ããããã«æ¯ãèããã¨ããã
|
---|
1212 | - è¤æ°ã®ãªãã¶ã¼ããããè¤æ°ã¢ãã¬ã¹ã¸ã®æ¸ãè¾¼ã¿
|
---|
1213 |
|
---|
1214 | ï¼æªå®æï¼
|
---|
1215 |
|
---|
1216 | âããªã¢å½ä»¤ã®å¿
|
---|
1217 | è¦ãªç¶æ³ï¼èå¯ï¼
|
---|
1218 |
|
---|
1219 | ã»DMBã¯ï¼ãã«ãããã»ããµï¼å³å¯ã«ã¯ï¼ãã«ããã¹ã¿ï¼åãã®æ©è½
|
---|
1220 | - ã·ã³ã°ã«ããã»ããµã§ã¯ä½¿ãç¶æ³ã¯ãªãã¨æãããï¼
|
---|
1221 |
|
---|
1222 | ã»DSBã¯ï¼ã¡ã¢ãªã¢ã¯ã»ã¹ãå¯ä½ç¨ãæã¤æã«ï¼ãã®å¯ä½ç¨ãèµ·ããã®ãå¾
|
---|
1223 | ã¤ã
|
---|
1224 | ããã«ä½¿ãæ©è½
|
---|
1225 | - å²è¾¼ã¿ã³ã³ããã¼ã©ã®å²è¾¼ã¿åªå
|
---|
1226 | 度ãã¹ã¯ã¬ã¸ã¹ã¿ï¼GICã§ã¯ï¼
|
---|
1227 | GICC_PMRï¼ã«æ¸ãè¾¼ããã¨ã§å²è¾¼ã¿ãç¦æ¢ããå¾ã¯ï¼DSBãå¿
|
---|
1228 | è¦ã§ããï¼
|
---|
1229 | ããã¯ï¼å²è¾¼ã¿åªå
|
---|
1230 | 度ãã¹ã¯ã¬ã¸ã¹ã¿ã¸ã®æ¸ãè¾¼ã¿ãã¹ãã¢ãããã¡ã«
|
---|
1231 | èç©ãããç¶æ
|
---|
1232 | ã§ï¼æ¬¡ã®å½ä»¤ãå®è¡ãï¼ãã®å¾ã«å²è¾¼ã¿ãå
|
---|
1233 | ¥ã£ã¦ãã¾ã
|
---|
1234 | å¯è½æ§ãããããã§ããï¼
|
---|
1235 | - åªå
|
---|
1236 | 度ãã¹ã¯ã¬ã¸ã¹ã¿ã«æ¸ãè¾¼ããã¨ã§å²è¾¼ã¿ã許å¯ããå¾ã«ï¼å¿
|
---|
1237 | ãå²
|
---|
1238 | è¾¼ã¿ãå
|
---|
1239 | ¥ãã¿ã¤ãã³ã°ãä½ãããå ´åã¯ï¼DSBãå¿
|
---|
1240 | è¦ã§ããï¼å²è¾¼ã¿ãå
|
---|
1241 | ¥
|
---|
1242 | ãã¿ã¤ãã³ã°ãä½ãå¿
|
---|
1243 | è¦ããªãï¼å²è¾¼ã許å¯ãããã¿ã¤ãã³ã°ãé
|
---|
1244 | ããªã£
|
---|
1245 | ã¦ãåé¡ãªããã°ï¼DSBã¯å¿
|
---|
1246 | é ã§ã¯ãªãï¼
|
---|
1247 |
|
---|
1248 | ã»ISBã¯ï¼ããã°ã©ã ãæ¸ãæããããï¼ã¾ãã¯ï¼ã·ã¹ãã ç¶æ
|
---|
1249 | ã®å¤åã«ããå®
|
---|
1250 | ãè¡ãã¹ãããã°ã©ã ãå¤ãã£ãï¼æã«ï¼æ°ããããã°ã©ã ãèªã¿è¾¼ããã¨ã
|
---|
1251 | ãä¿è¨¼ããããã®å½ä»¤
|
---|
1252 | - ã«ã¼ãã«ã§ã¯ï¼ããã°ã©ã ãæ¸ãæãããã¨ã¯æ³å®ãã¦ããªãï¼
|
---|
1253 | - ã·ã¹ãã å¶å¾¡ã¬ã¸ã¹ã¿ã®å¤æ´ãªã©ï¼å¿
|
---|
1254 | è¦ãªå ´é¢ã¯éãããã¨æãããï¼
|
---|
1255 |
|
---|
1256 | âCPSRãæ¸ãæããåã«ï¼ã¡ã¢ãªããªã¢ãå¿
|
---|
1257 | è¦ï¼
|
---|
1258 | ⦠ã©ãã«æ¸ãã¦ãã£ããä¸æï¼[2] D12.3.4ã®ãã¨ãï¼ï¼ï¼
|
---|
1259 | - CPSRã®ã©ã®ãã©ã°ãæ¸ãæãããã«ãã£ã¦ã話ããéã
|
---|
1260 |
|
---|
1261 | âã³ããã»ããµ
|
---|
1262 |
|
---|
1263 | âã³ããã»ããµãµãã¼ãï¼[2] A2.9ï¼
|
---|
1264 |
|
---|
1265 | ã»16åã¾ã§ã®ã³ããã»ããµããµãã¼ã
|
---|
1266 | ã»ä»¥ä¸ã®ã³ããã»ããµã¯ARMãäºç´
|
---|
1267 |
|
---|
1268 | ã»ã³ããã»ããµ15ï¼CP15ï¼
|
---|
1269 | - ã·ã¹ãã å¶å¾¡
|
---|
1270 | - ä»®æ³ã¡ã¢ãªã·ã¹ãã ã¢ã¼ããã¯ãã£ï¼VMSAï¼ã§ã®ã¬ã¸ã¹ã¿
|
---|
1271 | - ç©çã¡ã¢ãªã·ã¹ãã ã¢ã¼ããã¯ãã£ï¼PMSAï¼ã§ã®ã¬ã¸ã¹ã¿
|
---|
1272 | - ããã©ã¼ãã³ã¹ã¢ãã¿ã¬ã¸ã¹ã¿
|
---|
1273 |
|
---|
1274 | ã»ã³ããã»ããµ14ï¼CP14ï¼
|
---|
1275 | - ãããã°æ¯æ´
|
---|
1276 |
|
---|
1277 | ã»ã³ããã»ããµ10ã¨11ï¼CP10ã¨CP11ï¼
|
---|
1278 | - 2ã¤ãããã¦ï¼æµ®åå°æ°ç¹ã¨Advanced SIMD
|
---|
1279 |
|
---|
1280 | ã»ã³ããã»ããµ8,9,12,13
|
---|
1281 | - å°æ¥ã®æ¡å¼µã®ããã«ARMãäºç´
|
---|
1282 |
|
---|
1283 | âã³ããã»ããµå½ä»¤
|
---|
1284 |
|
---|
1285 | ã»ã³ããã»ããµã®ãã¼ã¿å¦çã®éå§
|
---|
1286 | - CDP, CDP2
|
---|
1287 | CDP<c> <coproc>, <opc1>, <CRd>, <CRn>, <CRm>, <opc2>
|
---|
1288 |
|
---|
1289 | ã»ARMã³ã¢ã¬ã¸ã¹ã¿ã¨ã³ããã»ããµã¬ã¸ã¹ã¿ã®éãã¼ã¿ã®è»¢é
|
---|
1290 | - MCR, MCR2 ⦠ARMã³ã¢ã¬ã¸ã¹ã¿âã³ããã»ããµ
|
---|
1291 | '2'ã¯ï¼æ¡ä»¶ãä»ããããªãï¼CP14,15ã«ã¯ä½¿ããªã
|
---|
1292 | MCR<c> <coproc>, <opc1>, <Rt>, <CRn>, <CRm>{, <opc2>}
|
---|
1293 | - MCRR, MCRR2 ⦠2ã¤ã®ARMã³ã¢ã¬ã¸ã¹ã¿âã³ããã»ããµ
|
---|
1294 | MCRR<c> <coproc>, <opc1>, <Rt>, <Rt2>, <CRm>
|
---|
1295 | - MRC, MRC2 ⦠ã³ããã»ããµ â ARMã³ã¢ã¬ã¸ã¹ã¿
|
---|
1296 | MRC<c> <coproc>, <opc1>, <Rt>, <CRn>, <CRm>{, <opc2>}
|
---|
1297 | - MRRC, MRRC2 ⦠ã³ããã»ããµ â 2ã¤ã®ARMã³ã¢ã¬ã¸ã¹ã¿
|
---|
1298 | MRRC<c> <coproc>, <opc>, <Rt>, <Rt2>, <CRm>
|
---|
1299 |
|
---|
1300 | ã»ã³ããã»ããµã¬ã¸ã¹ã¿ã®ãã¼ãï¼ã¹ãã¢
|
---|
1301 | - LDC, LDC2 (immediate) ⦠ã¡ã¢ãªâã³ããã»ããµ
|
---|
1302 | LDC{L}<c> <coproc>, <CRd>, [<Rn>, #+/-<imm>]{!}
|
---|
1303 | LDC{L}<c> <coproc>, <CRd>, [<Rn>], #+/-<imm>
|
---|
1304 | LDC{L}<c> <coproc>, <CRd>, [<Rn>], <option>
|
---|
1305 | - LDC, LDC2 (literal) ⦠ã¡ã¢ãªâã³ããã»ããµ
|
---|
1306 | LDC{L}<c> <coproc>, <CRd>, <label>
|
---|
1307 | LDC{L}<c> <coproc>, <CRd>, [PC, #-0] ⦠Special case
|
---|
1308 | LDC{L}<c> <coproc>, <CRd>, [PC], <option>
|
---|
1309 | - STC, STC2 ⦠ã³ããã»ããµâã¡ã¢ãª
|
---|
1310 | STC{L}<c> <coproc>, <CRd>, [<Rn>, #+/-<imm>]{!}
|
---|
1311 | STC{L}<c> <coproc>, <CRd>, [<Rn>], #+/-<imm>
|
---|
1312 | STC{L}<c> <coproc>, <CRd>, [<Rn>], <option>
|
---|
1313 |
|
---|
1314 | ã»CP10ã¨CP11ã¯ï¼æµ®åå°æ°ç¹ï¼Advanced SIMDå½ä»¤ã§ãæä½ã§ãã
|
---|
1315 |
|
---|
1316 | âCP15
|
---|
1317 |
|
---|
1318 | âä»®æ³ã¡ã¢ãªã·ã¹ãã ã¢ã¼ããã¯ãã£ï¼VMSAï¼ã§ã®ã¬ã¸ã¹ã¿
|
---|
1319 |
|
---|
1320 | âç©çã¡ã¢ãªã·ã¹ãã ã¢ã¼ããã¯ãã£ï¼PMSAï¼ã§ã®ã¬ã¸ã¹ã¿
|
---|
1321 |
|
---|
1322 | âããã©ã¼ãã³ã¹ã¢ãã¿ã¬ã¸ã¹ã¿
|
---|
1323 |
|
---|
1324 | 以ä¸
|
---|