读这本书最大的收获,原来设计一个“从内存中读取指令并执行”的电路并不如想象中那么复杂,用几十个D触发器加一堆逻辑门就能搞出来。
当然,要把这么多内容放到一本书里,必然有很多省略之处。
数字电路方面,模型比较理想化,要想真的用TTL或FPGA实现Hack还有一些现实的困难要克服,当然不能苛求这本书把数字电路讲得过细,那就喧宾夺主了。
CPU设计方面,虽然Hack很简单,但它是怎么一步一步设计出来的,为什么要这样设计,理由何在,设计过程中做了哪些权衡考虑,这些在书中并没有明显的说明。
硬件设计,特别是CPU的设计,是为软件服务的。具体地说,就是成为C语言的编译目标,CPU提供的指令应该能充分支持C语言的高效实现,毕竟C语言是使用最广泛的系统语言。这一点Hack并没有完全做到,甚至没有提到,比如它没有逻辑移位指令(C语言有移位操作符),也不能实现函数调用(因为PC的值不能压栈)。Hack的A寄存器可以用来作基址寄存器,即内存访问时的地址,等于是个指针。如果书中能把C语言的常见指针操作用Hack汇编语言翻译阐述一遍,就能相互映照,加深理解,但可惜没有。这方面, Patterson & Hennessy 那本《Computer Organization and Design: The Hardware/Software Interface》要好得多。不过,cod讲的CPU可就没那么容易实现了,那是一块类MIPS的32-bit RISC CPU。
CPU除了支持C语言,另外还得支持现代操作系统,具体说来,就是区分用户态和内核态,支持系统调用以便在两者之间转换,支持虚拟内存,让多个进程能有彼此独立的地址空间,等等。这方面我还没有找到一本特别好的书,很多操作系统教材以X86为例,但x86的内存管理机制复杂得一塌糊涂,补丁累补丁(8086->80286->80386->x64,一路补丁打下来,还得向下兼容),花精力在这上面实在不值。我希望能看到以MIPS或者ARM为平台的操作系统教材。
性能方面,书中也着墨不多。Hack造出来了,那么它的性能如何,够不够快,能不能更快,瓶颈在哪里?Hack CPU是一个同步时序逻辑电路,它的时钟频率能上到多少MHz,制约因素是啥,它能容忍的clock skew是多少ps,它在执行指令时各个信号的时序图如何,这些书里都没有提到。Hack是个单周期CPU,如果要提速,一般是流水化+cache,这又会引入一大堆的头疼问题。这方面,《Computer Systems: A Programmer's Perspective》讲得很好。
Hack的另外一个弱点是输入输出,它用内存映射方式的IO,这本身没问题,但是它不支持中断,也就是说只能用轮询的方式输入输出数据,这可不妙。中断是一个关键概念,不仅是输入输出,单CPU上能实现多任务,全靠操作系统在处理时钟中断时顺便切换当前任务(当然,也有其他切换任务的机会,比如从系统调用返回时)。要学这一块看似神奇的任务切换,不用劳烦复杂的操作系统教材,一本uC/OS-II的书就搞定了。
学Hack,好处是它简单,几天就能上手弄懂;坏处是它太简单,可以作为学习的起点,但不宜作为学习的全部。
一个能DIY的CPU逻辑设计
对“一个能DIY的CPU逻辑设计”的回应
《计算机系统要素》热门书评
-
当之无愧的哈佛CS101
50有用 0无用 Kayuk 2014-09-30
不知道有多少人像我一样,在看了Shimon Schocken的那个TED演讲之后对这门网络课程产生了兴趣;也不知道有多少人像我一样,坚持做完了整本书的项目。在断断续续3个月的学习过程中,我对计算机有了更加深入的认识,同时,超过1500行的代码和一个个实打实的project给了我前所未有的成就感——想...
-
一个能DIY的CPU逻辑设计
30有用 4无用 陈硕 2009-04-25
读这本书最大的收获,原来设计一个“从内存中读取指令并执行”的电路并不如想象中那么复杂,用几十个D触发器加一堆逻辑门就能搞出来。当然,要把这么多内容放到一本书里,必然有很多省略之处。数字电路方面,模型比较理想化,要想真的用TTL或FPGA实现Hack还有一些现实的困难要克服,当然不能苛求这本书把数字电...
-
纸上得来终觉浅,绝知此事须躬行
6有用 0无用 平凡的老鱼 2009-10-29
多的就不说了,这本书从头到尾介绍了如何自己实现一台计算机,尽管只是一个小板凳,但是世界就是从这里开始的。如果有兴趣,来吧,我们自己做一个吧。我本人除了最后的类库以外,全部实现了。不论你是对硬件实现有兴趣,还是对软件实现有兴趣,可以加这个群,一个讨论一下,85026976...
-
网上找这边电子书没找到,只找到这个.标记下来
3有用 0无用 NegatLov 2009-10-14
http://blog.csdn.net/chief1985/archive/2008/04/20/2309634.aspx...
-
值得更多的关注和尊敬
1有用 0无用 Alan Duan 2009-03-15
仅作者对于知识内容的组织就已经令人受益良多了。去掉各种华丽和过多的工业级强度带来的细节,更容易让人看到问题的本质。...