深入浅谈,cpu设计原理

深入浅谈,cpu设计原理

ID:19679584

大小:49.00 KB

页数:20页

时间:2018-10-04

深入浅谈,cpu设计原理_第1页
深入浅谈,cpu设计原理_第2页
深入浅谈,cpu设计原理_第3页
深入浅谈,cpu设计原理_第4页
深入浅谈,cpu设计原理_第5页
资源描述:

《深入浅谈,cpu设计原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、深入浅谈,CPU设计原理序言也许很多朋友都会对CPU的原理比较感兴趣,从网上大家可以搜集到“利用晶体管的开关闭合进行二进制运算或数据存贮”之类的东西,但是CPU的性能由何决定?CPU内部的设计师如何的?分支预测,乱序执行到底是什么?超长流水线,RISC又是何物?为什么酷睿的CPU频率低,但是比高频率的P4性能好那么多?这些我们应用中遇见的问题绝对不是几句简单的话语可以解释的。写本文的目的,就是想让大家对CPU的了解更加深刻一些,更好的理解CPU到底是怎么运转的。但同样,考虑到仅仅是普及文,我个人不会对一些特别的技术和实现方式(比如逻

2、辑电路的设计,编译原理等等)进行详细讲解,我们只需要知道这些东西通过一些设计就可以达到预期的效果,具体问题是工程师的问题。我会尽量让文章做到范围广,深度浅,把晦涩难懂的知识尽量具体化形象化,但不得不承认我也只是一个普通爱好者,所以错误也是难免的,希望大家共同交流,相互促进。这玩意实在太长了,不可能一帖,甚至几帖就可以说完,所以我决定利用连载的方式来写这篇文章。内容大体分为三大章1处理器的数据线路和控制实现2流水线及其带来的问题3存储器结构的讨论系统学习是比较繁琐的,但是想要了解一些东西必须要把基础打好,希望有心的朋友仔细读下去,我相

3、信也许你会爱上计算机。1.1指令的执行过程(这里没有涉及到高级语言的编译,所以没有翻译指令)CPU的性能由哪些因素决定?我想大多数人都会知道时钟周期这个概念,而另两条“指令数目”,“指令所需时钟周期数(CPI)”是并不为人所知的。而不同的内部架构,也便深刻的影响了CPI的大小,所以有些处理器频率低但是处理任务更快。不过别急,一口吃一个胖子是不行的,在我们对CPU的架构进行探讨之前,先来看看CPU是怎么处理一条指令的。一条指令,首先会根据程序计数器(记录当前运行的指令地址,本身也是一种寄存器)从内存中去处指令,通过指令字段的内容,选择

4、读取一个或者两个寄存器(在汇编语言中,一条代码,即一个指令只能使用1或2个寄存器进行加减乘除运算,而寄存器,就是记录数据的一个东西,当然他还有更多用途,之后我们会提及)一旦取得寄存器的操作数后,就可以对指令进行定性,大致分为三种,存储访问,算术逻辑和分支(分支也可以叫做跳转,一般的高级语言都用if语句,判断一些特定条件从而进行两种或者更多的操作)存储访问指令需要对存储单元进行读出或者写入而访问寄存器;算术逻辑指令需要将ALU(运算器)计算得到的数据写回寄存器;而分支指令则会通过对数据的比较,决定是否对下条指令地址进行修改(也就是是否

5、进行if语句中的or后面的语句)话外音:一条高级语言首先会被编译为汇编语言,之后通过指令集将其编译为二进制信号,从而让CPU明白它需要做哪些操作。不要将缓存和寄存器的概念混淆,最好从百度百科上看看相应资料。缓存我们会在第三大章进行详细讨论。1.2数据通路的建立什么叫数据通路?我想聪明的你一定知道,让一条指令顺畅执行下去,这就是一条数据通路,它包括指令,数据存储器,寄存器堆,运算单元和加法器(加法器是对程序计数器进行调节的,也就是说当前指令执行完毕之后,加法器对程序计数器加上4,就可以切换到下一个指令地址,关于为什么加4这里不多说,在

6、第三大章我们会提及)。想要构成数据通路,首先需要一个存储程序指令的地方,那么我们就需要一个存储单元来存储程序指令,并根据所给地址提供指令。当前需要执行的指令一定要放在一个存储单元中,这就是我们之前提到的程序计数器(PC),然后同一个加法器增加PC的值使它指向下一条指令的地址。得到了指令地址,就可以让ALU对指令进行处理,从而得到结果,而ALU想要进行计算,就需要从寄存器获得数据并写入寄存器,这样,我们就需要一个寄存器堆,来暂时存储这些指令地址,信息等等。如果是储存访问指令和算术指令的话,那么接下来只需要将寄存器的数据显示,或者暂时储

7、存就可以了,若是分支指令,就需要对ALU的数据和寄存器的数据进行比较,如果为真,则执行if语句后紧跟的语句,如果为假,就会执行if语句中or后紧跟的语句,所以说分支指令总是延迟的,因为在没有得出指令的真假时我们不能对接下来的指令进行处理。1.3指令的处理实现一条指令,通过拆分(解码器就是对指令进行拆分,重排等操作的,使用逻辑电路从而达到了一种特殊算法),因为ALU的处理能力是一定的,所以有些复杂指令不能在一个周期内处理完,而需要拆分或者让ALU利用更长的一个周期重复处理这段指令。对于单周期实现,和1.2节中的数据通路非常相近,如果有

8、不熟悉的朋友可以回阅上一节。多周期的数据通路,与单周期通路最本质的区别有三点:1指令和数据使用相同的储存单元2只有一个ALU(也可以使多个,但目前不对其进行讨论),没有了加法器3每个重要的功能单元都加上了一些寄存器存储输出值,使后面的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。