: 至于所谓的 open source 让码农容易跳槽,姑且不论这是不是事实,但获得
: 这种“能够自由选择主人的权利”,这算是什么伟大的成就...
: 更何况,个人手上没有工具,阻碍了谁进入硬件业了吗?他们不容易跳槽?
: 没办法扩大产业大饼?拜托到 Tech_Job 多看看吧,哪有这回事啊,他们到
: 这几年才在搞 open hardware, 但也不是免费的。
很多年前拜读过小明大大的很多事蹟,以及在ptt的文章
刚好近期在小IC公司上班
年底请了弹休比较有时间胡思乱想、开始有些感触
所以想来抛砖引玉看要不要大家来开讲
本文依旧以泛CS领域的视角来切入
其中的话题主轴是这一两年中,有个年纪相对轻、却有点话题性的CPU架构
它叫做:“RISC-V”
一提到这个,我知道各位一定会有很多想法出现
其中一些关键字,如“贸易战”、“自主硅智财”.....等等算是如影随形
也有很多非技术考量、成本层面的有趣话题可以聊
但是既然今天在Soft_Job上面,本文还是聚焦在工程技术,与成本层面来探讨
并且替小明大大的“开源灭产业”话题做一个延续
RISC-V大张旗鼓的一个卖点就是CPU ISA的开放,
实做它的指令集可以不用专利金
tapeout再多颗,RISC-V基金会都没钱可抽
也可以使用port好又开源免钱的SW stack,e.g. toolchain、OS、firmware、
bootloader......
然而在以前
CPU设计并不是一件简单的事情,可说有天险阻拦
各位可能都在大学修过计算机组织/架构
写过verilog/VHDL、刻过一颗很小很小的MIPS(-subset)处理器
但是我想应该不会有人觉得修完之后就可以爆打MIPS、ARM
多数人的心得普遍会是:干,我不想走硬件
另外一个很大的限制是,设计CPU时要用的FPGA,其toolchain与硬件往往
都是天价商业软件与硬件
但这些造就知识与资源寡占的高墙,正在慢慢地倾颓
我个人觉得,这会是小明大大所提及,中小套件软件业被开源前浪灭顶后;
二三线、小型MCU IC设计公司,被RISC-V带来的开源后浪卷走的开端
因为现在的开发比真的以前容易非常、非常多
如果你预算只够买一块板子就要能够开发,
- Lattice的ECP5-Versa只要台币七千多块[1]
- 从合成、布局绕线到产生bitstream和烧录,
都有完全开放原始码工具炼[2]
- 合上去的那颗SoC,peripheral是用Python写的、核心CPU是用Scala写的
而且,他可以跑一个完整功能的Linux[3]
这在过去是很难以想像的一个局面
你不再需要一张十来万的板子,
你不再需要付费、授权的EDA工具,
你不再需要懂verilog、VHDL等等硬件描述语言
你只需要余额有一万块的visa金融卡,
git clone、make
然后你就搭建好了一个可以进行RISC-V + Linux的软硬件整合开发环境
而且我真的看到有小公司从Cotex-M 0/1/3跳船去用上面这套组合
有没有缺点?当然是有
- 那颗RISC-V它的A extension(原子操作)没做完。
但是最重要的LR/SC做了,其他Atomic Memory Instrucion可以模拟
- 开源peripheral效能很差。
但是够用了,而且他有PCIe、Ethernet、SD卡、framebuffer
还带Linux driver port,
有些二三线CPU IP公司送的搞不好还没有这么完整
- Wishbone是个很过时的bus设计,时脉拉不上去。
会换的真的不care这个
最重要的就是那句会换的真的不care。
我们都希望客户能在意、善用那些增强的功能,然后掏出白花花的钱;
但是客户也是很精的,当他们发现免费午餐其实不难吃(或著变得可以吃)时,
就是市场掉入红海大洗牌的时候了。
[1] http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/ECP5VersaDevelopmentKit.aspx
[2] https://symbiflow.github.io/
[3] https://github.com/litex-hub/linux-on-litex-vexriscv
==为让大家有共同讨论的基础背景,尾巴来点科普,熟悉的跳过吧==
RISC-V本质上只是个ISA (指令集架构) 的规范,由基金会统筹主导
规范上分两部份:
一部分是非特权指令集方面,其中主要包含——
* 必要的 整数(I)指令
* 可选的 乘除法(M)、短指令(C)、原子性操作(A)、单/双精度浮点(F/D)
- 近期才(吵出)来的内存/快取同步问题的Zifencei
另外一方面则是因为有作业系统的存在,所需要的特权指令集
规范了如:
虚拟内存的规则,转换到实体位置的转换算法
有哪些状态暂存器、例外处理的机制......等等
任何推进规范里面的东西,都必须没有专利阻挡、
或移交相关专利给RISC-V foundation
以便让实做出RISC-V规范相容的处理器,没有任何法律相关的问题
然而RISC-V基金会尽量不规范平台相依的问题。
例如,TLB miss的refill要打exception给OS/firmware处理;
还是给硬件page table walker去回填?
你cache要VIVT、VIPT还是PIPT?
RISC-V基金会:“这些都平台自己决定,我不管”
也因此有很多东西其实是de facto的实做决定
像是诞生出RISC-V基金会的柏克莱大学架构实验室(UCB-BAR),
有开放其实做,Rocket Chip,在TLB refill上面就是硬件做掉、
在L1$上面用VIPT
结尾的takeaway:
RISC-V开源是开源在规范上,实做有开源也有商业
有很多东西其实在实做上会有差异,并且会穿透到软件的porting上面
因为开发成本与难度大幅降低,没有特色的可能会被洗出场外