几年前这个目标就很简单,那就是想DIY一个CPU或者一个简单的8位芯片搞明白怎么回事。
比如最终你看到的样子可能是这样的:
然后打卡结束。
大概 目标
当然现在这个简单的愿景依然是基础,只是我想在这个过程中表达和展现更多(我不想要如上图那个丑丑又拒人千里之外的样子,因为在我眼里它本应展现的神秘又美丽的样子),我要尽最大努力去实现以下几个事情(可能以后还会添加):
1,完成项目
2,教程化并拓展项目
3,分享传播项目
4,在项目设计中贯穿计算机科学发展史以及通识
5,硬件展现方式容易认知化
6,5的基础上艺术化
7,
如果是开源技术圈的,估计感觉就像在说废话。
如果不是圈子,大概意思就是:
如果你想跟我走一样的路,那我有份旅行攻略,你只要一步一步跟着做,你保证一定会达到目的地,而且我会提供尽可能的帮助。
踩人 肩膀
这里做一些铺垫,因为大概2013年时,我通过一个TED演讲知道了一个Nand2Tetris的课程。我操,这个课程好牛逼,正是我要的。所以跟上次简单目标一样。我会先把这个课程过一遍,尽量做完,因为它就是基本实现了目标1。
但是这个教程目前我了解到的,跟我的愿景有些差异,我知道事情要从简单做起,要不容易失败导致放弃,但既然是目标,那就不妨"眼高"一下,之后再从"手低"开始。
课程里用到硬件(与非门)是虚拟出来的跑在一个计算机上(目前的课程就是用一种HDL语言 来 模拟与非门),即使课程最后展望会考虑挪到FPGA上了,依然是从一个虚拟(要搞明白它,那我就不要依赖它,否则我不信任这个理论)到另一个看不懂(FPGA听起来就不是那么天然的东西,从一个迷雾到另一个迷雾)。
所以,我最终希望是 尽量用 更基础的硬件元件去实现,我之前尝试直接用 三极管 (Transistor),但后来发现制作时有点麻烦和稳定性的问题。也占地。多种因素吧。暂时放弃,只是暂时哦,我还有更cool的想法。
所以,那就手低一下,从与非门(NAND gate) (由三极管组成的,是更高一级的一个基础组件)开始吧,就是那种指甲盖大小的长着两排脚的黑方块芯片,一个上面会有好几个与非门单元(如下图7400芯片 有四个),价格也不贵,足够稳定。但从上次我的失败经历来看,如果按照课程来做的话,好像某个存储器如果用一个个单个与非门来实现的话,空间上貌似摆一屋子都不够,而且重复且单调。
所以,我这次再手低一下,先老老实实跟老师教程走一遍。。。然后再反过来根据我的下一篇文章的设计原则,来实现更底层的展现方式。
具体 路线
那么目前的路线就明确了(未写完,边做边补充调整吧)
1 完成项目(Todo List)
1.1 TED看一遍 完成
1.2 Coursera 过一遍 完成
1.3 Nand2Tetris 官方资料 再过一遍(可与 1.2同步)完成
1.4 part1 简书一刷流水账 完成
1.4.1 part2 视频课看完一遍
1.4.2 读《逻辑的引擎》、《简明逻辑学-牛津通识读本》1.5 part1 简书二刷
1.6 part1 尝试硬件物理实现
2 分享项目
2.1 可以与1同步,就像写旅行日记。
2.x
3 重新迭代
2019/9/29: part1 流水账一刷完成 ,part2 暂不打算开始,先进行 part1 二刷。
3.1 清晰结构,精简文字,优化排版,增加跟多利于理解的图片和视频。
3.2 part1 二刷 可以附带翻译中文字幕(有点为难...)、修正英文字幕、完善一刷(增加外链接、标注图片、简洁语言、通过粗体分清结构、补全每周作业、尝试gif动图、融合CrashCourse计算机课、增加历史图片)
2020/4/16: 隔了大半年,武汉也解封了,才来part1 二刷。这半年间找了一份兼职工作,大部分时间用来熟悉陌生行业和工作内容。Nand2Tetris这方面的工作,只看了一遍part2,以及开始读一些逻辑通识。最近工作进入稳定期,希望接下来可以稳定的二刷完part1。
4 在项目设计中贯穿计算机科学发展史以及通识
4.1 发现CrashCourse 的计算机课,非常好的课程,十几分钟的视频里,用高信息量的动画准确生动的阐明整套完整的技术原理。用丰富的历史图片和人物故事介绍了计算机历史的发展逻辑。
4.2 微信读书《逻辑的引擎》
4.3 得到《科学人物课:冯·诺伊曼》- 卓克
5
5.1
6
6.1