arm64,aarch64,armv8,armel,armhf以及x86,arm,mips杂谈

arm64和aarch64区别

可以认为是一样的
看来ARM64是由Apple创建的,而AARCH64是由其他人(最著名的是GNU / GCC的)创建的。
经过一番谷歌搜索后,我发现此链接: LLVM 64位ARM64 / AArch64后端已合并
所以说得通,iPad称自己为ARM64,就像苹果使用LLVM(增强版Gcc),而Edge则使用AARCH64,就像Android使用GNU GCC工具链一样。

ARMV8

Armv8是Armv7之后的一个重要架构更新。其中一个主要的变化是引入了64的架构,即AArch64。AArch64状态只有在Armv8架构中才有。而且在AArch64状态下执行的代码只能使用A64指令集。当然ARM为了维持整个生态参与者的利益,Armv8还是保持与现有32位体系结构兼容性的AArch32,即Armv8之前的Armv7配置文件定义的那套设计规范

armel、armhf和arm64

armel:是arm eabi little endian的缩写。eabi是软浮点二进制接口,这里的e是embeded,是对于嵌入式设备而言。
armhf:是arm hard float的缩写。
arm64:64位的arm默认就是hf的,因此不需要hf的后缀。
armel和armhf的区别
它们的区别体现在浮点运算上,它们在进行浮点运算时都会使用fpu,但是armel传参数用普通寄存器,而armhf传参数用的是fpu的寄存器,因此armhf的浮点运算性能更高。
gcc编译的时候,使用-mfloat-abi选项来指定浮点运算使用的是哪种,soft不使用fpu,armel使用fpu,使用普通寄存器,armhf使用fpu,使用fpu的寄存器。
编译时,kernel、rootfs和app的指定必须一致才行。
在一些特定场景中, armhf 代表的是 32 位,arm64 才是代表 64 位(比如说树莓派)。

X86和X86_64(AMD64)

早期时Intel先是自己搞了个x86架构,然后amd拿到了x86的授权也可以自己做x86了。接着intel向64位过渡的时候自己搞了个ia64(x64架构)但是因为和x86架构不兼容市场反应极差,amd率先搞了x86的64位兼容(32和64的混合架构)也就是后来的x86-64,后来Intel也拿到了生产这货的授权(i和a两家专利交叉的很严重),也搞了x86-64,因为amd先搞出来的所以x86-64也叫amd64目前amd和Intel是世界上最大的两家x86和x86-64的cpu厂家

X86,ARM和MIPS

x86目前泛指x86和x86-64架构,这是因为x86-64完全兼容x86。早期的x86是cisc的代表,后来的发展中逐步引入了risc的部分理念,将内部指令的实现大量模块化,准确来说是一个cisc外加risc部分技术的架构。目前x86的主要产品有Intel的至强,酷睿,奔腾,赛扬和凌动;amd的锐龙,apu等。上文提到的x64架构目前只有intel 安腾而且已经放弃了产品线。到目前为止intel和amd的x86架构cpu虽然指令集上有很大差别了但是还是相互兼容的,所以软件可以直接用。
‘再说arm。arm是risc的典型代表,不过在arm的发展过程中引入了部分复杂指令(完全没有复杂指令的话操作系统跑起来异常艰难),所以是一个risc基础外加cisc技术的cpu。arm的主要专利技术在arm公司手中,像高通,三星,苹果这些公司需要拿到arm的授权。
另一个risc的典型处理器就是mipsmips是一个学院派的cpu,授权门槛极低,因此很多厂家都做mips或者mips衍生架构。我们平时接触到的mips架构cpu主要用在嵌入式领域,比如路由器。目前最活跃的mips是中国的龙芯,其loongisa架构其实是mips的扩展。目前无论mips还是arm,性能和主流x86差距都很大,不过arm贵在便宜低功耗,mips则纯计算能力很强(学院派的东西貌似都这样)

参考

arm64和aarch64之间的区别:https://mlog.club/article/1934614
The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged:https://www.phoronix.com/scan.php?page=news_item&px=MTY5ODk
Differences between arm64 and aarch64:https://stackoverflow.com/questions/31851611/differences-between-arm64-and-aarch64/47274698#47274698
GCC,LLVM,Clang编译器对比:https://blog.csdn.net/vencentle/article/details/80269501
一篇文章读懂Armv8 AArch64:https://www.jianshu.com/p/65afe6e37764
小白求教aarch64和qemuarm64的区别:https://bbs.hassbian.com/thread-9570-1-1.html
Intel和AMD 与 x86,ARM,MIPS有什么区别?:https://www.zhihu.com/question/63627218
armv7,armv7s,arm64,i386,x86_64的区别:https://www.jianshu.com/p/b87e6f0bac54
armel、armhf和arm64:https://blog.csdn.net/harrypap/article/details/96874175
arm64 、armhf 有什么区别:https://dhcp.cn/raspberry/QuickStart/Arm64VsArmhf.html
arm64系统跟armhf系统有啥区别??:https://forum.suse.org.cn/t/topic/11874

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×