位置:51电子网 » 技术资料 » 嵌入式系统

基于Nios II双核系统的设计与实现

发布时间:2008/5/27 0:00:00 访问次数:417

  双核处理器就是在一个处理器基板上集成两个功能相同的处理器核心,即将两个物理处理器核心整合入一个内核中。双核技术的引入是提高处理器性能的行之有效的方法。由于生产技术的限制,传统通过提升工作频率来提升处理器性能的作法目前面临严重的阻碍,高频cpu的耗电量和发热量越来越大,已经给整机散热带来十分严峻的考验。双核技术可以很好的避免这一点。增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。

  nios ii系列嵌入式处理器使用32位的指令集结构isa,完全与二进制代码兼容,它是altera公司的第二代软核嵌入式处理器,性能超过200dmips。sopcbuilder是一个革命性的系统级开发工具,可以用来构建包括处理器、存储器接口和i/o外设的嵌入式系统。使用altera公司的niosii处理器和sopc builder开发工具能快速地设计并实现资源共享的双核系统。

硬件设计

  在nios ii双核系统中,存在两种不同类型的双核系统,其中一种是资源可以共享的,叫做资源共享的双核系统,另一种则不共享资源,即处理器之间都是独立的,叫做独立的双核系统。以下是两种双核系统的介绍。

独立的双核系统

 独立的双核系统,处理器之间是完全独立的,处婵器不参与其他处理器的运算。也可以说它们是一个分开的系统。这种形式的双核系统是一种非常简单的双核系统,只是在系统中多添加一个处理器,所能提高的系统性能有限。

资源共享的双核系统

  资源共享的双核系统如图2所示,首要考虑的是资源共享的问题,因为共享的资源能被一个以上处理器所访问。决定系统中的哪些资源被共享,以及不同处理器之间如何共同使用这个资源是非常关键的问题。其中共享资源分为存储器和外设,下面分别介绍这两种情形。



外设的共享

  通常情况下,nios ii双核系统并不支持非存储设备的共享。在双核系统中外设的共享目前有相当的难度,最大的问题就是外设的中断问题。例如,当外设能够中断所有的处理器时,就没有一个可靠的办法来保证哪个处理器最先做出中断响应并进入中断服务程序,而且,如果外设被用来作为输入设备,就很难决定选用哪个处理器来接收输人的数据。

  可能存在一个非常复杂的握手系统来处理此类情况,但是nios ii hal库并不支持这种系统。所以,在nios ii中不支持外设的共享。

存储器的共享

  存资源共享的双核系统中,仔储器是最常见的共享资源。存储器的共享既能用来在多个处理器之间进行简单的状态通信,也能同时被多个处理器共同进行复杂的数据结构运算。 在资源共享的双核系统中,当存储器用来在多个处理器之间共享数据的话,必须谨慎的进行操作,因为数据是可以读也可以写的。如果一个处理器在对存储器的某一地址写数据的同时,另一处理器也在对同一地址进行读写操作的话,那么就可能发生数据冲突,进而导致程序错误,最严重的是可能造成系统的崩溃,必须使用一种机制来告知其他的处理器,以免发生冲突。系统中的硬件互斥核就能满足这个要求。

硬件互斥核

  硬件互斥核可以确保在共享资源时不发生冲突。互斥核是作为一种共享资源来使刚的,提供了一种测试和设置的操作,每个处理器在使用共享资源前,必须先测试互斥核是否可用,如果可用的话,就获得了共享资源的使用权,当处理器使用完后,释放互斥核。与此同时,另一个处理器就可以获得互斥核并使用共享资源了。如果没有这个互斥核,实现上述功能的话就需要2个单独的测试和设置指令,这时,有可能发生"死锁"的情况。

  互斥内核有一个简单的avalon从控制器接口,包含2个32位存储器映射寄存器mutex和reset。表1所列为互斥内核寄存器映射。

互斥内核有以下基本操作(假设多个处理器对一个瓦斥内核进行访问,并且每个处理器都有一个独特的标识符id):

(1) 当value字段的值为0x0000时,互斥体可用(互斥体解除锁定);否则,互斥体不可用(互斥体被锁定)

(2) mutex寄存器总是可读的。一个处埋器(或任何avalon主控制器外设)可通过读取mutex寄存器来确定其当前的状态。

(3) mutex寄存器只在特定的条件下可写。只有满足下面的其中一个条件或两个条件都满足,才能通过写操作来更改mutex寄存器的内容:

mutex寄存器的value字段的值为0;

mutex寄存器owner字段与被写入数据的owner字段相匹配。

(4) 处理器可通过将它的id写入owner字段和向value字段写入一个非零值来获取互斥体。然后处理器再通过验证owner字段来检查是否成功地获得了互斥体。

