温故而知新 姜咏江 本学期选择微体系结构课程的研究生一下子多了起来。这些学生将来都是要搞计算机设计的,任务重大,我自然也马虎不得。自从我设计出第一个真正意义上的计算机,屈指一算也有十二个年头了。现在再回头看看我最早设计自作的一台二进制层面上的计算机,自己都感到有些不可思议。一个用 8 个开关输入数据和程序,用发光二极管和数码管做为输出,用按钮和开关作人机交互控制的,巴掌大小的计算机竟然能够运行用户程序。不仅如此,这台小小的计算机,还能够进行输入数据编辑浏览等项工作。更有,能够在虚拟存储空间上运行超长程序的功能。当年结合教学写了一本叫《 PMC 计算机的设计与应用》由清华出版社出版,那里面详细地介绍了这台通用计算机所能够干事情。所有计算机最基本的东西,那台小小的计算机都体现出来了。 PMC 计算机采用了动态核心结构,在多品种处理器同处一个芯片的情况下,可以实现程序自主调动执行,不用所谓的操作系统管理。这种动态计算机最简单的就是单处理器的情况,即一个处理单位和一个存储单位,通过总线通断控制链接的情况。从器件的构成来讲,似乎与其它结构的计算机没有更多的不同,关键是在处理设备和存储设备的构成上,分化独特。独特的地方是将一般 CPU 内的程序计算器、通用寄存器、状态寄存器、累加器等,一系列过去放在 CPU 内存储设备都放到了存储器一边,在处理器一端只留下了指令寄存器和运算前端寄存器。这样的设备称为处理单位,用 PU 来记。进而将规整到一起的存储设备叫存储单位,用 MU 表示。 这种结构不仅可以实现程序执行的自我调动,调动之时无需保留和回复现场,因而程序转移只要一个节拍就能够完成,不用象进程调度那样要由操作系统的原语帮忙。动态计算机结构设计最适合多种类型、多个处理单位的情况,能够实现指令级并行执行。甚至可以设计同类处理器个,对多个程序间的指令交叉执行,互不妨碍。 当年的那种雄心壮志,不能说一点没有了,只是年过七十,有些力不从心了。翻翻我曾经的计算机设计制作,怎样能够以最简单的方法,将我的体验、经验、理论和方法传授给我的学生,应该是我现在优先考虑的问题了。 2017-11-14
研究生微体系结构课程 真正将计算机弄懂弄通,需要学习 CPU 设计原理与方法的知识,计算机微体系结构就是这样的一门课。在航天二院研究生院讲这门课程有七八年了,感觉越讲越红火。今年听课的研究生增加到了 23 人,说实话,感到人数多了点,个别指导起来就不会太细致。 我的微体系结构讲的是 CPU 的设计理论和方法,并且在 68 学时中让学生设计出一个完整的计算机出来,难度很大。我自制的控制矩阵生成器和输入缓冲区结构帮了大忙,使在有限的学时内,学生能够独立完成 cpu 设计,并能够在专用开发板上完成整机运行,实现汇编程序的执行。 微体系结构是计算机完整的一门课程,涉及到计算机原理、 CPU 设计方法、汇编程序设计、操作系统等计算机基础体系的内容,是深刻理解计算机,研究计算机设计必需要掌握的理论和方法。实践证明这种边讲边做的的教学方法很有成效,很受学生欢迎的原因是能够实际地解决学生的理论和方法问题。几年下来一直受到了学生好评,反映出独特的教学内容组织和知识选择的实用性。 从去年开始,将动态计算机的设计方法贯穿在教学中了,只可惜没有课时能够全面设计,只能将 PU 、 MU 的结构设计出来,多处理器多存储器结构还无法实现。 2015-11-3