基于雷思磊老师的《自己动手写CPU》这本书。题外: 这本书是在买别的书的时候,看到了,很感兴趣,就顺带买回来了。买回来,就一定要看完,同时动手做实验的啊。
想象实现一下自己的处理器,还挺带感的。
基础篇理论概括:
1.目前通过编写代码可以在可编程逻辑器件上实现非常复杂的电路设计,比如处理器。
2.目前有很多可以下载到可编程逻辑期间上运行的处理器,陈伟软核处理器:
1)OC8051 一款8位两级流水线处理器,CISC类型 Verilog HDL编写代码
2)OR1200 一款32位五级流水线处理器 RISC类型 Verilog HDL编写代码
3)LEON3 一款32位七级流水线处理器 RISC类型 VHDL 编写代码
3.简单来讲:处理器的指令就是识别0,1编码,也就是识别指令,据此进行各种运算和数据处理。
4.不同的处理器使用不同的指令,其中编写的程序,不能直接在另一个处理器上使用,需要重新编写。
5. 指令集架构 (ISA),将编程所有需要了解的硬件信息从硬件系统中抽象出来,这样软件人员就可以面向ISA进行编程。ISA用来描述编程是用到的抽象机器,而非这个机器的具体实现。软件人员看来 ISA包括一套指令集和一些寄存器。ISA对应的是微架构的概念,微架构是ISA的实现
6. 根据ISA的不同,计算机分两类 : CISC RISC 。计算机发展早期,CISC指令集使用了变长编码,节约存储空间,由于一条指令可以完成很多功能,从而减少对内存的访问次数,这样也减少了缓慢的存储器访问对程序性能的影响。CISC指令集架构中,20%的程序会被反复使用,这样的结构不合理。
7.RISC为了实现是计算机的结构更加简单合理以提高运算速度 :指令长度固定、指令格式种类少,寻址方式种类少,大量使用寄存器。由于在RISC中试用的指令大多数是就简单指令且都能在一个时钟周期内完成,处理器的频率大幅度提升,同时易于设计流水线。
8.主要的几种ISA
1)X86:个人计算机的标准平台,历史上最成功的指令集
2)ARM:低功耗 低成本
3)SPARC (Scalable Processor ARChitecture,可扩展处理器架构)SUN将其用在高性能工作站和服务器上,目前的版本有v8 v9
SPARC架构对外完全开放,在此基础上出现了一些开放源代码的处理器。UltraAPARCT1 、LEON(一种SPARC v8架构处理器)LEON系列采用了VHDL编写代码
4)POWER(Performance Optimization With Enhanced RISC) 由IBM设计开发的RISC指令集架构
5) MIPS (Microprocessor without Interlocked Piped Stages 无内锁流水线微处理器):使用相对简单的指令,结构优秀的编译器以及采用流水线执行指令的硬件,就可以使用更少的晶元面积生产更快的处理器。
9
1) 为什么采用现有的指令集架构
现有的指令集架构已经形成了一套完善的环境,其中既有成熟的编译器,还有大量的应用的程序,采用现有的指令集架构,都可以直接使用这些环境。
2)
MIPS的设计是RISC架构中的经典之作