本次课内容:
老博士, 但参与教学的时间比读研究生还长(一些) 😂
博士方向研究指令集模拟器和二进制翻译
B站直播时间: 每周六15:00~17:00
1981年, IBM PC机发售, 搭载Intel 8088处理器(8位数据总线版本的8086)以及微软的MS-DOS操作系统
约256条指令, 指令长度1~6字节(指令集手册)
通过指令队列实现总线接口单元和执行单元的并发工作(流水)
并发工作的时序图(8086参考手册)
初代Microsoft Windows(2021年的一篇纪念博客)
可以在浏览器中借助IBM PC全系统模拟器体验
1996年加入了MMX多媒体指令集, 流水线增加为6级(硬件手册)
双发射流水线时空图
Pentium Pro取得了巨大的商业成功, P6架构及其变种延续了十多年
经典RPG游戏
单核性能挤牙膏, 主频和功耗上不去
处理器空前复杂
Linux 4.17(2018年4月发布)删除了过时处理器的代码
Linux内核包含海量的模块, 交互关系非常复杂
译文: 计算机架构的新黄金时代
有很多新名词?
更重要的两个观念:
电路设计的本质: 实例化和连线
以上问题说明: 处理器芯片设计包含很多软件问题
“一生一芯”将用全新的方法和流程, 按计算机发展史的顺序设计处理器
通过我们设置的训练让你变强
老板分配任务 | 熟练工 | 专业人士 |
---|---|---|
跑RT-Thread | 软件跟我没关系 | 出了bug我能调对 |
尝试新工具 | 我没接触过 | 我来看手册 |
改进工具 | 工具会用不就行吗 | 我来分析瓶颈 |
实现新需求 | 我需要详细设计文档 | 我规划一下 |
熟练工: 可以很好地完成指定任务, 保证项目流程往前推进
专业人士: 具备独立解决未知问题的专业素质
基本原理 | 做事方案 | 正确性风险 | 代表例子 |
---|---|---|---|
阐述 | 明确 | 基本正确 | 高中物理实验 |
阐述 | 明确 | 可能出错 | 程序设计作业, 培训班 |
阐述 | 需要思考 | 基本正确 | 数学/算法题 |
阐述 | 需要思考 | 可能出错 | PA, “一生一芯” |
需要探索 | 需要思考 | 可能出错 | 业界和科研的真实问题 |
把知识包装成 “新问题”呈现给大家
实验课老师没有正经的处理器设计经验
据说这个实验曾经是计算机系最难的实验 😂
做这样的实验, 怎么解决国家卡脖子危机?
树立正确的专业世界观, 吸收过去数十年构建的知识体系, 接触领域前沿的真正研究
这期的S阶段又要🕊了, 但不管怎样:
如果你的回答是肯定的, 那就来参加 “一生一芯”
如果在你设计的处理器上
你愿意从1,000,000,000个周期的波形中寻找错误的信号吗?
教科书/大作业并不会教你如何应对这些问题
2012年一篇总结七大互联网公司经验教训的博文
(对应2) Keep it simple - complexity will come naturally over time.
(对应3) Automate everything, including failure recovery.
(对应2) Iterate your solutions - be prepared to throw away a working component when
you want to scale it up to the next level.
(对应3) Use the right tool for the job, but don't be afraid to roll your own
solution.
(对应1) Use caching, where appropriate.
(对应1) Know when to favor data consistency over data availability, and vice versa.
这些做事的观念和方法, 就是工业界所需要的
不仅需要学习很多新知识, 在新环境中使用新工具
还需要锻炼出独立解决问题的意识和能力
更重要的是, 完成观念和心态上的转变
如果你只是想轻松愉快地写RTL, 网上已经有很多教程和MOOC
取决于你是否已转变观念和心态, 锻炼出独立解决问题的意识和能力
王晨宇@南通大学, 学习时大二(转专业), 获得第四期流片资格
烟雨松@北京101中学, 学习时高三, 预计2023年9月获得流片资格
另一个角度: 大家都有潜力完成 “一生一芯”的学习
意义: 让你接受预期的训练, 锻炼出预期的能力
这是需要大家发自内心去认可和执行的: 我们很难约束大家
“凭什么不能参考别人的代码? 我都看懂了啊!”/“能抄对也是本事”
STFW - Search The Friendly Web
RTFM - Read The Friendly Manual
RTFSC - Read The Friendly Source Code
如果你在提问时收到了这些回复, 其背后的含义是:
但更重要的是它们的逆否命题在调bug中的应用
正确理解 “相比于我直接告诉你答案, 你自己获取答案能学到更多”
不是所有问题都值得问
开源社区中的一个真实案例:
一篇参考文章: 什么样的问题我不太想回答?
虚假的帮助: 面向结果, 解决当下问题优先
真实的帮助: 面向能力, 领悟学习方法优先
本质区别: 如果将来不再提供帮助, 学生能否独立解决类似的问题?
真实案例: 学生A询问某报错信息
躺平容易坚持难, 但如果你能坚持下来, 你就可以得到脱胎换骨的提升
这些做法和大家在课堂上接受的观念差别很大, 甚至是矛盾的
大家也处于血气方刚的年纪, 有自己的想法
为躺平找理由也很容易
我们来玩真的: 在线调试考核, 通过才能获得流片机会
这和大家将来遇到的实际问题非常接近
“一生一芯”不仅仅是训练大家编写RTL
大部分同学并不会感到舒适