首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于ARM嵌入式平台的X86译码SOC架构设计
来源:本站整理  作者:佚名  2009-06-16 14:11:14



1.3 各IP在系统中的功能
    除了两个处理器外,SoC中各IP核功能如下:翻译模块:实现将X86指令翻译成为ARM指令的功能。
    SMI:外部存储与微处理器之间的桥梁,支持RoM作为系统的非易失性存储介质,支持片外SRAM作为系统的外围高速存储。
    中断控制器:用来支持系统内部与外部的中断控制,如中断电平/边沿触发、中断电平极性与中断使能等。
    Internal Memory:片内SRAM,大小为1 KB,但可以通过修改Verilog的描述来改变其大小。
    Default Slave:用于当master访问未定义的地址空间时,给出一个应答信号。
    Retry Slave:是一个可以产生重试回应及等待命令的slave范例,若需要类似的模组,可以利用它来完成。
    Watchdog:保证系统安全的监控模块,软件需在预定的时间内访问相应的寄存器,否则硬件将产生内部信号自动复位。
    GPIO控制器:用来支持扩展外设,拓宽SoC的使用范围。
    Remap&Pause:主要分成两个处理单元,前者负责控管地址是否重新对应的机制,后者负责管理系统的省电模式。
    Timer:定时器,支持捕获、Matchout输出、外部时钟驱动。


2 X86到ARM二进制翻译模块
    该设计使用的翻译模块通过编写Verilog HDL实现,能将部分X86指令翻译成ARM指令,实现了某些X86应用程序到ARM架构的移植。图2为解码器内部结构图。

 

    该翻译模块首先从ROM中取出X86指令,翻译成ARM指令后存人RAM中,所有指令翻译完成后,翻译模块产生一个终端,使处理器执行RAM中的指令。即所有指令先翻译完成,处理器才执行,该翻译过程属于静态二进制翻译。其中Decoder是整个解码模块的核心,负责翻译指令。Decoder模块采用有限状态机控制数据通路的方式实现.根据指令的功能和寻址方式进行状态分类,然后输出ARM指令。例如,把寄存器寻址的算术指令可分为一类:
    ADD EAX,EBX
    SUB EAX,EBX
    因为这些指令的寻址方式一样,功能近似,只是操作码不一样,可以归并为一个状态,在某一状态内建立映射关系翻译成为ARM指令。
    考虑到AHB总线可能处于比较忙碌的状态,对于X86指令和翻译出的ARM指令分别设置2个FIFO。FIFO1和FIFO2各自有2个存储器,其中一个存储指令,另一个存储与指令对应的地址。对FIFO进行操作会同时对指令和地址进行操作,以保持指令和地址的对应。
    此外,ARM核需要向解码模块发送信号,通过设置Communicate模块中的寄存器控制指令译码器的工作:
    设置X86指令的起始地址;设置X86指令的终止地址;设置ARM指令的初始存放地址;设置ARM指令复杂指令段的初始地址;设置使指令解码器开始工作的标志寄存器,高电平表示工作;判断指令解码是否结束,结束后向ARM核发送中断;ARM核接收中断信号后,将标志寄存器置低,翻译模块结束本次工作。
    本文的SoC系统中没有使用DMA对X86指令和ARM指令进行存取,而是由翻译模块主动进行读和写。因而有2个Master总线接口,通过AHB _1_1interface读取X86指令,由AHB_2_1 interface将ARM指令写入RAM中。Communicate模块与总线的通信接口为Slave口,用于接收ARM核发送的4个地址,一旦接收到这4个地址,翻译模块中的start_flag信号置高,表示开始工作。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:146,398.40000 毫秒