基于DLX指令集的5级流水线CPU设计与实现

本文介绍了CPU设计的基础知识,包括从冯诺依曼体系结构到流水线技术的发展,强调了指令集和流水线在CPU设计中的核心地位。通过解析DLX指令集,详细阐述了5级流水线CPU的设计与实现,讨论了流水线带来的相关问题及解决方案,如定向技术和分支预测。最后,简要概述了实际设计中CPU的特性与工程实现。
摘要由CSDN通过智能技术生成

一、渊源... 1

二、基础... 2

1、从系统角度和程序执行角度体会CPU概貌... 2

2、CPU设计的重点:指令集和流水线,指令集就是协议... 3

3、流水线—20世纪最伟大的发明... 10

4、流水线带来的烦恼—相关... 16

5、流水线结构的颠覆:记分牌与tomasulo算法(与设计无关)... 21

三、设计与实现... 26

一、渊源

诞生于1977年的英特尔8086以现在微电子专业本科生的水平完全可以做出来,龙芯的负责人胡伟武的毕业设计作品就是8086CPU。

我们学过的大三的时候看了《编码》后觉得比较有感觉就写了一篇文章叫作《从零开始构建一台计算机》,主要说了一下对编码思想的理解,只记得当时心情相当激动,好像二进制世界刚刚向我打开。很重要的一部分是以自己的理解说了一下CPU与接口的相互作用关系,这是因为那时与单片机正打得火热。当时对于CPU的理解几乎为零,所以一笔带过了CPU的构造与工作原理,骗自己说那是非常复杂的东西,一直把它奉作系统大脑,却从不知道它到底是什么。但对CPU原理的理解对于写出高效的程序是很关键的。上个学期,一个“神童”级的人物出现了,王超。这个感觉还不如我们年龄大的科大博士后,教我们《现代微处理器体系结构》,不得不说收获很大,对如何设计、实现、测试、分析、评估、优化一个CPU有了比较清晰的认识。考试完之后一直想整理整理,一直懒得动,这项任务像一块石头一样堵在心口,现在我想好好写写,作为上个学期的真正结束。基础部分主要是之前课上课下的的笔记,实现部分主要是实验室老大单麾扬的杰作,他用了两天时间在modelsim下用verlog语言编写了整个工程,这个西工大的哥哥,真是各种令人折服。

二、基础

1、从系统角度和程序执行角度体会CPU概貌

我们沿用至今的冯诺依曼提出的计算机系统硬件结构:运算器、控制器、存储器、输入设备、输出设备。其中运算器和控制器从功能角度来说就是中央处理单元CPU。存储器指的是内存,即RAM,如果是哈佛结构则代码空间和数据空间是隔离的。若是冯诺依曼结构则是代码和数据混合存储哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。而冯诺依曼结构实现起来简单而且成本较低。我们的设计用的是哈佛结构。CPU就像是输入与输出之间的一个黑盒子,这个黑盒子实现了编制的算法,对输入进行运算,并输出。

从程序的执行流程更能体会出CPU的角色,高级语言(如C或Java)写的程序经编译器(*.c->*.s),汇编器(*.s->*.o),链接器(*.o->*.elf),生成了可执行文件,生成的可执行文件放到内存里。

一句C语言编译成汇编语言的举例:

c=a+b;

LD R1,8000  ;a

LD R2,8001  ;b

ADD R3,R1,R2

SD R3,8003  ;C

对于不同的CPU,认识的指令不同,助记符也不同,上面是随意举例。汇编器将助记符变成二进制代码时,将会根据指令集的格式要求变成由操作码和操作数组成的01序列,CPU对操作码进行译码就知道该做些什么事情(逻辑电路部分开关决定功能流向)。在进行会变运行时,CPU从内存中取指令、取数据,进行取指、译码、执行(计算、访存)、写回等操作,I/O访问内存,将信息读出,显示给用户。可以看出CPU的能力,就是访存和计算(加法,减法可以用加法实现,乘法可以分成加法,除法同理)所以数据交换和计算配合专用外围功能模块就可以实现多姿多彩的计算机世界。纵观CPU的发展:

1971年:4004,4位CPU,,2300个晶体管,46条指令,4004+RAM+ROM+寄存器芯片=第一台微型计算机。

1972年:8008最早的8位微处理器。

1973年:8080 性能是4004的20倍,得益于MOS管电路的发展。

1977年:16位的8086,VLSI工艺取得了突破进展…

从4004的2300个晶体管到今天拥有4亿1000万晶体管的双核微处理器,工作电压从12伏特到1.2伏特。现在的发展趋势:核集成度、频率扩增、核扩增。而CPU发展存在的障碍也变得十分突出,工艺不能做的无限小:这是自然规律,细菌-病毒-蛋白-..原子。导线越细电阻越大。频率不能无限增大:不考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值