美文网首页
函数本质_ARM64_002

函数本质_ARM64_002

作者: SunnyLeong | 来源:发表于2018-04-22 17:53 被阅读82次

002--函数本质

关于CPU的补充

寄存器

CPU除了有控制器、运算器还有寄存器。其中寄存器的作用就是进行数据的临时存储。

CPU的运算速度是非常快的,为了性能CPU在内部开辟一小块临时存储区域,并在进行运算时先将数据从内存复制到这一小块临时存储区域中,运算时就在这一小快临时存储区域内进行。我们称这一小块临时存储区域为寄存器。

对于arm64系的CPU来说, 如果寄存器以x开头则表明的是一个64位的寄存器,如果以w开头则表明是一个32位的寄存器,在系统中没有提供16位和8位的寄存器供访问和使用。其中32位的寄存器是64位寄存器的低32位部分并不是独立存在的。

高速缓存

iPhoneX上搭载的ARM处理器A11它的1级缓存的容量是64KB,2级缓存的容量8M.

CPU每执行一条指令前都需要从内存中将指令读取到CPU内并执行。而寄存器的运行速度相比内存读写要快很多,为了性能,CPU还集成了一个高速缓存存储区域.当程序在运行时,先将要执行的指令代码以及数据复制到高速缓存中去(由操作系统完成).CPU直接从高速缓存依次读取指令来执行.

寄存器的补充

数据地址寄存器

数据地址寄存器通常用来做数据计算的临时存储、做累加、计数、地址保存等功能。定义这些寄存器的作用主要是用于在CPU指令中保存操作数,在CPU中当做一些常规变量来使用。
ARM64中

  • 64位: X0-X30, XZR(零寄存器)
  • 32位: W0-W30, WZR(零寄存器)

注意:
之前讲解8086汇编中有一种特殊的寄存器段寄存器:CS,DS,SS,ES四个寄存器来保存这些段的基地址,这个属于Intel架构CPU中.在ARM中并没有

浮点和向量寄存器

因为浮点数的存储以及其运算的特殊性,CPU中专门提供浮点数寄存器来处理浮点数

  • 浮点寄存器 64位: D0 - D31 32位: S0 - S31

现在的CPU支持向量运算.(向量运算在图形处理相关的领域用得非常的多)为了支持向量计算系统了也提供了众多的向量寄存器.

  • 向量寄存器 128位:V0-V31

相关文章

  • 函数本质_ARM64_002

    002--函数本质 关于CPU的补充 寄存器 CPU除了有控制器、运算器还有寄存器。其中寄存器的作用就是进行数据的...

  • Redis

    1.指针函数与函数指针 指针函数本质是指针,其返回值是指针。如 float *fun(); 函数指针,本质是指针。...

  • 指针扫盲

    一.函数指针与指针函数 总结函数指针, 本质上它是一个指针,这个指针指向一个函数地址指针函数,本质上它是一个函数,...

  • C++supplement之指针函数与函数指针

    ●指针函数:本质为函数,函数返回类型是某一类型的指针。 e.g.: int *f() ●函数指针:本质为指针,其指...

  • 如何理解Python装饰器

    装饰器本质 装饰器本质上是用一个新的函数替换原先的函数. 本质上是如下语句 使用wraps保存原函数的name和d...

  • 函数与作用域

    函数声明和函数表达式有什么区别 函数声明的本质是使用function声明一个函数,而函数表达式的本质是将一个函数赋...

  • Block的原理

    block的原理是怎样的?本质是什么? 本质就是一个封装了函数调用impl.FuncPtr以及函数调用环境函数需要...

  • 函数的本质

    函数的参数和返回值 ARM64下,函数的参数是存放在X0到X7(W0到W7)这8个寄存器里面的.如果超过8个参数,...

  • 函数本质

    002--函数本质 关于CPU的补充 寄存器 CPU除了有控制器、运算器还有寄存器。其中寄存器的作用就是进行数据的...

  • 函数本质

    002--函数本质 栈 栈:是一种具有特殊的访问方式的存储空间(后进先出, Last In Out Firt,LI...

网友评论

      本文标题:函数本质_ARM64_002

      本文链接:https://www.haomeiwen.com/subject/ddpclftx.html