双MicroBlaze软核处理器的SOPC系统设计(一)

出处:电子爱好者博客 发布于:2013-04-24 10:16:34

  引 言:随着时代的发展,单核片上可编程系统SOPC(SystemOn a Programmable Chip)解决复杂问题的能力与处理速度已很难满足用户的需求,面向多处理器SOPC系统的设计成为片上系统发展的必然趋势。具有高密度、大容量逻辑的FPGA(Field Programmable Gate Array)的出现使得高性能片上多处理器的设计成为现实。目前,片上多核系统的设计已有一定发展,但在处理器间通信和中断方面仍需进一步的研究。本文在处理器间通信和中断控制方面进行了深入的研究。

  MicroBlaze是一个被优化过的可以在Xilinx公司FPGA中运行的软核处理器,可以和其他外设IP核一起完成可编程系统芯片的设计。它具有运行速度快、占用资源少、可配置性强等优点,广泛应用于通信、高端消费市场等领域。MicroBlaze处理器采用RISC(Reduced InstructionSet Computer)指令集结构和哈佛存储结构,指令、数据总线位宽均为32位。本文MicroBlaze处理器采用面积优化,流水线分为3级,即取指、译码和执行,减少了硬件开销。

  1 系统设计

  1.1 双MicroBlaze SOPC系统结构

  双MicroBlaze SOPC系统结构图如图1所示。从图1中可知,整个SOPC系统可以分为两个处理器子系统。系统采用两个PLB(Processor Local Bus)v46总线作为系统的通信结构,所有的模块都是直接或间接地连接到这两个总线上。两个总线上均挂有用于处理器间通信和同步的核,即Mailbox和Mutex,因此两个处理器并不是完全独立的。表1列出了SOPC系统包含的主要模块。

  表1中的BRAM 有两种用途:一是作为单个处理器的私有存储器用来存储指令和数据,它通过存储器局部总线LMB与处理器相连;二是作为两个处理器之间的共享存储器(Shared Memory)用作通信模块进行数据传输。

  它所传输的数据量比Mailbox大很多,特别是在传输信息量大于千字节时,共享存储器是常用的通信模块。

图1 双MicroBlaze SOPC系统结构图

表1 SOPC系统的主要模块

 

1.2 硬件设计

1.2.1 硬件结构

图1所示的SOPC系统的整体结构不仅和处理器的数目有关,还和系统中模块的配置及功能有关,外部存储器和外围设备的不同配置都会影响系统的结构和功能。

具体如下:

①SOPC系统通过各自独立的PLBv46总线隔离两处理器子系统,可以确保两个处理器系统在执行各自的处理器事务时不会相互干扰。

② 共享模块(例如MPMC),采用多端口结构,这些多端口模块使多个处理器在访问共享模块时可以并行进行。

③ 两个独立的MicroBlaze处理器Mb_0和Mb_1,通过共享部件连接在一起,这些共享部件使得两个Micro-Blaze处理器之间以各种方式通信。

④ 此SOPC系统中有两个MicroBlaze处理器软核,其中任何一个MicroBlaze都可以灵活地被其他类型的处理器所代替,比如PowerPC,因此处理器的选择是非常灵活的。

⑤ 两个处理器可以共享互斥访问设备,比如串口UART、串行外设接口SPI(Serial Periphieral Interface)等,这种情况需要在没有直接连接此外设的总线和直接连接此外设的总线之间提供一个系统总线桥。

⑥ 关键的外围设备是外部存储控制器MPMC,它多提供8个端口,可以通过XCL(Xilinx Cache Link)连接处理器局部存储器(BRAM),通过PLBv46总线连接到系统中,因此,可以将1~4个处理器同时连接到MPMC控制器上。

⑦ 两个处理器之间的Mailbox和Mutex有简单通信的功能,主要体现在处理器之间的通信和同步上。

1.2.2 存储器映像

当程序没有被加载或者运行的时候,它以文件的形式存放在硬盘上。当它被到MPMC内存中的时候,系统会自动从MPMC内存中划分出一段区域,用来将这个磁盘上的文件映射到内存相应的位置上。此时这块内存中的数据就是磁盘文件的一个拷贝。存储器映像就是指和被加载的磁盘文件相对应的一块内存区域。由于MPMC存储器和外围设备是统一编址的,两者的地址范围不可能重叠,因此直接或者间接连接到处理器上的外围设备地址的分配决定了外部存储器的地址空间。

