~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/arch/loongarch/introduction.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/translations/zh_CN/arch/loongarch/introduction.rst (Architecture i386) and /Documentation/translations/zh_CN/arch/sparc64/introduction.rst (Architecture sparc64)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 .. include:: ../../disclaimer-zh_CN.rst           
  4                                                   
  5 :Original: Documentation/arch/loongarch/introd    
  6 :Translator: Huacai Chen <chenhuacai@loongson.c    
  7                                                   
  8 =============                                     
  9 LoongArch介绍                                   
 10 =============                                     
 11                                                   
 12 LoongArch是一种新的RISC ISA,在一定    
 13 包括一个精简32位版(LA32R)、一个    
 14 LoongArch定义了四个特权级(PLV0~PLV3    
 15 是最低特权级,用于应用程序。本    
 16 存以及其他一些主题。                    
 17                                                   
 18 寄存器                                         
 19 ======                                            
 20                                                   
 21 LoongArch的寄存器包括通用寄存器(G    
 22 和用于特权模式(PLV0)的控制状态    
 23                                                   
 24 通用寄存器                                   
 25 ----------                                        
 26                                                   
 27 LoongArch包括32个通用寄存器( ``$r0``    
 28 LA64中每个寄存器为64位宽。 ``$r0``     
 29 没有特殊功能。( ``$r1`` 算是一个    
 30                                                   
 31 内核使用了一套LoongArch寄存器约定    
 32 :ref:`参考文献 <loongarch-references-zh_CN    
 33                                                   
 34 ================= =============== ============    
 35 寄存器名          别名            用途    
 36 ================= =============== ============    
 37 ``$r0``           ``$zero``       常量0         
 38 ``$r1``           ``$ra``         返回地址    
 39 ``$r2``           ``$tp``         TLS/线程    
 40 ``$r3``           ``$sp``         栈指针       
 41 ``$r4``-``$r11``  ``$a0``-``$a7`` 参数寄存    
 42 ``$r4``-``$r5``   ``$v0``-``$v1`` 返回值       
 43 ``$r12``-``$r20`` ``$t0``-``$t8`` 临时寄存    
 44 ``$r21``          ``$u0``         每CPU变量    
 45 ``$r22``          ``$fp``         帧指针       
 46 ``$r23``-``$r31`` ``$s0``-``$s8`` 静态寄存    
 47 ================= =============== ============    
 48                                                   
 49 .. note::                                         
 50     注意: ``$r21`` 寄存器在ELF psABI    
 51     存每CPU变量基地址。该寄存器没    
 52     一些遗留代码中有时可能见到 ``    
 53     ``$a1`` 的别名,属于已经废弃的    
 54                                                   
 55 浮点寄存器                                   
 56 ----------                                        
 57                                                   
 58 当系统中存在FPU时,LoongArch有32个    
 59 的CPU核上,每个寄存器均为64位宽    
 60                                                   
 61 浮点寄存器的使用约定与LoongArch ELF    
 62                                                   
 63 ================= ================== =========    
 64 寄存器名          别名               用    
 65 ================= ================== =========    
 66 ``$f0``-``$f7``   ``$fa0``-``$fa7``  参数寄    
 67 ``$f0``-``$f1``   ``$fv0``-``$fv1``  返回值    
 68 ``$f8``-``$f23``  ``$ft0``-``$ft15`` 临时寄    
 69 ``$f24``-``$f31`` ``$fs0``-``$fs7``  静态寄    
 70 ================= ================== =========    
 71                                                   
 72 .. note::                                         
 73     注意:在一些遗留代码中有时可    
 74     ``$fa0`` 和 ``$fa1`` 的别名,属于    
 75                                                   
 76                                                   
 77 向量寄存器                                   
 78 ----------                                        
 79                                                   
 80 LoongArch现有两种向量扩展:              
 81                                                   
 82 - 128位向量扩展LSX(全称Loongson SIMD     
 83 - 256位向量扩展LASX(全称Loongson Adva    
 84                                                   
 85 LSX使用 ``$v0`` ~ ``$v31`` 向量寄存器    
 86                                                   
 87 浮点寄存器和向量寄存器是复用的    
 88 低128位与 ``$v0`` 共用, ``$v0`` 的低6    
 89                                                   
 90 控制状态寄存器                             
 91 --------------                                    
 92                                                   
 93 控制状态寄存器只能在特权模式(P    
 94                                                   
 95 ================= ============================    
 96 地址              全称描述                  
 97 ================= ============================    
 98 0x0               当前模式信息              
 99 0x1               异常前模式信息           
100 0x2               扩展部件使能              
101 0x3               杂项控制                    
102 0x4               异常配置                    
103 0x5               异常状态                    
104 0x6               异常返回地址              
105 0x7               出错(Faulting)虚拟地址    
106 0x8               出错(Faulting)指令字       
107 0xC               异常入口地址              
108 0x10              TLB索引                       
109 0x11              TLB表项高位                 
110 0x12              TLB表项低位0                
111 0x13              TLB表项低位1                
112 0x18              地址空间标识符           
113 0x19              低半地址空间页全局    
114 0x1A              高半地址空间页全局    
115 0x1B              页全局目录基址           
116 0x1C              页表遍历控制低半部    
117 0x1D              页表遍历控制高半部    
118 0x1E              STLB页大小                   
119 0x1F              缩减虚地址配置           
120 0x20              CPU编号                       
121 0x21              特权资源配置信息1       
122 0x22              特权资源配置信息2       
123 0x23              特权资源配置信息3       
124 0x30+n (0≤n≤15)   数据保存寄存器       
125 0x40              定时器编号                 
126 0x41              定时器配置                 
127 0x42              定时器值                    
128 0x43              计时器补偿                 
129 0x44              定时器中断清除           
130 0x60              LLBit相关控制               
131 0x80              实现相关控制1             
132 0x81              实现相关控制2             
133 0x88              TLB重填异常入口地址     
134 0x89              TLB重填异常出错(Faulti    
135 0x8A              TLB重填异常返回地址     
136 0x8B              TLB重填异常数据保存     
137 0x8C              TLB重填异常表项低位0    
138 0x8D              TLB重填异常表项低位1    
139 0x8E              TLB重填异常表项高位     
140 0x8F              TLB重填异常前模式信    
141 0x90              机器错误控制              
142 0x91              机器错误信息1             
143 0x92              机器错误信息2             
144 0x93              机器错误异常入口地    
145 0x94              机器错误异常返回地    
146 0x95              机器错误异常数据保    
147 0x98              高速缓存标签              
148 0x180+n (0≤n≤3)   直接映射配置窗口    
149 0x200+2n (0≤n≤31) 性能监测配置n         
150 0x201+2n (0≤n≤31) 性能监测计数器n      
151 0x300             内存读写监视点整体    
152 0x301             内存读写监视点整体    
153 0x310+8n (0≤n≤7)  内存读写监视点n    
154 0x311+8n (0≤n≤7)  内存读写监视点n    
155 0x312+8n (0≤n≤7)  内存读写监视点n    
156 0x313+8n (0≤n≤7)  内存读写监视点n    
157 0x380             取指监视点整体控制     
158 0x381             取指监视点整体状态     
159 0x390+8n (0≤n≤7)  取指监视点n配置1     
160 0x391+8n (0≤n≤7)  取指监视点n配置2     
161 0x392+8n (0≤n≤7)  取指监视点n配置3     
162 0x393+8n (0≤n≤7)  取指监视点n配置4     
163 0x500             调试寄存器                 
164 0x501             调试异常返回地址        
165 0x502             调试数据保存              
166 ================= ============================    
167                                                   
168 ERA,TLBRERA,MERRERA和DERA有时也分别    
169                                                   
170 基础指令集                                   
171 ==========                                        
172                                                   
173 指令格式                                      
174 --------                                          
175                                                   
176 LoongArch的指令字长为32位,一共有9    
177                                                   
178 =========== ==========================            
179 格式名称    指令构成                      
180 =========== ==========================            
181 2R          Opcode + Rj + Rd                      
182 3R          Opcode + Rk + Rj + Rd                 
183 4R          Opcode + Ra + Rk + Rj + Rd            
184 2RI8        Opcode + I8 + Rj + Rd                 
185 2RI12       Opcode + I12 + Rj + Rd                
186 2RI14       Opcode + I14 + Rj + Rd                
187 2RI16       Opcode + I16 + Rj + Rd                
188 1RI21       Opcode + I21L + Rj + I21H             
189 I26         Opcode + I26L + I26H                  
190 =========== ==========================            
191                                                   
192 Opcode是指令操作码,Rj和Rk是源操作    
193 4R-type格式特有的附加操作数(寄存    
194 16位/21位/26位的立即数。其中较长    
195 部分,所以你们在这里的格式描述    
196                                                   
197 指令列表                                      
198 --------                                          
199                                                   
200 为了简便起见,我们在此只罗列一    
201 :ref:`参考文献 <loongarch-references-zh_CN    
202                                                   
203 1. 算术运算指令::                           
204                                                   
205     ADD.W SUB.W ADDI.W ADD.D SUB.D ADDI.D         
206     SLT SLTU SLTI SLTUI                           
207     AND OR NOR XOR ANDN ORN ANDI ORI XORI         
208     MUL.W MULH.W MULH.WU DIV.W DIV.WU MOD.W MO    
209     MUL.D MULH.D MULH.DU DIV.D DIV.DU MOD.D MO    
210     PCADDI PCADDU12I PCADDU18I                    
211     LU12I.W LU32I.D LU52I.D ADDU16I.D             
212                                                   
213 2. 移位运算指令::                           
214                                                   
215     SLL.W SRL.W SRA.W ROTR.W SLLI.W SRLI.W SRA    
216     SLL.D SRL.D SRA.D ROTR.D SLLI.D SRLI.D SRA    
217                                                   
218 3. 位域操作指令::                           
219                                                   
220     EXT.W.B EXT.W.H CLO.W CLO.D SLZ.W CLZ.D CT    
221     BYTEPICK.W BYTEPICK.D BSTRINS.W BSTRINS.D     
222     REVB.2H REVB.4H REVB.2W REVB.D REVH.2W REV    
223     MASKEQZ MASKNEZ                               
224                                                   
225 4. 分支转移指令::                           
226                                                   
227     BEQ BNE BLT BGE BLTU BGEU BEQZ BNEZ B BL J    
228                                                   
229 5. 访存读写指令::                           
230                                                   
231     LD.B LD.BU LD.H LD.HU LD.W LD.WU LD.D ST.B    
232     LDX.B LDX.BU LDX.H LDX.HU LDX.W LDX.WU LDX    
233     LDPTR.W LDPTR.D STPTR.W STPTR.D               
234     PRELD PRELDX                                  
235                                                   
236 6. 原子操作指令::                           
237                                                   
238     LL.W SC.W LL.D SC.D                           
239     AMSWAP.W AMSWAP.D AMADD.W AMADD.D AMAND.W     
240     AMMAX.W AMMAX.D AMMIN.W AMMIN.D               
241                                                   
242 7. 栅障指令::                                 
243                                                   
244     IBAR DBAR                                     
245                                                   
246 8. 特殊指令::                                 
247                                                   
248     SYSCALL BREAK CPUCFG NOP IDLE ERTN(ERET) D    
249     ASRTLE.D ASRTGT.D                             
250                                                   
251 9. 特权指令::                                 
252                                                   
253     CSRRD CSRWR CSRXCHG                           
254     IOCSRRD.B IOCSRRD.H IOCSRRD.W IOCSRRD.D IO    
255     CACOP TLBP(TLBSRCH) TLBRD TLBWR TLBFILL TL    
256                                                   
257 虚拟内存                                      
258 ========                                          
259                                                   
260 LoongArch可以使用直接映射虚拟内存    
261                                                   
262 直接映射虚拟内存通过CSR.DMWn(n=0~3    
263 之间有简单的映射关系::                  
264                                                   
265  VA = PA + 固定偏移                           
266                                                   
267 分页映射的虚拟地址(VA)和物理    
268 表中。LoongArch的TLB包括一个全相联    
269 和一个组相联的STLB(Single Page Size T    
270                                                   
271 缺省状态下,LA32的整个虚拟地址空    
272                                                   
273 ============ =========================== =====    
274 区段名       地址范围                      
275 ============ =========================== =====    
276 ``UVRANGE``  ``0x00000000 - 0x7FFFFFFF`` 分    
277 ``KPRANGE0`` ``0x80000000 - 0x9FFFFFFF`` 直    
278 ``KPRANGE1`` ``0xA0000000 - 0xBFFFFFFF`` 直    
279 ``KVRANGE``  ``0xC0000000 - 0xFFFFFFFF`` 分    
280 ============ =========================== =====    
281                                                   
282 用户态(PLV3)只能访问UVRANGE,对    
283 30~31位清零就等于物理地址。例如    
284 是0x80001000,而其可缓存直接映射虚    
285                                                   
286 缺省状态下,LA64的整个虚拟地址空    
287                                                   
288 ============ ====================== ==========    
289 区段名       地址范围               属    
290 ============ ====================== ==========    
291 ``XUVRANGE`` ``0x0000000000000000 - 分页映    
292              0x3FFFFFFFFFFFFFFF``                 
293 ``XSPRANGE`` ``0x4000000000000000 - 直接映    
294              0x7FFFFFFFFFFFFFFF``                 
295 ``XKPRANGE`` ``0x8000000000000000 - 直接映    
296              0xBFFFFFFFFFFFFFFF``                 
297 ``XKVRANGE`` ``0xC000000000000000 - 分页映    
298              0xFFFFFFFFFFFFFFFF``                 
299 ============ ====================== ==========    
300                                                   
301 用户态(PLV3)只能访问XUVRANGE,对    
302 60~63位清零就等于物理地址,而其    
303 非缓存,1表示一致可缓存,2表示    
304                                                   
305 目前,我们仅用XKPRANGE来进行直接    
306                                                   
307 此处给出一个直接映射的例子:物    
308 (在XKPRANGE中)是0x80000000_00001000,    
309 是0x90000000_00001000,而其弱序非缓存    
310 00001000。                                       
311                                                   
312 Loongson与LoongArch的关系                     
313 =========================                         
314                                                   
315 LoongArch是一种RISC指令集架构(ISA)    
316 芯)是一个处理器家族。龙芯包括    
317 Loongson-2(龙芯2号)是低端64位处理    
318 器系列。旧的龙芯处理器基于MIPS架    
319 为例:龙芯3A1000/3B1500/3A2000/3A3000/3A4    
320 来的型号)都是基于LoongArch的。        
321                                                   
322 .. _loongarch-references-zh_CN:                   
323                                                   
324 参考文献                                      
325 ========                                          
326                                                   
327 Loongson官方网站(龙芯中科技术股    
328                                                   
329   http://www.loongson.cn/                         
330                                                   
331 Loongson与LoongArch的开发者网站(软    
332                                                   
333   http://www.loongnix.cn/                         
334                                                   
335   https://github.com/loongson/                    
336                                                   
337   https://loongson.github.io/LoongArch-Documen    
338                                                   
339 LoongArch指令集架构的文档:              
340                                                   
341   https://github.com/loongson/LoongArch-Docume    
342                                                   
343   https://github.com/loongson/LoongArch-Docume    
344                                                   
345 LoongArch的ELF psABI文档:                    
346                                                   
347   https://github.com/loongson/LoongArch-Docume    
348                                                   
349   https://github.com/loongson/LoongArch-Docume    
350                                                   
351 Loongson与LoongArch的Linux内核源码仓库    
352                                                   
353   https://git.kernel.org/pub/scm/linux/kernel/    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php