找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] S698P4 SoC芯片多时钟及多核调度机制的研究

[复制链接]
admin 发表于 2013-3-24 06:42:43 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 介绍了S698P4 SoC多核处理器的体系结构,及多时钟机制、多核调度机制,讨论了芯片工作时,多时钟机制及多核调度机制对其性能的影响。相关的技术在工程实践中已经得到验证,获得了良好的效果。
关键词: S698P4;并行处理;多时钟机制;多核调度机制
    由于性能上的需求,当前嵌入式系统已经不满足于使用单核处理器系统,许多设计者开始考虑多核处理。但多核处理系统在带来性能提升的同时,也面临着一系列需要考虑的问题,如数据一致性问题[1]、多时钟控制问题和多核调度问题等。如果一个多核、多任务系统无法合理处理多任务需求,无法合理分配各核间的资源及工作,多核处理的优势将得不到很好的体现,严重时甚至会出现灾难性的后果。
本文以S698P4 SoC处理器为例,介绍在多核处理器系统中,多时钟机制及多核调度机制对芯片性能的影响。
1 S698P4 SoC简介
 S698P4 SoC是基于SPARCV8架构[2]的高性能的32 bit RISC嵌入式4核处理器,采用SMP[3]“对称多处理”技术,在一个内核里集成4个功能一样的处理器核心,各CPU之间共享内存子系统及总线结构。总线竞争核仲裁由硬件自动完成,不需要用户进行设置。该处理器专为嵌入式应用而设计,具有高性能、低复杂度和低功耗的特点。
 S698P4支持多核并行处理机制[4-5],采用eCos实时嵌入式操作系统。eCos将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存[6]、I/O口和外部中断。系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上,运算速度快,数据处理量大、功耗低,性能和可靠性远高于单核处理器。
 图1为S698P4结构图,S698P4处理器内部集成了CPU0、CPU1、CPU2和CPU3 4个S698P核,每个S698P CPU内部又分别集成32 bit整形数处理单元、32 bit/64 bit浮点数处理单元及8 KB数据缓存(data cache)和指令缓存(instruction cache)。针对实时应用的嵌入式领域,S698P4提供了内部看门狗、定时器、中断控制器、通用I/O口以及串行通信接口;针对航空航天领域,S698P4提供了CAN总线接口、以太网接口以及1553B总线。同时,为了芯片调试,芯片内部还集成了硬件调试专用接口DSU。用户通过DSU可以访问CPU内部所有寄存器和存储器资源,也可访问外部所有存储器和I/O外设,为基于S698P4的硬件/软件调试提供方便[7]。
    2012110705095909385129.gif
    S698P4处理器可广泛应用于航空航天的高端电子设备、海量数据处理、大规模网络应用、复杂科学计算及大型图形建模为特征的企业或行业等领域。
2 多时钟机制
 S698P4单核最高运行速度可达到400 MHz,如果整个芯片都采用同一个时钟,则所有外设和板级设备都要求运行在400 MHz的频率上,这会增大系统设计的难度,并增加系统功耗,降低系统的稳定性。
 S698P4采用多时钟机制来平衡高速CPU内核和低速的外部设备之间的矛盾,在提高芯片性能的同时,避免对板级设备提出过高的要求。
 S698P4的时钟电路产生高速的CPU时钟CPU_CLK,CPU_CLK除了供给4个CPU内核使用外,还经过4分频电路,产生HCLK供给AMBA总线和外设使用。
 S698P4 4个内核采用同样的时钟,它们全部从CPU_CLK得来,并且与CPU_CLK同频、同相。
 CPU_CLK、CPU0_CLK到CPU3_CLK和HCLK之间的相位关系如图2所示。
    2012110705095917197130.gif
   
 HCLK的频率是CPU_CLK的四分之一。在CPU需要访问AMBA总线和外设时,信号的时序需要按照HCLK的时序进行。如果CPU_CLK运行在400 MHz,则HCLK只需要运行在100 MHz。在板级设备上,普通的SDRAM即可满足要求。对于其他慢速设备,则可以通过配置存储器控制器寄存器的读写等待周期解决。
3 多核调度机制
3.1 S698P4多核中断控制

 S698P4在一个处理器上汇集了4个CPU,各CPU之间共享一个操作系统、内存子系统、总线结构和I/O系统等。同时使用多个CPU时,从管理的角度来看,它们的表现如同一台单机。正常启动后,所有的CPU无主从之分,都可以平等地访问内存、I/O和外部中断。S698P4各CPU之间的通信是通过多核中断控制器(MP IRQCTRL)的中断来实现的,其结构如图3所示。
    2012110705095925009131.gif
    S698P4中的每个CPU都可以通过多核中断控制器向其他CPU发中断请求,每个CPU都可以响应其他CPU的中断请求。在多核中断控制器中,有一个称为多处理器状态寄存器(Multi-processor status register),其后4位(STATUS[3:0])分别控制4个CPU的状态,写入1,其相应的CPU就会被激活;写入0,其相应的CPU就会进入休眠。S698P4启动时,CPU有主CPU(CPU0)和从CPU之分,启动完之后,所有CPU不分主从。CPU0的启动顺序和其他CPU的启动顺序是不同的,上电或者软复位后,S698P4先启动CPU0,其他CPU处于power down状态。在CPU0初始化完成后,通过设置多处理器状态寄存器启动、初始化其他CPU,之后所有CPU无主从之分。多处理器状态寄存器如图4所示。
2012110705095928134132.gif
    在SMP系统中,系统资源被系统中所有处理器共享,工作负载能够均匀地分配到所有可用处理器之上。并且因为结构共享存储器、统一地址空间,使得系统编程比较容易。系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。
3.2 S698P4中断源处理
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-25 13:13 , Processed in 0.056277 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表