ARM Contex-A9 NEON/VFP

ARM Contex-A9 NEON/VFP


Introduction

Xilinx Zynq-7000 AP SoC内部集成了一个双核ARM Contex-A9处理器。ARM Contex-A9处理器采用ARMv7架构,从下图可以看到,该架构内置SIMD(单指令多数据)引擎NEON和浮点计算单元VFPv3。
1160625-20190531050929195-1572473133.png

NEON支持的数据类型有:

  • Unsigned integer U8 U16 U32 U64
  • Signed integer S8 S16 S32 S64
  • Integer of unspecified type I8 I16 I32 I64
  • Floating-point number F16 F32
  • Polynomial over {0,1} P8

VFPv3支持单精度浮点和双精度浮点

NEON和VFPv3共用寄存器组,同时指令集也是集成在一起的,都以V开头:V{<mod>}<op>{<shape>}{<cond>}{.<dt>}(<dest>}, src1, src2

NEON vs VFP

NEON只工作于向量模式下,而VFP则不能SIMD,尽管其名字中有"vector"。

对于浮点型,NEON只支持单精度浮点,而VFPv3既支持单精度浮点,也支持双精度浮点。BTW,ARMv8中的NEON也能支持双精度浮点。

VFP在NEON更早之前出现,主要是为了完成浮点运算,尽管称为vector,但实际上并不能完成SIMD操作,数据都是顺序处理的。BTW,Contex-A9中VFP实现了流水。

VFP是一种遗留技术,随着版本的变化,后续可能被抛弃(瞎说的)。

转载于:https://www.cnblogs.com/batianhu/p/10953085.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现了对ARM920T中MMU的启用 地址转换过程 1. 从CP15寄存器C2得到一级页表的基地址 2. 将虚拟地址[31:20]作为页表的索引,得到页表中该虚拟地址的描述符。 3. 判断该描述符是否为段描述符,如为段描述符,将该描述符[31:20]和虚拟地址[19:0]作为偏移量组成一个32位的物理地址进行访问。 4. 如为粗页表描述符,则将该粗页表描述符[31:10]作为二级页表的基地址,并将虚拟地址[19:12]位作为索引得到在二级页表中该虚拟地址的描述符。 判断二级页表符的类型 ① 为极大页描述符表将该描述符[31:16]作为基地和虚拟地址[15:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ② 为小页描述符表将描述符[31:12]作为基地和虚拟地址[11:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 5. 如为细页表描述符,将该组页表描述符[31:12]作为二级页表的基地址,并将虚拟地址[19:10]位作为索引得到在二级页表中该虚拟地址的描述符。 判断二级页表符的类型 ① 为大页描述符表将该描述符[31:16]作为基地和虚拟地址[15:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ②为小页描述符表将该描述符[31:12]作为基地和虚拟地址[11:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。 ③为小极页描述符表将描述符[31:10]作为基地和虚拟地址[9:0]作为偏移量得到该虚拟地址的32位物理地址进行访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值