飞腾CPU体系结构(六)—— 寻址方式

1. 基本寻址方式

在AArch64执行模式下,飞腾CPU的Load/Store访存指令采用64位地址。
访存的基地址是由64位的通用寄存器Xn或者堆栈寄存器SP来提供:

  1. 基地址寄存器
寻址 说明
[Xn] 地址直接为寄存器Xn的值
  1. 基地址寄存器+立即数偏移量
寻址 说明
[Xn, #imm] 地址为寄存器Xn+#imm的值
  1. 基地址寄存器+寄存器偏移量。
寻址 说明
[Xn, Xm] 地址为两个寄存器Xn+Xm的和值
[Xn, Xm, LSL #imm] 地址为Xn+(Xm左移#imm位)的和值

上述寻址方式,有一个共同点,寄存器Xn的值不会更新。

2. 基地址寄存器更新的寻址方式

为了提升连续寻址的性能,飞腾CPU增加了基地址寄存器更新的能力,我们可以简单理解这样的寻址方式是在普通寻址方式后,追加一条关于基地址寄存器的计算指令。
访存的基地址也是由64位的通用寄存器Xn或者堆栈寄存器SP来提供:

  1. 基地址寄存器
寻址 寻址说明 基地址寄存器更新说明
[Xn],Xm 地址直接为寄存器Xn的值 Xn更新为Xn+Xm
[Xn],#imm 地址直接为寄存器Xn的值 Xn更新为Xn+#imm
  1. 基地址寄存器+立即数偏移量
寻址 寻址说明 基地址寄存器更新说明
[Xn, #imm]! 地址为寄存器Xn+#imm的值 Xn更新为Xn+#imm

说明:“[Xn],Xm”的寻址方式只能用于SIMD寄存器和内存之间的数据传输,通用寄存器和内存之间的数据传输不能使用该方式寻址。

3. PC相对寻址

另外,还有一种特殊的寻址方式,就是PC相对寻址 ,跳转指令经常用PC相对寻址,这样的寻址方式范围必须在1M范围之内。

飞腾CPU体系结构(六)相关推荐

  1. 飞腾CPU体系结构简单介绍(一)

    第一章 飞腾CPU体系结构简介 ARM体系结构是一种精简指令集体系结构RISC,具有以下基本特点:通用寄存器数量较多:采用统一寻址模式,系统主存和外设分布在CPU物理地址空间的不同范围:采用load/ ...

  2. 飞腾CPU体系结构(五)

    飞腾CPU体系结构(五)-- 通用寄存器 1. 64位通用寄存器 在AArch64执行状态下,飞腾CPU提供31个64位通用寄存器Xn(n=0/1/-/30),其中X30用作跳转链接寄存器. 某些指令 ...

  3. 飞腾CPU体系结构(九)

    飞腾CPU体系结构(九) 向量访存指令主要包括LD1/ST1. LD2/ST2.LD3/ST3和LD4/ST4四种. LD1/ST1一般针对一个向量寄存器,也有两个.三个或四个向量寄存器的模式. LD ...

  4. 飞腾CPU体系结构(八)

    飞腾CPU体系结构(八)--标量访存指令 在阅读之前,请先查看<飞腾CPU体系结构(五)>的SIMD和浮点寄存器.飞腾CPU还提供了32个128 位SIMD和浮点寄存器,这32个128位寄 ...

  5. 飞腾CPU体系结构之虚拟地址

    飞腾CPU体系结构之虚拟地址 1. 基本概念 虚拟地址:程序运行时指令和数据对应的地址. 虚拟地址空间:一个进程运行时指令和数据能访问到的虚拟地址范围. 注意事项: 每个进程拥有自己的虚拟地址空间,进 ...

  6. 飞腾CPU体系结构(十)

    飞腾CPU体系结构(十) 1.高速缓存模型 为了优化整体性能,飞腾CPU芯片内部提供L1高速缓存和L2高速缓存,有些飞腾CPU也提供芯片内部的L3高速缓存,本节不对这个情况进行赘述. 靠近流水线的高速 ...

  7. 飞腾CPU体系结构之低功耗指令

    飞腾CPU体系结构之低功耗指令 WFE和WFI指令 当飞腾CPU核执行两类指令:WFE或WFI之后,CPU核会进入低功耗状态: 一旦CPU核进入低功耗状态,就要一直保持低功耗状态直到相应的唤醒事件发生 ...

  8. 飞腾CPU体系结构(十二)

    飞腾CPU体系结构(十二) 1. CPU物理地址空间 飞腾CPU支持的物理地址宽度为44位,物理地址空间实际上只有16TB.系统主存(芯片外部内存)和IO外设(例如SoC设备.PCIe设备)都在这个物 ...

  9. 飞腾CPU体系结构(十四)

    飞腾CPU体系结构(十四) 1. MMU原理 MMU的大致工作原理是: 64位虚拟地址首先分成虚拟页帧号和页内偏移量两部分,虚拟页帧号即页表项索引:根据页表项索引,在进程的页表里查找到对应页表项,然后 ...

最新文章

  1. goland 报错 Main file has non-main package or doesn’t contain main function
  2. 资深专家给.NET初学者的学习建议(转)
  3. ASP网站精品源码集合(免积分下载)
  4. 看完后完全了解 Vue 2.0 和 Vue 3.0 的区别
  5. 论文小综 | Attention in Graph Neural Networks
  6. redis3.0搭建分布式集群
  7. 他开发了 redux,昨晚字节一面却挂了?
  8. shmget出现Invalid argument错误
  9. 威联通_AMD YES!威联通高性价比9盘位TS-963N 5GbE NAS体验
  10. 苹果手机投影到墙上_隔空触控的投影仪,仅有巴掌大小
  11. c# TcpClient 客户端断线重连类库
  12. foxmail超大附件服务器文件怎么删,foxmail邮件太大怎么发?foxmail发送超大附件的方法...
  13. 浅析芝麻信用分征信体系
  14. 计算机开机高级设置密码,给电脑设置开机密码
  15. 倪光南建议禁用Win10政府版 微软合作方回应
  16. 【Linux kernel/cpufreq】framework ----cpufreq governor
  17. YOLOv2原文解读
  18. 亚马逊链接那些非正常原因变狗的情况你都了解吗?
  19. mysql forward_only_mysql参数调优
  20. ios 不能触发click事件

热门文章

  1. chatGPT背后的男人们
  2. 认知提升-《影响力》读后感
  3. 零基础语法入门第五讲 名词性/形容词性物主代词
  4. solr的下载与使用
  5. dubbo中的红叉叉
  6. 程序员熬夜加班接私活被朋友坑3w,网友:留后门啊!不给钱就bug
  7. 拍拍贷Q2季报图解:净利6亿 环比增39%同比降4%
  8. windows10打开网页“网页可能暂时无法连接,或者它已永久性地移动到了新网址。 ERR_FAILED“报错解决方法
  9. go语言怎么 控制一个变量输入的范围_go语言并发原理和机制【二】
  10. Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium