一种带Cache的嵌入式CPU的设计与实现

发布者:泉地水无痕最新更新时间:2010-09-05 来源: 电子技术应用关键字:嵌入式CPU  流水线  数据相关  指令Cache 手机看文章 扫描二维码
随时随地手机看文章

    随着集成电路设计和工艺技术的发展,嵌入式系统已经在PDA、机顶盒、手机等信息终端中被广泛应用。嵌入式系统具有电路尺寸小、成本低廉、可靠性高、功耗低等优点,是未来集成电路发展的方向。而作为嵌入式系统核心的微处理器,其性能直接影响整个系统的性能。为了提高CPU的效率和指令执行的并行性,现代微处理器广泛采用流水线设计,所以,CPU流水线的设计成为决定其性能的关键。

    MIPS(Microprocessor without Interlocked Pipeline Stages)是一种典型的RISC(Reduced Instruction Set Computer)微处理器,在嵌入式系统领域中得到广泛的应用。MIPS32TM指令集开放,指令格式规整,易于流水线设计,大量使用寄存器操作。与CISC(Complex Instruction Set Computer)微处理器相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。

1 基于MIPS指令集的CPU流水线结构

1.1 指令集的选取

 设计实现了指令兼容MIPS系列RISC处理器的指令集。由于MIPS32TM指令集是开放的指令集,指令格式非常简单,按照指令格式可分为寄存器类型(R-type)指令、立即数类型(I-type)指令和跳转类型(J-type)指令。这三类指令均为32 bit,而且指令操作码在固定的位置上。这种特点易于指令代码的拆分,易于流水线CPU的设计。

   指令类型参考MIPS处理器的指令集设计原则。所有指令的运算都在寄存器中进行,当需要与内存交换数据时,通过内存访问指令进行内存和寄存器的数据交换。设计实现程序中经常使用的34条指令,实现指令集按照功能分成5种类型:算术运算类指令、逻辑运算类指令、数据传送指令、条件转移和无条件跳转类指令、特殊指令等。

1.2 流水线的设计

 在基本的MIPS处理器中有5个流水级,其中各流水级定义与主要功能为:IF为计算下一条指令的地址PC,并从指令存储器读取指令;ID为对指令进行译码,从寄存器堆中取出源操作数;EX为当指令是运算类指令时执行运算,当指令是转移类指令时进行有效地址计算;MEM为从数据存储器读写数据;WB为将数据写回到寄存器堆。按照这一流水线结构,本文设计实现一种较为通用的MIPS CPU,通过VHDL语言实现,各模块之的关系如图1所示。

2 嵌入式CPU流水线中的相关性

    由于指令以流水线形式并行处理,必产生指令相关性问题,一般存在三种相关:结构相关、数据相关和控制相关,引起流水线竞争。

 结构相关问题是指由于硬件资源不足而导致流水线不畅通,例如只有一个存储器模块时,就不能对存储器同时取指令和数据。数据相关问题是指一条指令的后续指令要使用该条指令的结果。而控制相关问题是指转移指令从取指到转向目标地址要花几个时钟周期,但流水线CPU在每个周期都取指令。

 解决结构相关问题的方法是尽量增加硬件电路资源,本设计采用哈佛架构,使用指令存储器和数据存储器避免结构竞争。对于寄存器组存在的结构竞争,采用由D-FF构建寄存器予以避免,当写入地址和读出地址相同时,直接用写入数据驱动读出总线。数据相关问题可以用数据前推技术得到缓解。数据前推技术对于ALU计算指令非常有效,但对于存储器读数据指令,如果下面的指令想立即使用其结果,则必须暂停流水线一个周期。至于控制相关,可以使用指令重组优化及延迟转移技术等软件编译方法解决。

3 关键模块的实现

3.1 ALU的实现

 ALU是数据通路中的重要部件,负责完成各种运算功能。根据CPU要实现的指令集,确定出ALU的操作控制信号数据宽度为5 bit,运算的数据位数为32 bit。操作控制信号(ALU_OP)和ALU的源数据选择信号根据不同指令的译码由控制逻辑产生。

