Skip to main content

B阶段过后的一些规划….

这篇文章写于完成ysyx B阶段之后,(其实还有一些内存优化的工作没有做,不过这个不着急,因为凭借我自己现在的水平,其实做优化的手段很有限,但是当我学的更多之后,我或许会将我的处理器做几次迭代,可能会和之前的处理器完全不同,那个时候的优化才是有意义的)

这篇文章就是简单的规划一下自己在b阶段之后的路,b阶段我是从2024.1开始做的,所以2024一整年的目标其实都十分明确,就是跟着黄框任务走,所以有目标,劲头足,完成b阶段之后,再也没有了黄框任务的指引,我需要自己摸索一条路,然后按着这条路一直走,所以我现在要做的规划就是,方向是什么?做到何种程度需要停止?由于黄框任务是余博制定的,所以在我不需要考虑他的合理性,但是这条新路却是我要自己制定的,所以它需要有前瞻性,合理性,可行性。之后的路应该粗分为两条:Computer Arch,CTF网络安全。

Computer Architecture

粗浅的先列举一下我获得的所有学习目标:《超标量处理器设计》,https://github.com/shinezyy/micro-arch-training?tab=readme-ov-file(这个里面有很多很多的资料),香山(noop),语言(scala,chisel,sv)。上述这些可以比喻为食物,就看怎么吃了

还有一个功利的目标:龙芯杯。但是我做完龙芯杯也绝对不会停止ca的学习,这一点我很不认同章老师给我的规划,虽然我可能会把一部分重心移到OS,但是做完龙芯杯我就有活跃在ca的社区水平了,好不容易获得的实力何乐不为。这些就是吃完怎么产出了

(之前的ysyx是一边吃一边产出,因为有着黄框任务的缘故,你可以在完全不知道流水线的基础上有信心做cache,但是这次没有指引,所以做不到这么丝滑的一边吃一边产出了)

所以需要规划一下怎么吃以及怎么产出

现在有一个问题就是超标量那本书和那一堆网课哪个更难,他们分别侧重什么

似乎前者偏向工业界,后者如Onur Mutlu的网课更偏向学术界,所以他们实际上并没有很重叠,他们的侧重点不一样,那就可以把超标量那本书和香山代码阅读,语言学习放在第一类(工业界),然后那一堆网课和论文放在第二类(学术界),难怪最近感觉读香山代码和超标量书没有什么太兴奋的感觉,感觉本质是因为他们不讨论背后的原因,而更侧重告诉你该怎么去做

当然最好的办法就是在 学术界 和 工业界 的内容同时学习,就是在那边学cache时,在这边看真正的cache是怎么造的,这样就挺无敌的(我悟了,之前ysyx就是这样的),然后就是时间分配了,我似乎觉得不需要太做出限制,比如你现在在研究cache,你就把学术界所有的理论全部get,然后在去工业界看它的实现,所以现在又引入一个新的问题,就是主线是什么(比如是先研究cache,前端?还是ooo?)一个简单的方式就是顺序研究即可 ,从前端开始,一直往深的流水线研究,但是之前龙芯杯的学长跟我说直接从寄存器重命名这一阶段开始研究,但是我感觉还是不太好,我还是打算从前端取指开始研究,哎,感觉这个还得要琢磨琢磨,总之一个时间段确定一个方向就好了

nutshell和雁栖湖似乎都是从同一个commit开始的,然后雁栖湖是在nutshell的基础上开发的,那我还是先读nutshell好了,在nutshell之前是一个叫做noop的项目,所以是noop->nutshell->雁栖湖->南湖->昆明湖

但是没有noop的稳定版本

哇,南大学生要学out of order,太可怕了,那我就先直接学习noop好了,从前端开始学习,直到完全能看懂所有8月之前的commit,但是我粗略的看了一下,发现并不是ooo,似乎就是一个普通的pipline

CTF

就通过hgame-mini做做其他方向的题目好了

之后有一个省赛,然后我要去做pwn,感觉还是有一点点责任在身上的,但是pwn怎么练习捏,做做去年省赛的题目?