!!02CPU设计概论
- 格式:doc
- 大小:4.35 MB
- 文档页数:18
单周期CPU设计总结单周期CPU⼀、设计思路1、CPU的意义CPU是计算机的核⼼,因为它是计算机指令的处理单元。
计算机体系结构包含两个⽅⾯,⼀个⽅⾯是指令集,⼀个⽅⾯是硬件实现。
指令集是计算机被定义拥有的执⾏指令,计算机通过⽀持指令集的运⾏,来完成计算⼯作并为程序员编程服务。
硬件实现则是具体的硬件去实现指令集,这个硬件实现的核⼼就是CPU的设计。
这⾥写的CPU的设计是32位机器的CPU,指令和数据均为32位。
⽀持指令为简化mips指令集。
2、CPU的设计CPU的设计包含数据通路的设计和控制器的设计。
数据通路是执⾏指令必须的硬件(ALU、IM、DM、GRF等),控制器则是根据指令产⽣相应控制信号,来控制相应硬件以⽀持多条指令。
数据通路设计CPU的功能是⽀持指令集,因此硬件设计是为了执⾏指令。
设计CPU的结构的⽅法:先选择⼀条需要经过最多硬件的指令,来为它构建数据通路。
再依据其他指令在已有数据通路上添加硬件或线路,直到数据通路⽀持所有指令。
控制器设计在已有的数据通路基础上,针对每⼀条指令,列出其所需要的控制信号,每⼀组控制信号对应⼀种指令的全部执⾏。
将指令相应字段和部分计算结果作为控制器的输⼊,控制信号作为输出,依据上述映射关系(真值表)设计控制器。
⼆、实际操作0、设计说明CPU架构的设计是没有很多约束的,基本要求就是能够⽀持指令集,基于不同的考量可以有不同的设计。
举例来说:对于beq指令是否跳转的判断,可以借⽤ALU的减法计算,也可以直接增设CMP⽐较器得出,两种⽅式都可以,因为功能正确。
为了提⾼吞吐量,或者为了节省成本,会选择⼀些特别的设计,这⼀点在流⽔线CPU 的设计上可以明显地看出。
CPU具体设计的⽅法是我下⾯进⾏的⼏步:列出所需指令,写出功能模块,连接模块,构造控制器,全部连接起来。
这些表格对最终代码实现⼗分重要,因为代码量较⼤,先从表格检查起,再依据表格写码可以减少bug。
1、⽀持指令列出⽀持指令并将其分类:str ld cal_r cal_i lui b_type j jr jal jalr shamtsw lw addu ori beq sllsubu slti sraslt addiu srlsllvsravsrlv2、功能模块先按照lw指令列出所需功能模块(lw经过模块最多),再依次检查现有模块是否⽀持其余指令,若不能⽀持,则添加相应模块。
形容cpu-概述说明以及解释1.引言1.1 概述CPU(Central Processing Unit)是指中央处理器,是计算机的核心组成部分之一。
它被视为计算机的大脑,承担着执行指令、数据处理和控制计算机各项任务的重要职责。
概括地说,CPU主要负责执行计算机程序中的指令,为计算机提供运算能力。
它通过解析和执行指令来实现各种任务,如运算、存储器读写、数据传输等。
CPU的功能非常多样,它包括算术逻辑单元(ALU)、控制单元(CU)和寄存器等核心组件。
其中,ALU负责处理各种算术和逻辑运算,CU负责控制整个计算机系统的操作,而寄存器则用于存储和管理数据。
CPU的工作原理可以简单地描述为:首先,CPU从内存中读取指令,解析指令的类型和操作数;然后,它执行指令中的运算、数据传输和逻辑操作;最后,将结果存储回内存或输出到外设。
在计算机系统中,CPU起着至关重要的作用。
它不仅决定了计算机的运行速度和效能,还直接影响了计算机的整体性能。
CPU的处理能力越强大,计算机的运行速度和响应能力就会越高。
未来,CPU的发展趋势仍然是不可预测的。
随着科技的进步和计算需求的日益增长,人们对更强大的CPU性能和更高效的处理能力的需求也越来越迫切。
未来的CPU有可能会采用更先进的制程工艺、更高的频率和更多的核心,以满足不断增长的计算需求。
总之,CPU作为计算机的核心之一,在计算机技术领域发挥着重要的作用。
它不仅决定着计算机的运行速度和效能,还推动着计算机技术的不断发展和创新。
未来的CPU将持续演进,为人们创造更强大的计算机体验。
1.2文章结构文章结构部分的内容:文章结构是指文章的组织框架和布局。
在本文中,我们将按照以下的逻辑结构来撰写文章:首先,我们将在引言部分概述本文的主要内容和目的。
然后,正文部分将分为两个主要章节:CPU的定义和功能以及CPU的工作原理。
我们将详细介绍CPU的定义、作用和特点,以及CPU是如何实现计算和控制的。
CPU的概论与各项定义理论1.主频主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。
CPU的主频=外频×倍频系数。
很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。
至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。
像其他的处理器厂家,有人曾经拿过一快1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。
所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。
在Intel的处理器产品中,我们也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz Xeon/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。
CPU的运算速度还要看CPU的流水线的各方面的性能指标。
当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
2.外频外频是CPU的基准频率,单位也是MHz。
CPU的外频决定着整块主板的运行速度。
说白了,在台式机中,我们所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。
但对于服务器CPU来讲,超频是绝对不允许的。
前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。
目前的绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现两者间的同步运行状态。
外频与前端总线(FSB)频率很容易被混为一谈,下面的前端总线介绍我们谈谈两者的区别。
第二章CPU设计概论前言CPU设计在原理和技术上直接涉及到计算机原理、计算机体系结构、数字逻辑、微机原理等课程,并与半导体技术、测试技术、抗干扰技术、传输技术、供电技术、冷却技术等相关,在软件上与操作系统、编译原理等也密切相关。
目前安全保密技术在设计中越来越显得十分重要。
在使用的设计工具和工作平台上直接涉及到电子设计自动化EDA系统、硬件描述语言HDL、软件设计语言、模拟仿真系统和测试验证平台等。
还要应用到半导体器件、集成电路、IP(智能财富)核(函数或库)和高密度可编程器件等技术。
目前高度集成的设计平台有Cadence每租用一天要上万元。
逻辑模拟仿真是验证目标的不可缺少的手段,它可以排除设计错误的90%以上。
建立由微机控制的CPU测试平台,把CPU逻辑烧入(编程)高密度可编程器件FPGA 或CPLD,再加控制机与CPU共享的存贮器及控制机与CPU 的通信逻辑,运行CPU程序来验证CPU设计的正确性,都被CPU设计公司采用。
实践证明:经过此验证,投片5次,至少由3次成功,而不未进行的,则成功率仅为1/5。
现在CPU设计的集成度越来越高,已接近上亿个晶体管,密度已达0.08u,速度已向2G迈进,内部连接由铝到铜。
在结构上使用了超标量和超流水线、动态结构等等先进技术。
其功能越来越多,嵌入式CPU实际是一个在芯片系统SOC,它包括嵌入式操作系统和几乎所有外部接口和总线。
完成逻辑设计和验证仅仅是CPU前期工作、后期的门电路、版图(晶体管级)、流片、出厂检测等工作量还相当大,从经费上后期是前期5-10倍。
在本章对CPU设计所涉及的原理、技术、工具仅作概述性的介绍或提醒注意点,详细请阅读或参考有关的书籍和资料。
2.1 CPU的基本原理和结构2.1.1 CPU的基本原理CPU的基本原理是在时钟的作用下,形成规定的指令流,并控制数据流及其相关的运算操作,同时运算所产生的状态和外部所发生的事件将影响其流程和结果。
因此,CPU的每一步操作都与时钟、指令、状态包括外部事件直接相关。
其控制信号可以用一个控制函数来表示,∑Cn=∑f(CLKi*OPj*Sk)它是一个与或表达式其中:i、j、k、n=1—l、P、Q 、m,C(Controll)为控制信号CLK(clock)为时钟脉冲,可含指周期Ti和脉冲OP(Operat)是指令操作码部分,也就是各条指令相互区别的部分S(State)是各种状态、包括外部事件在微程序控制中指令操作码OPi换为微码uDi,但每条指令的微程序入口地址及其微程序段和操作码存在唯一的对应关系。
上述控制函数表达式,决定指令流和数据流的流向和数据的运算方式,因此,正确地确定每个控制信号的逻辑表达关系,是CPU设计的关键。
2.1.2 CPU的基本结构CPU通常由运算器(含寄存器)、执行部件(指令部件、控制器)、总线(内、外)、时序逻辑等组成,目前存贮器已成为CPU设计不可缺少的部分。
分别叙述如下:X86处理器典型结构如图1所示。
1.运算器部分运算器基本组成有运算体、寄存器、缓冲存贮器、数据通路(总线)等CPU中可以有多种多个运算器,如整数、浮点(加、乘、除),每种也可以是多个。
a运算体设计可用库函数(如74181)或IP核(网上免费或购买)或根据经典二进制算术运算(*)用HDL直接描述,在结构上,目前都是超流水型和超前进位方式,移位、对阶、归舍采用高速电位型移位网络(多层选择电路),有的还应用等延迟及其延迟最小时间差技术,使每站的所用时间为最小,以尽量提高速度。
大多数运算都与标志位有关,必须根据运算结果正确的建立。
另外运算器设计必须考虑运算数据的各种可能的特殊组合处理逻辑(如÷0、0阶、±0)。
否则,特殊情况可产生运算结果错误。
运算标志位主要有进或借位、溢出、零、符号、比较(相等/大/小)等b通用数据寄存器、累加器是运算器部分不可缺少部分,显式寄存器根据指令需要的数量和操作设置,为了操作方便还必须设置隐式寄存器(即与程序设计者无关数据暂存器)。
寄存器的地址可设在指令码中(PC X86),也可统一在存贮空间分配(SUN SPARC)。
其操作宽度由指令确定。
在流水线上各站也要设置相关的数据暂存器和保护寄存器。
有的数据寄存器还有计数功能和地址、变址、间址、基址等功能。
为了高速按顺序保护数据或取出保护数据的先进后出、后进先出的数据堆栈寄存器和相应的栈指针计数器是常用的设计。
当然使用主存贮器的软站也是一种方法,但速度较慢。
c数据高速缓冲存贮器Data Cache,大大提高自身运算存取数据及与主存的成批交换的速度,使用高速SRAM。
数据Cache和对应主存贮器的数据一致性是Cache设计关键。
必须有侦听和回写(主存贮器)功能d运算器内部数据总线和选择通道运算器的结构可随寄存器设置位置和内部数据总线与选择通道逻辑变化,以实现不同的功能。
* 计算机算术运算原理、结构与运送黄铠科学出版社19822.指令部件指令部件由指令寄存器、程序计数器、地址(段、相对)寄存器、指令堆栈、地址运算器、中断逻辑、标志状态寄存器、地址选择通道等组成,现行指令部件还包括单个或多条指令予取、流水线操作逻辑、指令缓冲池、指令高速缓冲存贮器(Cache)。
a指令长度分等长、不等长、超长,因此指令寄存器要与之相适应。
在流水线各站均要设置相应的指令寄存器,以控制本站和下一站的操作,还要设置指令保护寄存器以保证流水中断后的恢复操作。
b对有指令缓冲池的指令部件,指令首先是成批地予取到缓冲池,在这里还有指令执行条件判别逻辑(固件编译器或用微CPU),用来实现指令无序执行。
若执行条件不满足,尽管指令在程序中在先,但不执行,而先执行在起后面、条件满足的指令,即把它送到首站指令寄存器。
c程序计数器即程序指针,输出是程序在主存的(相对)地址,有指令缓冲池时,必须另有相应成批去指令的指针和长度寄存、计数器。
程序计数器应具有加、减i(i=1-n)、跳转功能。
d地址寄存器据需要设置,可分别寄存相对地址、高位基地址(或称段地址)、间接地址、变址(可计数),也可合用,还可与运算器部分的通用寄存器合用。
e指令堆栈与数据堆栈结构类同,在转子程序或中断发生时,是用来压入程序计数器(包括程序高位基地址)现行值,以便返回时再弹出送到到程序计数器和程序高位基地址。
有的CPU无硬栈,而使用软栈。
f中断逻辑,包括内部硬中断(如溢出、除法)、外部硬中断(如复位,上电、掉电和设备请求)逻辑、不可屏蔽中断(如掉电、奇偶错)。
其中,上电和复位中断程序首地址在必须在上电和复位时直接置人程序高位基地址与程序计数器,并直接指向BIOS空间;设备类请求中断必须在发生时有读取中断号逻辑。
其它中断包括中断指令都要有相关的逻辑。
g地址运算器系整数运算器,要对数据地址或程序地址进行运算,输出送到内部地址总线。
除对相应的相对(或偏移)地址作加或减操作外,还要和高位基地址作移位加。
操作数源可以是各类地址寄存器(或间址),程序计数器、指令码的地址部分、高位基地址、栈弹出地址。
目前在有的CPU结构上,已将地址运算器和运算器部分的整数运算器合二为一。
对于转移程序地址、中断程序首地址、程序启动首地址必须在执行前置入程序计数器和高位基地址寄存器,因此,要有置入通路和控制逻辑。
指令和数据高速缓冲存贮器(Cache)除提高读取速度外,也是实现指令与执行流水的重叠操作必不可少的存贮器,否则仅能在指令执行非访问主存操作时,才可能重叠进行访问主存取指,这就大大降低速度。
因在指令、数据流水线情况下,访问各自Cache的地址、数据是分开的,不会产生冲突。
h标致寄存器,如溢出、进位、判“0”、符号、中断允许、方向、单步跟踪、允许模式、任务等。
i存贮管理类寄存器,如描述符、页表寄存器、窗口寄存器等,流水线因意外事件发生而中断流水操作时,如何保护现场和及时恢复且不影响速度是指令部件设计的关键。
在后面的新特技术将要说及。
3.时序电路包括时钟电路、复位初始化电路等a时钟脉冲电路有主时钟、分频电路、周期电路(流水线常不用)、锁相环倍频电路,产生各种频率脉冲、周期和特殊的延迟时序以适应各种控制的需要。
一个脉冲可以用前沿或后沿或都用,一个周期可包含多个脉冲。
并尽量采用同步时序。
b复位初始化电路有复位电路(分上电、冷、热复位),在上电后到CPU运行必须有等待稳定和随后的CPU工作模式、方式、启动首地址等初始化参数的自动配置,最后CPU 才开始运行即第一次取指令。
4.总线与输入输出a总线分内部和外部总线。
内部又分数据和地址总线,保证内部数据和地址畅通。
外部总线信号主要分数据地址、命令、请求应答(包括中断请求)、选通允许、脉冲五类。
当数据地址共点时,可减少芯片引脚,但操作多一个总线地址周期。
命令常为4—8位,在地址周期,其译码是各类的读写(包括存贮器、Cache、I/O读、写等),在数据周期则是对4个字节的控制等。
总线引脚的特性可能是输入、输出、双向(三态)、OC门等。
b现CPU还有二级Cache输入输出信号。
c嵌入式CPU是一个SOC(System on chip),其将接口芯片(包括桥路、存贮器管理部件)全部集成到CPU芯片上,入出信号更多。
为了控制一脚多用和各种功能,设置许多控制寄存器。
d总线方式有共享式、交换式、纵横交叉开关式等。
对外总线都双向地址数据复用5.辅助部件:自动报错或纠错、检测、安全结构逻辑a自动报错或纠错是一种防止同类并列信号如数据、地址在传输发生错误,常见的有奇偶校验(目前你在外总线上看到)、海明校验、多项式算法校验,后两种可自动纠错。
另一种是冗余技术,对重要的部件采取备份或表决容错纠错逻辑。
这都是保证可靠性的措施。
b检测逻辑是为芯片提供出厂检测芯片内部设计是否正确的逻辑与外部输入输出接口,常见的有国际标准JAGT串行端口,测试中要激励的输入由串行输入按序排列分配,被测试的信息点按序排列送出。
这种方式可用内部并外端口串逻辑。
另外还可用地址数据并行方式输入激励输出跟踪信息,只是芯片引脚增多。
如在仿真的CPU测试平台上测试,使用存贮器内的程序激励,可只设计跟踪回收即输出逻辑。
c在CPU预研制时,为了更细检测,通常要为CPU测试平台提供单步、单指、硬断点控制输入和信号输出。
在内部锁相环倍频情况下,锁相环输出脉冲必须改由测试平台提供。
d软件调试跟踪逻辑主要是单步(实是单指)跟踪和断点,除设置相应的状态位外,还要设计相关逻辑在单指或断点暂停时,自动将用户可见的寄存器内容送到主存的固定区。
e安全结构的CPU旨在从硬件设计的核上采取安全措施以可靠有效地防止黑客和病毒入侵,即使入侵也不能运行或被消灭。
目前在理论提出设置安全位和安全级,并增加安全指令等技术,但尚未有芯片问世。
6.控制器a控制设计控制器是CPU的中枢,在2.1.1 CPU的基本原理已叙述了CPU的每一步操作都与时钟、指令、状态直接相关,控制器就是根据其函数表达式设计。