3.2 控制单元的设计

 控制单元要根据输入的指令码产生一系列的控制信号,用于控制数据通路上的多路选择器和各功能部件,保证每一条指令都能够正确执行。

   控制单元的输入信号必须设计为32 bit的指令码,而输出信号则要根据需要进行设计。

   在IF阶段,控制单元需要根据指令的译码情况,决定PC的更新值,如果是顺序执行的指令,则PC自动加4,对于分支和跳转指令,需要发出跳转指令信号和分支指令信号,从而决定PC的更新值。

   在ID阶段,控制单元对指令进行译码,根据指令的操作码和功能部分,发出相应的控制信号;根据指令中的操作数字段,控制单元给出寄存器号,从寄存器堆中读出操作数送入ID与EXE之间的流水线寄存器。如果发生数据相关,数据前置逻辑产生前置控制信号。

   在EXE阶段,控制单元给出ALU数据来源的选择信号,以及ALU的运算选择信号。

   在MEM阶段,控制单元需要给出数据存储器的读写信号,片选信号等。存储器需要向控制单元返回响应信号。

   在WB阶段,控制单元主要控制数据的流向,给出多路选择器的选择信号,选择将存储器读出的数据或ALU的运算结果写回寄存器组。

3.3 数据前推技术的设计

   对于数据竞争的检测,通过比较连续3条指令的寄存器标号,把本条指令的rs和rt及前面2条指令的操作数结果寄存器分别进行比较,比较器的输出信号传递到EXE阶段用于选择ALU操作数的来源。

 而对于LOAD指令发生的数据相关,必须等到MEM阶段完成之后才能得到有效的数据,因此发生数据相关的下一条指令,只能通过延迟一个周期才能利用数据前置技术,如果配合MIPS编译器,通过使用延迟槽技术可以解决LOAD类型的数据相关。

3.4 指令cache的实现

 系统实现了一个容量为2 KB指令Cache,每个Cache行为16 B数据,这样可以利用存储器的16 B的突发式传送。采用2路组相联方式,支持通写(Write Through)模式。由同步SRAM实现。

 数据Cache由控制模块、命中与缺失比较模块、访问内存模块、替换模块、输出模块组成。其中控制模块是整个Cache的主控部件,它控制存储器和cache协调工作:当执行单元有取指请求时,以指令的物理地址作为索引看是否命中,如果不命中则控制逻辑启动访存逻辑到内存中去取指,当指令取回时控制逻辑启动替换逻辑对指令Cache进行替换并将指令输出;如果命中,则将指令输出。

 使用VHDL来设计和实现上述各关键模块。综合后的接口信号图如图2所示。

   对关键模块和其他模块进行融合,最后得到的CPU流水线结构图如3所示。

4 系统的仿真与验证

    使用VHDL实现对各功能模块的设计,并完成功能仿真后,将设计的控制单元和数据通路的各模块进行合并,形成一个完整的嵌入式RISC CPU核,进行系统级仿真。基于系统实现的指令集编写了一个简单的测试程序。

    add    $5.$0,$0
    addi   $7,$0,1
    sw    $7,10($5)
    lw    $8,10($5)

    将指令码写入指令存储器的仿真文件,测试程序运行得到的仿真波形图如图4所示。

    每个时钟周期为10 ns,第一个时钟周期T1从10 ns处开始,根据仿真波形可以看出,在T5周期,指令sw $7,10($5)处于EXE阶段,第二条指令addi $7,$0,1处于MEM阶段,需要进行数据前推,Forward_2的值为”10”,通过对测试结果分析可以看出,数据前推成功。通过分析仿真波形图中各个输出信号的波形,根据程序的运行过程,可以判断信号波形正确,达到设计要求。

    本文给出了流水线CPU的关键模块的VHDL实现,经过逻辑综合和仿真,仿真结果表明在时序上设计的嵌入式CPU很好地满足了流水线的要求。生成位流数据文件对FPGA进行器件编程,FPGA芯片可以在50 MHz的时钟频率下稳定的运行。

