返回信息流在介绍了存储器之后,我将向大家简要的介绍一下微处理器的相关知识。
1.首先,介绍一下CISC和RISC(可能有点老生常谈)
CISC就是常说的复杂指令集,其代表作品是8051,熟悉51的人应该知道,它的指令集非常丰富,拥有多种运算的指令。而RISC就不同,它的指令集以精简为主要特色,遇到复杂的运算可以通过多条简单的指令的联合使用来实现CISC下单条指令完成的功能。
这样做的主要好处是可以减少冗长的译码逻辑。如果大家用过FPGA或者CPLD,又或者学习过VHDL或者Verilog,应该可以理解译码逻辑复杂所带来的影响。举个例子,当一个处理器有1024个指令时,就需要一个10bit的多路选择器来执行译码逻辑(状态机思想),每一种选择都会有该指令对应的执行逻辑。
为了便于理解,这只是译码方式的一种,还有一种方式是添加一块存储器,像读取数据一样取出指令,然后通过标准的处理器指令周期来执行指令
试想当一个处理器的指令集非常复杂时,它的状态机将会很庞大或者使用较大的ROM。而在数字系统的设计中,路径延迟时必须要考虑的重要因素,对于每一个指令,它的路径延迟应该是相同的,这样路径延迟就好象被做了上取整操作,每条指令的延迟等于最复杂的指令的路径延迟,大大降低了系统的性能。
为了解决这个问题,MIPS采用了RISC结构。他通过简化指令集的方法来缩小状态机的规模或着减少ROM的大小。换之以指令使用率较高的一个精简指令来完成大部分运算,当遇到复杂运算的时候通过多条指令的整合即可完成该操作,也就是说用多个RISC的指令周期来完成一条CISC指令的工作。这样说来,好像RISC并没有什么优势存在。因此,聪明的工程师又提出了一种新的架构来提升RISC的优势,这就是哈佛架构。传统的处理器都是采用的冯诺依曼架构,它的指令和存储接口是在一起的。而哈佛架构将他们分开来,这样指令的操作就不会受数据读写操作的影响,随着当前存储器水平的提高(前两贴已经提过了),同步存储器可以达到几百兆的速率,这样就可以弥补多个指令周期所带来的损失,而利用起了译码逻辑简单,路径延迟小的优点。可以看出,当前RISC架构的微处理器已经压倒性的占据了高性能处理器的市场
2.高速CACHE
微电子技术的快速发展,使微处理器的速率有显著的提高,但是存储器的性能却不能与微处理器的性能相平衡,处理器已经在GHz级别,而存储器仅停留在几百MHz的水平。可见,传统的处理器与存储器相连的模式将会是提高性能的瓶颈。
在前两贴里已经提过,存储器的发展是从异步到同步,速度停留在几百兆。其速度上不去的主要原因,是地址的解码逻辑所带来的传输延迟(如行地址访问时间,列地址访问时间等)。虽然SRAM的访问速度比DRAM好很多,但是其造价过高,存储密度较低,且如果仅适用SRAM作为存储器,将会花费更多的电路板面积和更多的互连线。所以,采用SRAM的计算机通常对造价没有什么限制,属于仅仅追求性能的系统才会考虑这种方案。
那么,如果我们的系统又想提升性能又要考虑成本应该怎么办呢?聪明的工程师采用了SRAM和DRAM协同工作的方法。
上图给出了二者协同工作的方法,这种思路的来由主要是受到“局部性”原理的启发,选取一个合适的Cache和DRAM的配比,可以达到很好性能(即常说的命中率96%以上)。
这些都是计算机体系应该了解的知识,在此就不做过多的介绍。如果听过我在小组交流上做过的报告,应该能记起我当时介绍的有关处理器的更详细的知识,下面就为没有听过的人再介绍一下。
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #2301同步于 2008/11/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
嵌入式硬件知识-------微处理器
fzylijun886
2008/11/5镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
3.Cache和DRAM的映射
CACHE的工作就是和DRAM配合形成一个类似分页、分段式的操作。它将容量大DRAM空间分成若干块映射到容量小很多的Cache里面。目前流行的有三种标准Cache结构,即全相连映射、直接映射和n路组相连映射。下面就分别介绍这三种标准:
I全相连映射
上图描述了全相连映射的原理,32地址的高28位首先与Cache的行标记做比较,相同就表示命中(或门),然后转入低地址的译码阶段,4bit可以选择16个Cache单元之一。当有复位信号时,所有的行有效位都会清零。
II直接映射
细心的人会发现,全相连映射采用了28bit的并行比较来判断Cache是否命中,这种逻辑相对复杂,因而产生了这种直接映射的方法。思路也比较简单,还是类似分页分段的方法,将Cache以组为单位来对待,利用中间的bit位(15:4)做该组的索引,这样就减少了12bit的并行比较位,提高了判断Cache命中与否的效率。但这种方法有抖动的缺点,这主要是由于微处理器访问不同块的快速切换引起的,这里不加讨论,个人感觉了解到这一步即可。
III n组相连映射
上图描述了n组相连映射的原理,可以看出这是全相连映射和直接相连映射的一个折中做法,利用将Cache分组(这里是两组),既利用到了直接映射的速度优势,也用到了全相连映射的稳定优势。
4.Cache的替换算法
这个操作系统或者体系结构应该都讲过,就不在细说了,可以采取FIFO,LRU,随机替换等方法。请参考相关资料,对于每种算法,选用什么方式的映射结构,请大家考虑一下,以便加深理解。
5.多级Cache
为了充分发挥分页和分段方式的优势,一级的Cache往往不能充分发挥这种方法潜力,因此多级Cache成为了人们研究的热点。目前三级Cache也经常见到,其核心也就是将命中率提高,优化数据读写速率,如果不是做架构或者处理器设计的话也没什么必要深入了解,个人感觉掌握到此即可。
【 在 hobby 的大作中提到: 】
: 高深啊
: 我还专门百度里面找了一下哈佛结构是怎么回事儿呢。
: 好像是说把指令空间和数据空间分开,以提高执行效率
最近也在研究指令结构,这篇文章真不错噢 :-)