MIPS Linux内核编译构建环境的搭建

本文介绍了MIPS架构在AI端侧应用中的角色,探讨了CPU+NPU、CPU+FPGA、CPU+GPU等算力平台的优缺点,并指出它们依赖CPU的原因。文章通过分析MIPS的开发环境搭建、内核编译过程,讨论了MIPS处理器的地址空间划分和TLB管理。此外,还对比了MIPS与其他架构如RISC-V在页目录基址寄存器上的差异,以及ASID在任务切换中的作用。

AI的端侧应用离不开各种算力平台,目前形成了CPU+NPU,CPU+FPGA以及CPU+GPU的几类算力搭配,他们各有优势,也各有弱点。先看它们的共同点,从组合名字可以看出,这些组合场景都需要CPU,这是因为NPU,FPGA和GPU的架构特点决定了它们在流水线pipeline,逻辑处理和控制方面要弱于CPU,所以通常作为专用算力加速器的协处理器。

另一个区分NPU/GPU/FPGA的因素是看没有完备的指令集ISA和执行系统,比如GPU定义了ISA,有简单的流水线,可以完成取指,解码执行的操作,GPU的流水线适合做大量的SIMD并行数据计算,比如DP4a指令(4元素矢量点积),Intel、AMD、NVIDIA的GPU都支持这条指令,GPU的流水线较为简单,无法完成复杂的执行流以及逻辑控制。

还有一些算力单元没有取指流水等机制,无法自举执行指令,必须依赖CPU打配合,有点类似于FPU或者NEON单元,比如NPU就是这个样子,这类算力无法独立完成取指令执行的操作,运行依赖于CPU不断的喂指令,在设计中,必须配合CPU一起用。

独立的流水线是判断处理器是“被动”还是“主动”的标志,就连谷歌的TPU也不例外,TPU类似于FPU,不能"fetching istruction itself",所以TPU不能独立取指执行,是一个被动单元,这一点和GPU不同的。

之前对与RISCV Vector指令,MIPS的FPU以及ARM的NEON都有过一些分析,但当时对AI没有太多概念,对AI如何使用这些单元提供的算力缺乏认识,分析完了感觉没有结果。现在对AI有了一些了解,尤其其中的算子实现对异构算力的设计需求有了一些自己的看法,这样反过来从需求方倒推,对ISA指令集的设计理解的会更加深刻。 所以觉得有必要结合AI,对一些主流的CPU ISA指令集特点做一个总结,包括最早接触的MIPS,Xlinux(FPGA)做过验证,之后是ARM,然后RISCV和DSP(Xtensa),ARM和RISCV也都跑过Altera FPGA。这里面RISCV是最精简的,软件上可以认为是MIPS的一个子集(可能Vector向量指令的区别会大一些),可以放在一起分析,感觉这是一个比较大的主题和工作量,万事开头难,先从重温MIPS开始,之后逐渐切入其它ISA,横向对比,纵向深挖,分析它们各自对AI加速提供的各类ISA级的机制以及背后的思考,个人的一些看法,可能不对,期待被打脸。

首先从搭建MIPS开发环境说起

MIPS编译工具链下载

MIPS官网:MIPS

比较滑稽的是,在MIPS官网主页上,一幅标题赫然写着:

We’re taking RISC-V to new heights(我们将RISC-V推向新的高度),以MIPS多年积累的技术实力,相信这个新“高度”不难实现。但是市场是残酷的,只见新人笑,哪闻旧人哭,曾经的产业一哥如今沦落到要为新近晚辈执鞭随镫,不禁让人喟叹。

MIPS不但是这样说的,还是这样做的,MIPS已经发布它的的首颗RISCV ISA CPU IP eVocore

更奇葩的是MIPS官网的副标题竟然是elevating riscv,几年前MIPS就已经宣布放弃MIPS拥抱RISCV,一代旗手沦落至此,令人唏嘘。

顺着导航,来到Developer Tools – MIPS,可以看到开发工具和开发模式。

现在有多没落,曾经就有多辉煌,从高端的64位MIPS服务器,到低端32位MCU级控制器,都可以看到MIPS的身影。

之后来到编译器下载链接:MIPS Compilers – MIPS

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值