一般来讲,这种课有两种上法:
1. 着重介绍汇编语言编程和接口技术,技巧性很强。
2. 着重介绍CPU及部分存储器之间的体系结构,顺带介绍汇编语言。
我自己在大学时学的是第二种,就给你说说这个好了。
1. 参考资料:
(1) [美]David A. Patterson,计算机组成和设计:软件/硬件接口,清华大学出版社
(2) http://ocw.mit.edu
这里能找到MIT用的相应课件,里面从头至尾介绍了一种被简化的CPU结构,包括各种实现细节,还提供免费的仿真程序供你使用。课程名称是Computation Structure
2. 先修知识:
(1) 数字电路的基础知识,包括组合逻辑和时序逻辑的使用与设计,最好知道一点FPGA知识
(2) 至少一种高级程序设计语言,以C语言为最好
(3) 数据结构中关于堆栈的内容
3. 具体方法:
对于一种或两种特定的并且足够典型的计算机处理器,分块搞清各个组成部分,功能特点(最好与其它CPU)比较。掌握这种CPU的汇编语言,并利用它编制一些程序,尽量结合你搞清楚了的这种CPU的特点,提高程序效率。根据所学,自己设计实现一个至少16位指令集的CPU,优化之,最好用Verilog或VHDL进行设计。另外,MIT的网站上有大量习题可以作为练习。
我最近刚使用一个仿真软件,叫dream logic 效果还可以推荐给你。我已经就业了但是需要学这类基础课,看书看得头大也没地找实验室,他这个就是全硬件模拟化了,然后跟着他的指导书和实验视频一边做一边学,感觉容易理解了,不过想学好肯定还是要有耐心。
这是他们链接:英真时代
我也以同样的疑惑,不知那位能出出注意。