基于32位微处理器系统架构的Cache设计
作者简介:杨大为(1977-),男(回族),辽宁省沈阳市人,高级工程师,主研方向:集成电路设计。 收稿日期:2015-10-29
·6·
微 处 理 机
2016
间局部性 和 空 间 局 部 性[2]的 特 点。 时 间 局 部 性 即 如果某个数据被访问,那么在不久的将来它很可能 再次被访问。空间局部性即如果某个数据被访问, 那么与它相邻的数据很可能很快被访问。每次 miss 都把被访 问 地 址 相 邻 块 大 小 的 数 据 调 入 到 Cache 中,能够提高 Cache的命中率。图 1为 cache工作 原理图。
第 1期
2016年 2月
微 处 理 机
M
基于 32位微处理器系统架构的 Cache设计
杨大为,王 爽,王 丹
(中国电子科技集团公司第四十七研究所,沈阳 110032)
摘 要:近年来随着芯片技术的发展,嵌入式微处理器迎来了新的机遇,广泛应用于通信、多媒 体、网络以及娱乐等方面。处理器的处理速度发展迅速,近乎于指数增长,然而内存的处理速度增 长缓慢,因此内存的存储速度成为了影响嵌入式微处理器系统性能的主要瓶颈,为了均衡成本、性 能和功耗,高速缓存 Cache广泛应用于嵌入式系统中。首先介绍 Cache的工作原理,其次对直接映 射、全关联映射、组相联映射三种策略进行比较分析,然后分析行大小与命中率的关系,最后设计一 款基于 32位微处理器系统架构的高速缓存 Cache。
关键词:高速缓存;组相联;行填充;命中率;写通;写回 DOI:10.3969/j.issn.1002-2279.2016.01.002 中图分类号:TN492 文献标识码:B 文章编号:1002-2279(2016)01-0005-06
DesignofCacheBasedon32-BitCPUSystem Architecture
Keywords:Cache;Set-associate;Linefill;Hitrate;Write-Through;Write-Back
1 引 言
近年来,嵌 入 式 微 处 理 器 发 展 迅 速,在 移 动 终 端、多媒体、网络通信等方面应用尤其广泛,对处理 器性能的要求也越来越高。为了弥补内存速度较低 的问题,Cache作为连接内核和内存的桥梁,对于提 高处理器访问程序和数据的速度[1],起到了至关重 要的作用。
2 Cache工作原理
Cache位于主存与内核之间,用于提高存储系统
的性能,提高处理器访问主存的效率。Cache的功能 完全用硬件来实现,对于软件人员是完全透明的。如 果处理器内核可以在 Cache中找到需要的数据,叫做 hit(命中);如果没有找到,叫做 miss(未命中)。
当 Cache命中时,可以很快将所需数据返回给 内核;当 Cache未命中时,需对 Cache进行更新,从 主存中重新把需要的数据搬移进 Cache,再返回给 处理器内核。Cache存储体由块即 Cache行(line) 构成,块是 Cache与主存之间进行数据交换的基本 单位。
YangDa-wei,WangShuang,WangDan
(The47thResearchInstituteofChinaElectronicsTechnologyGroupCorporation,Shenyang110032,China)
Abstract:Withthedevelopmentofthechiptechnology,theembeddedprocessorcatchesthenew opportunities,whichiswidelyusedinsuchfieldsascommunication,multimedia,networking,entertain ment,etc.Theprocessingspeedoftheprocessornearlyincreasesinacertainindex,whiletheslower processingspeedofthememorybecomesthemajorbottleneckofMCUsystemcharacteristics.Considering ofbalancingcost,performanceandpower,thecachewidelyisusedinMCUsystem.Inthispaper,the principleofthecacheisfirstlydescribed,thedirect-mapping,full-associatecacheandset-associate cachearecomparedaswell.Then,therelationshipbetweenlinesizeandhitrateisanalyzed.Lastly,a cache,basedon32bitsprocessorarchitecture,isdesigned.
图 1 Cache工作原理
3 Cache设计
3.1 地址映像方式 由于内存的空间远远大于 Cache,因此内存中的
数据与 Cache为多对一的映射关系。设计时采用组 相联映像方式[3]。组相联是一种较为通用的映射策 略,结合了直接映射访问速度快、实现简单的优点和 全相联映射命中率高的优点。首先,将高速缓存分成 若干大小相等的块,每一块称作一个 way(路);接着 用类似于直接映射方式中的分页方法将主存按照一 个 way的大小进行分页;然后将高速缓存中的每一个 way都分成大小相同的 line,包含每一个 way中相同 位置的 line的集合称作一个 set(组)。在进行数据 填充时,主存的每一个数据块只能映射到高速缓存 中固定的 set上,即 在 set之 间 采 用 直 接 映 射 的 方 式;但是主存的每一个数据块可以映射到组内的任 意一个 way上,即在 set内部采用全相联映射方式。 3.2 Cache种类
基于FPGA的32位RISC微处理器设计
第2卷第3 6 期 2 1 年 5月 01
数
据
采
集
与
处
理
Vo . 6 No 3 1 2 .
Ma y 201 1
J u n lo t q iiin 8 r c sig o r a fDa aAc usto LP o esn
文 章 编 号 :0 49 3 ( 0 10 —3 70 1 0 — 0 7 2 1 ) 30 6 — 7
基 于 F GA 的 3 P 2位 RIC微 处 理 器 设 计 S
刘 览 郑 步 生 施 慧彬
(. 1 南京航 空航 天大学电子信息工程学院 , 南京 , 10 6 201;
2南 京 航 空 航 天 大学 计 算 机科 学 与 技 术 学 院 , 京 ,1 0 6 . 南 201)
的 C I 同 时 又 不 会使 流 水 线 出现 局 部 逻 辑 拥 堵 从 而 降 低 微 处 理 器 的主 频 。最后 给 出 了设 计 的 综 合 结 果 , 对该 P, 并 设 计进 行 了软 件 仿 真 和 硬 件 验 证 。在 F GA 芯 片 上 的 运 行 时 钟 频 率 可 达 1 6 6 8MHz P 4 . 2 。 关键 词 : 简指 令 集计 算 机 ; 处 理 器 ; 水 线 ; 支 预 测 精 微 流 分 中 图分 类 号 : P 0. T 322 文 献标 识 码 : A
嵌入式系统设计教程(第2版)简答题答案.pdf
第一章嵌入式系统概论1.嵌入式系统的定义是什么?答:以应用为中心,以计算机技术为基础,硬件、软件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2.简述嵌入式系统的主要特点。
答:(1)功耗低、体积小、具有专用性(2)实时性强、系统内核小(3)创新性和高可靠性(4)高效率的设计(5)需要开发环境和调试工具3. 嵌入式系统一般可以应用到那些领域?答:嵌入式系统可以应用在工业控制、交通管理、信息家电、家庭智能管理系统、网络及电子商务、环境监测和机器人等方面。
4. 简述嵌入式系统的发展趋势答:(1)嵌入式应用的开发需要强大的开发工具和操作系统的支持(2)连网成为必然趋势(3)精简系统内核、算法,设备实现小尺寸、微功耗和低成本(4)提供精巧的多媒体人机界面(5)嵌入式软件开发走向标准化5.嵌入式系统基本架构主要包括那几部分?答:嵌入式系统的组织架构是由嵌入式处理器、存储器等硬件、嵌入式系统软件和嵌入式应用软件组成。
嵌入式系统一般由硬件系统和软件系统两大部分组成,其中,硬件系统包括嵌入式处理器、存储器、I/O系统和配置必要的外围接口部件;软件系统包括操作系统和应用软件。
6.嵌入式操作系统按实时性分为几种类型,各自特点是什么?答:(1)具有强实时特点的嵌入式操作系统。
(2)具有弱实时特点的嵌入式操作系统。
(3)没有实时特点的嵌入式操作系统。
第二章嵌入式系统的基础知识1.嵌入式系统体系结构有哪两种基本形式?各自特点是什么?答:冯诺依曼体系和哈佛体系。
冯诺依曼体系结构的特点之一是系统内部的数据与指令都存储在同一存储器中,其二是典型指令的执行周期包含取指令TF,指令译码TD,执行指令TE,存储TS四部分,目前应用的低端嵌入式处理器。
哈佛体系结构的特点是程序存储器与数据存储器分开,提供了较大的数据存储器带宽,适用于数据信号处理及高速数据处理的计算机。
2.在嵌入式系统中采用了哪些先进技术?答:(1)流水线技术(2)超标量执行(3)总线和总线桥3.简述基于ARM架构的总线形式答:ARM架构总线具有支持32位数据传输和32位寻址的能力,通过先进微控制器总线架构AMBA支持将CPU、存储器和外围都制作在同一个系统板中。
32位微处理器
WP:写保护控制位。WP=1表示表示禁止来自管理程序级的写操作写到用户级的 页面上。WP=0通过管理进程可以对用户级的只读页面进行写操作。
15
TSD:禁止定时标志。TSD=1且当前特权级不为0时,禁止RDTSC指令(读时 间标志计数器指令)且执行这一指令时将产生故障。TSD=0表示在任何特权级 上都允许RDTSC指令执行。
DE:调试扩充位。DE=1表示允许调试扩充。DE=0禁止调试扩充。实际上该位 控制是否支持I/O断点。
18
1.1 32位微处理器的寄存器组
GDTR和IDTR必须在转入保护模式之前进行初始值设定,这两个 寄存器在实地址模式下可以访问。LDTR和TR只能在保护模式下使 用,程序只可以访问段选择寄存器,其他的缓冲部分是在任务切换 时由LDT描述符和TSS描述符中自动装入的。
10
1.1 32位微处理器的寄存器组
系统地址寄存器和系统段寄存器
任务寄存器TR:是一个16位的寄存器,用来存放任务状态段表(TSS)的 段选择字。
11
1.1 32位微处理器的寄存器组
32位微处理器为了控制管理的需要,配备了控制寄存器。在80386 中配备了3个32位的控制寄存器(CR0,CR2,CR3),发展到Pentium微 处理器时,就有5个控制寄存器(CR0~CR4),不过,控制寄存器中的 一些位被重新定义了。这些控制寄存器中保存着全局性的和任务无 关的机器状态,供应用程序读取,而写这些控制寄存器的操作被大 多数系统禁止。
CR3:页因为Pentium的页目录表是按页排列的。 PWT:页面写贯通。PWT=1表示对当前所访问的页实现通写。PWT=0则实现
【免费下载】分析Cache的运行机制和设计理念
分析Cache的运行机制和设计理念随着双核时代的到来,CPU的Cache越来越受到DIYer的重视。
本文吸收了其它高手发表的文章观点,浅谈一下Cache的运行和设计原理。
1. CPU Cache简介Cache其是就是CPU和内存之间的一个中转站。
由于目前CPU的频率(速度)已经大大超过内存,往往CPU会为了读取或存储数据白白浪费几十个时钟周期。
这造成了巨大的资源浪费。
于是Cache的设计思想被提上日程,几经实验修改后,逐渐形成了我们现在所能够看到的Cache架构。
在现代CPU设计中,设计师们要解决的最主要问题,就是找到一个在CPU和内存之间平衡的均点。
Cache作为CPU--->内存的中转站,在其中发挥了巨大的作用。
CPU在请求数据或指令时,除了常规的在内存中进行查找外,还会在Cache中进行查找。
一旦命中,就可以直接从Cache中读取,节约大量时间。
正因为如此,Cache在现代CPU中显得越来越重要。
2. Cache的实现原理众所周知,Cache属于SRAM(Satic Random Access Memory),它利用晶体管的逻辑开关状态来存取数据。
也正因为如此,SRAM内部的电路构造比起常见的DRAM(Dynamic Random Memory)要复杂得多,导致了成本的巨增。
这也是SRAM不能普及的一个重要原因。
Cache在计算机存储系统中没有编配固定的地址,这样程序员在写程序时就不用考虑指令是运行在内存中还是Cache中,Cache对于计算机上层来说是完全透明的。
CPU在读取数据时,会首先向内存和Cache都发送一个查找指令。
如果所需要的数据在Cache中(命中),则直接从Cache读取数据,以节约时间和资源。
CPU对Cache 的搜索叫做Tag search,即通过Cache中的CAM(Content Addressed Memory)对希望得到的Tag数据进行搜索。
CAM是一种存储芯片,延迟很低,常用于网络设备中用作路由选择。
基于32位超标量处理器的保留站设计
Re s e r va t i o n s t a t i o n d e s i g n ba s e d o n 3 2 bi t s s u pe r s c a l a r pr o c e s s o r s
翟召岳
( 同济 大学 电子 与信 息工程 学院 ,上海 2 0 1 8 0 4)
【 摘 要 】该保留站根据超标量处理器 中寄存器重命 名的原理,将从数据寄存器或 AL U 单元送来的数据临时存储在 保 留站
的数据位 , 3两个数据位的数据都准备好 - " 时 ,则发射存储在保 留站 中的指令给 A L U单元进行运算 。文章的设计 中,增加 了从
b e f o r e t h e n e x t c l o c k c y c l e . C o mp a r e d t o r e a d d a t a f r o m he t r e o r d e i r n g b u f e r( RO B ) , t is h wi l l r e d u c e t h e t i me ha t t r e s e va r t i o n s t a t i o n
总第 1 5卷 1 7 1期
2 0 1 3 年1 1 月
大 众 科 技
P o p u l a r Sc i en c e& T ec h n o l o g y
V0 I . 1 5 NO. 11 No v e mb e r 2 01 3
基于MIPS指令集的32位RISC处理器逻辑设计
本科生毕业论文题目:基于MIPS指令集的32位RISC处理器逻辑设计院系:信息科学与技术学院专业:计算机科学与技术学生姓名:***学号:********指导教师:李国桢副教授二〇〇九年四月摘要CPU是计算机系统的核心部件,在各类信息终端中得到了广泛的应用。
处理器的设计及制造技术也是计算机技术的核心之一。
MIPS是世界上很流行的一种RISC 处理器。
MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。
本文在详细研究32位MIPS处理器体系结构的基础之上,在Quartus II 7.2环境中,完全依靠自己的研发设计能力,采用硬件描述语言VHDL完成了拥有自主知识产权的基于MIPS指令集的32位RISC处理器的逻辑设计。
共开发出单周期、多周期、五级流水线等3个不同版本的32位RISC处理器,均通过Quartus II进行了时序仿真和性能比较分析。
本文的首先概述了MIPS指令集的重要特征,为讨论CPU的具体设计奠定基础。
本文设计的3个版本的CPU均实现了一个共包含59条指令的32位MIPS指令子集。
本文的主体部分首先详细描述了处理器各个独立功能模块的设计,为后续的整体设计实现提供逻辑功能支持。
随后按照单周期、多周期、流水线的顺序,循序渐进的围绕着指令执行过程中需经历的五个阶段,详细描述了3个版本的处理器中各阶段的逻辑设计。
在完成了各个版本的CPU的整体逻辑设计后,通过Quartus II时序仿真软件在所设计的CPU上运行了测试程序,测试输出波形表明了处理器逻辑设计的正确性。
本文还通过Quartus II 7.2中的Quartus II Time Quest Timing Analyzer软件,基于Altra公司的FPGA器件比较分析了所设计的3个版本CPU的性能。
32位微处理器Pentium
32位微处理器Pentium
2
⑤对常用指令采用硬件实现。
⑥采用分段和分页两级存储管理机制,使得存储 管理可靠快速。
⑦增强了信息传输准确性的检测能力和机器异常 事件的处理能力。
⑧为系统的扩展提供了很好的检测和测试能力。
32位微处理器Pentium
32位微处理器Pentium
14
2.RISC
RISC体系的指令特征 :精简指令集:包含了简单、 基本的指令,透过这些简单、基本的指令,就可 以组合成复杂指令。 同样长度的指令:每条指令 的长度都是相同的,可以在一个单独操作里完成。 单机器周期指令:大多数的指令都可以在一个机 器周期里完成,并且允许处理器在同一时间内执 行一系列的指令。
13
2.CISC和RISC相结合的技术
CISC和RISC的比较
1用微代码。新设计的处理 器,只需增加较少的电晶体就可以执行同样的指令 集,也可以很快地编写新的指令集程式。 庞大的指 令集,可以减少编程所需要的代码行数。
CISC体系的优缺点: 优点:能够有效缩短新指令的 微代码设计时间,允许设计师实现CISC体系机器的 向上相容。微程序指令的格式与高阶语言相匹配, 因而编译器并不一定要重新编写。 缺点:指令集以 及晶片的设计比上一代产品更复杂,不同的指令, 需要不同的时钟周期来完成,执行较慢的指令,将 影响整台机器的执行效率。
7
计算机流水线(Computer Pipeline)
把计算机的指令或操作分解成一系列可独立执行的 步,并将多条指令或多个操作的步,按流水线方式重叠 执行的一种工作方式。其特点是多条指令或多个操作并 行处理,虽然每条指令或每个操作的执行步骤并未减少, 但从整体看却加快了指令流进程,提高了整体处理速度。
分析Cache的运行机制和设计理念
分析Cache的运行机制和设计理念随着双核时代的到来,CPU的Cache越来越受到DIYer的重视。
本文吸收了其它高手发表的文章观点,浅谈一下Cache的运行和设计原理。
1. C PU Cache简介Cache其是就是CPU和内存之间的一个中转站。
由于目前C PU的频率(速度)已经大大超过内存,往往CPU会为了读取或存储数据白白浪费几十个时钟周期。
这造成了巨大的资源浪费。
于是C ache的设计思想被提上日程,几经实验修改后,逐渐形成了我们现在所能够看到的Ca che架构。
在现代CPU设计中,设计师们要解决的最主要问题,就是找到一个在CP U和内存之间平衡的均点。
Cache作为C PU--->内存的中转站,在其中发挥了巨大的作用。
CPU在请求数据或指令时,除了常规的在内存中进行查找外,还会在Cach e中进行查找。
一旦命中,就可以直接从Ca che中读取,节约大量时间。
正因为如此,Cache在现代CP U中显得越来越重要。
2. Cache的实现原理众所周知,Cache属于SRA M(Satic Ra ndom Acces s Memory),它利用晶体管的逻辑开关状态来存取数据。
也正因为如此,SRAM内部的电路构造比起常见的DRAM(Dyn amic Rando m Memory)要复杂得多,导致了成本的巨增。
这也是SRA M不能普及的一个重要原因。
Cache在计算机存储系统中没有编配固定的地址,这样程序员在写程序时就不用考虑指令是运行在内存中还是Cache中,Cache对于计算机上层来说是完全透明的。
CPU在读取数据时,会首先向内存和Cache都发送一个查找指令。
如果所需要的数据在Cache中(命中),则直接从C ache读取数据,以节约时间和资源。
32位DSP两级cache的结构设计
32 位DSP 两级cache 的结构设计1 引言随着半导体技术的发展,DSP 性能不断提高,被广泛应用在控制,通信,家电等领域中。
DSP 内部核心部件ALU 具有极高的处理速度,而外部存储器的速度相对较低,存储系统已成为制约DSP 发展的一个瓶颈。
本文参照计算机存储结构,利用虚拟存储技术,对存储系统的结构进行了改进。
在DSP 中引入二级Cache 存储器结构,在较小的硬件开销下提高了DSP 的工作速度。
结合高性能低功耗DSP cache 设计这个项目,对两级cache 的结构和算法做了探讨。
2 cache 总体设计传统的存储器主要由Dram 组成,它的工作速度较慢,cache 存储器主要由SRAM 组成。
在DSP 中,存储系统可分层设计,将之分为两部分:容量较小的cache 存储器和容量较大的主存储器,cache 中存放着和主存中一致的较常用的指令与数据。
DSP 执行操作时可先向速度较快的cache 取指令或数据,如果不命中则再从主存取指令或数据。
通过提高cache 的命中率可以大大加快DSP 的整体运行速度,从而缓解由存储系统引起的瓶颈问题。
图1 cache 的结构及互连简图基于上述原理,我们设计了DSP 的cache 总体结构,如图1 所示。
图中设计采用了两级cache 设计,第一级cache 采用分立结构,将指令cache 和数据cache 分开设计,这样CPU 可以对数据和指令进行平行操作,结合DSP 取址,译码,读数,执行的四级流水线结构,充分提高系统效率。
二级cache 采用统一结构,数据和指令共用一个cache,此时可以根据程序执行的具体情况,二级cache 自动平衡指令和数据间的负载,从而提高命中率。
DSP 若在一级cache 中未找到需要的指令和数据,则可在二级cache 中寻找。
此结构下,一级cache 找不到的数据和指令多数可在二级cache。
(完整word版)32位单周期RISC处理器设计
第一章32 位单周期RISC处理器设计要设计一款处理器,首先要选择体系结构,本题选择的是RISC体系结构,因为它适合于流水线设计。
然后需要选择一个标准的指令集,本题选择的MIPS指令集并按照常规的五段流水的方式来实现流水线。
流水线的实现过程将在第二章介绍。
1.1目标处理器指令集与指令格式本题目标CPU以能实现部分MIPS指令为目标,具体指令如下表1:(slti)无条件跳跳转(jL)J转空操作空操作(nop)表1 目标CPU指令集1.2 从指令具体行为反推设计方案CPU要执行一条指令,不外乎需要完成以下几个过程:取指令,指令译码,将译码出的指令放到算术逻辑运算部件ALU上执行运算,根据ALU算得的访存地址进行访存和将访存的结果写回寄存器等。
当然,不同的指令类型(R、I、J)可能经过的过程稍有不同,即它们的数据通路有所不同,以下将具体介绍:1、R格式指令数据通路:1)从指令寄存器Instr MEM中取出指令,同时PC增值(即加1等待下个CLK到来);2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出;3.)ALU根据功能码Opcoder确定操作方式,对从寄存器堆读出的数据进行计算;4.)ALU运算结果被写入寄存器堆,由rd确定写入的寄存器堆存储单元地址。
图1 R指令数据通路2. I 指令(除lw、sw和分支指令)数据通路如图2:1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);2.)寄存器单元rs1的内容从寄存器堆Reg File中读出;3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加;4.)ALU的运算结果被写入寄存器堆,由rt确定写入的寄存器堆存储单元地址。
图2 I 指令(除lw、sw和分支指令)数据通路3、Lw指令数据通路如图3:1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);2.)寄存器单元rs1的内容从寄存器堆Reg File中读出;3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加;4.)将ALU的运算结果作为数据存贮器的地址读出相应单元的内容;5)把从数据存储单元取出的数据写入寄存器堆,由rt确定写入的寄存器存储单元地址。