一般而言,当多个处理器共用一条总线时,存储器、外围设备和共享元素是密不可分的,在本文设计的处理器系统中,每一个处理器都有自己独立的系统总线,因此,所有的存储器和外围设备与共享元素都是分开的。也就是说,不同总线上的相同外围设备可以有相同的地址范围。在每一个处理器子系统中,为了能够运行可执行文件,对存储器映像有一些要求。每个处理器都必须将自己的可执行文件加载到各自私有的MPMC地址空间中,可执行文件加载地址不能重叠。在私有存储器里必须有各自的复位和中断存储器映像,这种私有存储器可以通过本地存储器接口(XCL)或者PLBv46总线接口连接起来。一旦私有存储器与其他总线连接完毕,XPS的地址发生器会为每一个MicroBlaze处理器子系统(包括外围设备和存储器)生成适当地址范围的存储器映像。

1.2.3 处理器之间的通信与同步

在Xilinx SOPC系统设计中,常用的处理器之间的通信模块是Shared Memory和Mailbox,同步控制模块是Mutex,调试模块是MDM。

Shared Memory共有两个通信端口,它通过存储器控制端口分别连接到系统的两条PLBv46总线上。系统通过处理器对Shared Memory模块进行读写操作完成通信。

Shared Memory可以由片上本地存储器或者外部存储器构成。当信息传输量比较大时,Shared Memory的异步传输效率比较高,它支持零拷贝或者原状信息队列拷贝。

利用Mailbox也可以进行处理器之间的通信。关于Mailbox,有如下一些特征描述:

① Mailbox可以认为是处理器之间的类似于TCP/IP的一个简单的通信协议。

② 处理器之间通过Mailbox通信有同步和异步之分:同步主要体现在处理器之间的通信上,接收者实时地读取Mailbox中的数据;异步主要体现在处理器之间的中断上,发送者通过Mailbox发送中断信息给接收者,接收者收到中断后反馈给发送者。

③ 每一个Mailbox核都有一个FIFO和一个双端队列,分别用来发送和接收信息,用户可以根据自己的需要对它们的深度进行配置,主要通过分布式的RAM 或者BRAM 来实现。

④ Mailbox共有两个端口分别连接到系统的两个总线上来实现处理器之间的通信。

⑤ Mailbox软核比较适合传输信息量小于100字节的信息,发送者需要从本地或者外部存储器拷贝整个信息到FIFO,然后,接收者同步地拷贝整个信息到自己的存储器中,因此,Mailbox不适合传输信息量较大的信息,这些将会耗费掉处理器的一些时钟周期。

⑥ 处理器间的中断是指一个处理器去中断另一个处理器的行为,通过Mailbox的异步通信来实现,处理器发送中断就是往Mailbox里写入一个信息,然后Mailbox通过中断控制器对接收者产生一个中断,接收者收到中断以后会反馈给发送者,当Mailbox中没有新的信息时,中断为无效状态。

本文在SOPC系统设计中,用到的同步控制模块是Mutex。此模块主要有以下特点:

① 存储器映像以后,Mutex寄存器的数量可配置这些寄存器中有分别存储数据和处理器ID的区域,Mutex寄存器中的数据和ID分别通过Mutex进行测试和设置。

② 复位时,Mutex的值变为0,它表示Mutex处于开锁状态(UNLOCK),并且其中的处理器ID号没有赋值,当Mutex处于锁定状态(LOCK)时,其中的值保持不变。

③ 处理器通过软件赋值的方式将各自的处理器ID号写入到相应的Mutex寄存器中,从而获得Mutex的使用权,当两个处理器同步访问Mutex寄存器时,每个处理器都会读取Mutex寄存器中的值,然后和自己的ID号进行比较,比较匹配的处理器才可访问Mutex寄存器,修改其中的数据。

MicroBlaze核通过处理器调试口与MDM(MicroprocessorDebug Module)调试模块相连。调试模块MDM可以调试系统中的每一个处理器。MDM 的特点如下:

① MDM 的调试端口数目是可配置的,多可以达到8个。

② MDM 提供一个JTAG UART接口通向系统中的某个处理器,这个UART接口是通过PLBv46总线接口连接到处理器上的。

③ MDM 不会自动地调试每个处理器,用户必须通过输入调试命令来进行选择性的调试。

 

相关资料:

双MicroBlaze软核处理器的SOPC系统设计(二)

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!