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