(5) 系统复位后,reset寄存器的reset位为高。该位通过向其写入1来

  双核处理器就是在一个处理器基板上集成两个功能相同的处理器核心,即将两个物理处理器核心整合入一个内核中。双核技术的引入是提高处理器性能的行之有效的方法。由于生产技术的限制,传统通过提升工作频率来提升处理器性能的作法目前面临严重的阻碍,高频cpu的耗电量和发热量越来越大,已经给整机散热带来十分严峻的考验。双核技术可以很好的避免这一点。增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。

  nios ii系列嵌入式处理器使用32位的指令集结构isa,完全与二进制代码兼容,它是altera公司的第二代软核嵌入式处理器,性能超过200dmips。sopcbuilder是一个革命性的系统级开发工具,可以用来构建包括处理器、存储器接口和i/o外设的嵌入式系统。使用altera公司的niosii处理器和sopc builder开发工具能快速地设计并实现资源共享的双核系统。

硬件设计

  在nios ii双核系统中,存在两种不同类型的双核系统,其中一种是资源可以共享的,叫做资源共享的双核系统,另一种则不共享资源,即处理器之间都是独立的,叫做独立的双核系统。以下是两种双核系统的介绍。

独立的双核系统

 独立的双核系统,处理器之间是完全独立的,处婵器不参与其他处理器的运算。也可以说它们是一个分开的系统。这种形式的双核系统是一种非常简单的双核系统,只是在系统中多添加一个处理器,所能提高的系统性能有限。

资源共享的双核系统

  资源共享的双核系统如图2所示,首要考虑的是资源共享的问题,因为共享的资源能被一个以上处理器所访问。决定系统中的哪些资源被共享,以及不同处理器之间如何共同使用这个资源是非常关键的问题。其中共享资源分为存储器和外设,下面分别介绍这两种情形。



外设的共享

  通常情况下,nios ii双核系统并不支持非存储设备的共享。在双核系统中外设的共享目前有相当的难度,最大的问题就是外设的中断问题。例如,当外设能够中断所有的处理器时,就没有一个可靠的办法来保证哪个处理器最先做出中断响应并进入中断服务程序,而且,如果外设被用来作为输入设备,就很难决定选用哪个处理器来接收输人的数据。

  可能存在一个非常复杂的握手系统来处理此类情况,但是nios ii hal库并不支持这种系统。所以,在nios ii中不支持外设的共享。

存储器的共享

  存资源共享的双核系统中,仔储器是最常见的共享资源。存储器的共享既能用来在多个处理器之间进行简单的状态通信,也能同时被多个处理器共同进行复杂的数据结构运算。 在资源共享的双核系统中,当存储器用来在多个处理器之间共享数据的话,必须谨慎的进行操作,因为数据是可以读也可以写的。如果一个处理器在对存储器的某一地址写数据的同时,另一处理器也在对同一地址进行读写操作的话,那么就可能发生数据冲突,进而导致程序错误,最严重的是可能造成系统的崩溃,必须使用一种机制来告知其他的处理器,以免发生冲突。系统中的硬件互斥核就能满足这个要求。

硬件互斥核

  硬件互斥核可以确保在共享资源时不发生冲突。互斥核是作为一种共享资源来使刚的,提供了一种测试和设置的操作,每个处理器在使用共享资源前,必须先测试互斥核是否可用,如果可用的话,就获得了共享资源的使用权,当处理器使用完后,释放互斥核。与此同时,另一个处理器就可以获得互斥核并使用共享资源了。如果没有这个互斥核,实现上述功能的话就需要2个单独的测试和设置指令,这时,有可能发生"死锁"的情况。

  互斥内核有一个简单的avalon从控制器接口,包含2个32位存储器映射寄存器mutex和reset。表1所列为互斥内核寄存器映射。

互斥内核有以下基本操作(假设多个处理器对一个瓦斥内核进行访问,并且每个处理器都有一个独特的标识符id):

(1) 当value字段的值为0x0000时,互斥体可用(互斥体解除锁定);否则,互斥体不可用(互斥体被锁定)

(2) mutex寄存器总是可读的。一个处埋器(或任何avalon主控制器外设)可通过读取mutex寄存器来确定其当前的状态。

(3) mutex寄存器只在特定的条件下可写。只有满足下面的其中一个条件或两个条件都满足,才能通过写操作来更改mutex寄存器的内容:

mutex寄存器的value字段的值为0;

mutex寄存器owner字段与被写入数据的owner字段相匹配。

(4) 处理器可通过将它的id写入owner字段和向value字段写入一个非零值来获取互斥体。然后处理器再通过验证owner字段来检查是否成功地获得了互斥体。

(5) 系统复位后,reset寄存器的reset位为高。该位通过向其写入1来

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!