关键字:嵌入式CPU  流水线  数据相关  指令Cache 引用地址:一种带Cache的嵌入式CPU的设计与实现

上一篇:一款32位嵌入式CPU的定点加法器设计
下一篇:TI C2000™ 外设资源管理器套件与免费教学 ROM

推荐阅读最新更新时间:2024-03-16 12:30

基于流水线技术的并行高效FIR滤波器设计
摘要:基于流水线技术,利用FPGA进行并行可重复配置高精度的FIR滤波器设计。使用VHDL可以很方便地改变滤波器的系数和阶数。在DSP中采用这种FIR滤波器的设计方法可以充分发挥FPGA的优势。 关键词:FIR滤波器 FPGA 流水线技术 数字滤波器可以滤除多余的噪声,扩展信号频带,完成信号预调,改变信号的特定频谱分量,从而得到预期的结果。数字滤波器在DVB、无线通信等数字信号处理中有着广泛的应用。在数字信号处理中,传统滤波器通过高速乘法累加器实现,这种方法在下一个采样周期到来期间,只能进行有限操作,从而限制了带宽。现实中的信号都是以一定的序列进入处理器的,因此处理器在一个时钟周期内只能处理有限的位数,不能完全并行处理。基于并行流水
[半导体设计/制造]
TMS320C55x的指令流水线及其效率的提高
摘要:讨论基于TCP/IP协议栈,利用8位单片机构建嵌入式WebServer的具体技术及相关实现方案;给出系统硬件原理框图和有关软件实现的代码框架结构。 关键词:DSP TMS320C55x 指令流水线 自动保护机制 引 言   TMS320C55x(以下简称C55x)是德州仪器公司推出的新一代低功耗高性能16位定点数字信号处理器(DSP)。2002年初,德州仪器公司相继推出了TMS320C55x系列中TMS320VC5510的正式版本,以及TMS320VC5509和 TMS320VC5502。C55x是在TMS320C54x(以下简称C54x)的基础上发展而来的,其源代码也与C54x的兼容。C55x达到了C54x的2倍的周
[应用]
一款32位嵌入式CPU的定点加法器设计
摘要:根据一块32位嵌入式CPU的400MHz主频的要求,结合该CPU五级流水线结构,并借鉴各种算法成熟的加法器,提出了一种电路设计简单、速度快、功耗低、版图面积小的32位改进定点加法器的设计方案,为后续浮点加法器的设计提供了很好的铺垫。 关键词:借鉴 改进 定点 加法器 从CPU的指令执行频率上看,算术逻辑单元、程序计数器、协处理器是CPU中使用频率最多的模块,而加法器正是这些模块的核心部件,几乎所有的关键路径都与之有关,因而设计一种通用于这些模块的加法器是整个CPU设计中关键的一步。为此,笔者根据32位CPU的400MHz主频的要求,结合CPU流水线结构,借鉴各种算法成熟的加法器,提出一种电路设计简单、速度快、功耗低、版
[嵌入式]
FPGA与多核CPU使嵌入式设计更灵活
随着嵌入式器件在过去数十年来的爆炸性成长,使得硬件组件及软件工具都有显著的改善。虽然有着这种成长与创新,但传统嵌入式系统的设计方法却少有进步,并逐渐变成一种障碍。有鉴于新标准与协议的快速发展,以及对产品上市压力的日益增加,嵌入式系统设计也即将发生颠覆性的典范改变。   随着硬件技术及软件工具的进步在加速成长,由整合所带来的挑战也开始浮现。如果无法妥善处理这些挑战,将会使得终端产品变得更加昂贵,并且有碍于让更多创新设计的实验、成长及上市。    标准的嵌入式架构   在一般的计算市场,标准化已带来更加稳健而耐用的操作系统、更精炼的终端应用,及基础硬件组件的进步。我们从其中所学到的经验是,从避免花在客制化硬件架构及相关软件组件的
[模拟电子]
FPGA与多核<font color='red'>CPU</font>使<font color='red'>嵌入式</font>设计更灵活
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved