充磁机厂家
免费服务热线

Free service

hotline

010-00000000
充磁机厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

当构建niosii软核smp系统的关键间题

发布时间:2021-09-11 13:17:35 阅读: 来源:充磁机厂家

构建nios ii软核smp系统的关键间题

近年来,通过提高处理器的主频来提升处理器的性能的方法受到了工艺、能耗等方面的制约,发展缓慢,面另一方面将两个或多个独立的处理器内核封装在一个芯片内能够以较低的主频获得软高的处理器件能,因此多核处理器受到越来越多的关注。然面要充分利用多核处理器的性能还需要相关支持多核操作系统的支持,目前主流的嵌入式操作系统如linux,VxWorks和eCos等大都支持多核处理器。uc/os是源码开放、可固化、可移植、可裁剪、可剥夺的实时多任务0S内核,适用于任务多、对实时件要求较高的场合,但是遗憾的是UC/OS并不支持多核处理器。nios ii是Altera公司专为其FPGA器件设计的一款32位RISC处理器软核,处理器以软核形式实现,具有高度的灵活性和可配置性,结合Altera的开发工具Quartus Il、soPc Builder可以比较容易构建出可多核处理器平台。因此本文以Altera公司FPGA为硬件平台介绍nios ii多核smp系统的构我们希望结合不同产品进行创新建及UC/OS的smp扩展及实现。

smp系统的实现需要软件和硬件协同完成。作为硬件来说,构建smp系统解决以下间题:各个处理器唯一标识,处理器间同步互斥机制,硬件提供机制来维护CPU之间Cache内容的一致性,支持处理器间中断机制及外部中断的分配机制等。

1处理器的唯一标识

smp系统要求处理器提供一种唯一标识各个CPU的方法,以区分和指定叫5个CPU用于系统的主引导,以及把各个任务分配到指定的CPU上运行。nios ii处理器中控制寄存器组中提供一个用于标识唯一的CPU编号的寄存器ctl 5,在利用SOPC Builder构建系统时可于动分配各个CPU的唯一编号。

2处理器间的同步与互斥

处理器间的同步与互斥实际上可以归结为对临界资源的互斥操作。在单处理器结构中,主要考虑处理器内各个进程和中断服务程序之间对临界资源的互斥操作,这可以通过禁用进程调度和禁用中断来实现。在smp结构中,为实现处理器间的同步与互斥,还必须提供一种原了的读一材料的工作条件非常复杂写一修改操作提供硬件支持。读一写一修改操作能够让处理器从存储器读取一个值,将修改的值保存在高速缓存中,再将修改的值保存到存储器中,整个过程作为一次原了总线操作。原了的读一写一修改操作是互斥锁、信号量等同步互斥机制的基础。

nios ii多核处理器存储器模型是顺序存储模型,也称为强定序模型。这保证了存储器操作是以程序次序来执行的和从处理器或者I/O设备到主存储器的单次读或写操作是原了的,但是nios ii并末提供原了的读一写一修改操作指令。为实现多核之间的互斥,Altera为nios ii处理器提供了硬件的此标准在世界上具有较大的影响互斥内核(Mutex)有待精抛消除,互斥内核提供了一个协议,可确保对一个共享资源的互斥占有。

互斥内核是一个简单的Avalon从控制器接口,包含2个32们存储器映射寄存器mutex和reset, 只有当VALUE的值为0或OWNER字段与被写入数据的OWNER字段匹配mutex才可写,处理器可通过将它的ID写入OWNER字段写入和向VALUE写入一个非零值来获得互斥体。然后再通过验证0WNER字段来检查是否成功获取互斥体。

3 Cache与内存间的一致性间题

Cache在smp结构中,情况相对于单处理器系统更为复杂,因为一个CPU并不知道别的CPU会在何时改变内存的内容,从面造成Cache年N内存一致性间题。nios ii核中不提供硬件缓存同步机制,缓存在设计时用用户只能配置其有无和大小,缓存的映射机制、存取策略、内容查看等均不对用户公开。文献[2]提出解决方案,其设计思想:设计一个CCM(Cache Coherency Module)模块!临听从设备端的读写信号,当发生写时,锁存地址,并中断所有CPU,CPU根据CCM的ISR确定缓冲区中的无效行。考虑到CCM的ISR程序对系统性能的影响,可以将这部分ISR程序单放在nios ii提供的紧梢合存储器(TCIV0中。对性能要求不高系统也可简单地通过SOPC Builder禁用Cache来解决这一间题,如果是非自修改的程序(指令在执行过程中保持不变),那么指令Cache也就不存在Cache与内存间的一致间题,这时只需简单禁用数据Cache。

4 中断管理

传统的单处理器通常都采用一个外部中断控制器来解决外部设备到CPU的通信。在smp系统,每个处理器都必须有各自本地中断控制器,另外还有一个个局的中断控制器来接收来自外部设备的中断请求,并将该中断指派给某个处理器核来处理该中断。如果外部设计的中断采取静态分配,也可省去个局中断控制器,由外设直接向各个处理器中断控制器申请中断。smp系统中的中断管理主要分为三类:外部中断、内部中断、处理期间中断(IPl、)。内部中断主要有内部错误中断、软件中断等。外部中断指外部I/O提出的中断,在smp系统中,每个CPUi[Ij必须有各自的时钟定时器,用于提供系统的时钟节拍信号。处理器间中断指本处理器有向其它处理器提出中断请求的能力,处理器间中断为smp操作系统提供了请求

晋中工作服订做
晋中工作服定制
晋中工作服定做
晋中工作服设计