基于or1200微处理器的NoC系统设计
发布时间:2020-08-25 02:04
【摘要】: 由于系统芯片中IP核数目的逐渐增大,片上通信结构逐渐成了整个SoC的性能瓶颈,基于共享总线的SoC通信结构具有无法克服的局限性,这就对传统的共享总线片上通信系统提出了严峻的挑战。这时,片上网络(Network on chip)做为一种新的解决途径被提出来了。片上网络的可升级性(Scalable)和易扩展性很好的满足了新设计的要求。片上网络逐渐发展成为片上总线之外的一种新的通信结构。 本文设计一种片上互联系统,其中使用了OpenCores组织提供的开源IP核,包括处理器核OpenRISC1200,UART IP核和Conbus总线IP核。由于本文侧重于互联系统本身的建立,处理器核没有配置缓存和MMU。为了与OpenRISC体系兼容,本文设计的IP核都是基于WISHBONE标准,其中包括了存储器IP核和控制程序执行的同步部件。 本文的网络拓扑使用的是树型拓扑结构,路由算法使用的是确定路由的源路由方法,交换机制使用的是存储转发,数据流控制方面,通过在转发过程中不握手使数据包不会阻塞,从而防止死锁,同时通过设置足够的缓存来防止数据包的丢失。由于缓存大小是资源占用中一个很重要的因素,通过对最坏情况的讨论本文对缓存的大小设置进行了详细讨论。 通过对两种树型结构和总线结构在覆盖面积和性能上作了比较,可以看到NoC在牺牲了覆盖面积的同时获得了性能上的提高。最后指出了系统中的不足,分析了影响程序并行性的因素,并给出了解决策略。
【学位授予单位】:大连理工大学
【学位级别】:硕士
【学位授予年份】:2008
【分类号】:TP332;TN47
【图文】:
这些虚拟通道通过时分复用一条物理信道。如图2.5所示,一个12个flit的缓存被划分为4条虚拟通道,每条虚拟通道有3个flit的缓存。在虫洞路由网络中引入虚拟通道技术,如图2.6所示,每个数据包就将占用一条虚拟通道,如果一个数据包被阻塞了,其他的数据包还可以通过剩下的虚拟通道到达自己
器连接lP核和外部网络的接口,它把计算和通信过地址和一些控制信号来通信的,网络中的通信lP核要传输的地址,数据和控制信号封装成包程很简单但很重要,IP核的接口和网络传输要提核越能够与网络兼容,适配器的设计就会越简单端要与网络相连,网络要提供一个定义通信规范连,IP核提供的接口是WISHBONE兼容的。由决定了要为每种IP核分别设计一种适配器。网络适配器从设备发送一个请求时,它先把数据发送给适配,发送到网络上。数据包的具体结构可以参照
HellO3夔图4.1正常执行情况 Fig.4.1Normalresul-多核系统中的每个处理器显然都需要一个单独的栈,这需要在reset代码中设置。通过信号量保证一次只有一个处理器设置自己的栈,默认栈指针变量加上一个偏移量得到一个唯一的栈指针,然后计算新的偏移量,保存以后信号量转移到下一个处理器。在实际程序中,由于没有操作系统,所以也就没有虚拟内存,线程或是其它措施来管理程序,程序的管理只能依靠程序自己的结构。这里要防止所有的处理器都执行相同的代码。在Hello一 UART的测试程序中,我们使用了一个变量和信号量来解决。首先使用信号量来保证在任意的时间只有一个处理器可以访问这个变量,case语句用这个变量决定不同的处理器执行不同的任务。在这里每个任务是使UART输出“Hello”加上一
本文编号:2803121
【学位授予单位】:大连理工大学
【学位级别】:硕士
【学位授予年份】:2008
【分类号】:TP332;TN47
【图文】:
这些虚拟通道通过时分复用一条物理信道。如图2.5所示,一个12个flit的缓存被划分为4条虚拟通道,每条虚拟通道有3个flit的缓存。在虫洞路由网络中引入虚拟通道技术,如图2.6所示,每个数据包就将占用一条虚拟通道,如果一个数据包被阻塞了,其他的数据包还可以通过剩下的虚拟通道到达自己
器连接lP核和外部网络的接口,它把计算和通信过地址和一些控制信号来通信的,网络中的通信lP核要传输的地址,数据和控制信号封装成包程很简单但很重要,IP核的接口和网络传输要提核越能够与网络兼容,适配器的设计就会越简单端要与网络相连,网络要提供一个定义通信规范连,IP核提供的接口是WISHBONE兼容的。由决定了要为每种IP核分别设计一种适配器。网络适配器从设备发送一个请求时,它先把数据发送给适配,发送到网络上。数据包的具体结构可以参照
HellO3夔图4.1正常执行情况 Fig.4.1Normalresul-多核系统中的每个处理器显然都需要一个单独的栈,这需要在reset代码中设置。通过信号量保证一次只有一个处理器设置自己的栈,默认栈指针变量加上一个偏移量得到一个唯一的栈指针,然后计算新的偏移量,保存以后信号量转移到下一个处理器。在实际程序中,由于没有操作系统,所以也就没有虚拟内存,线程或是其它措施来管理程序,程序的管理只能依靠程序自己的结构。这里要防止所有的处理器都执行相同的代码。在Hello一 UART的测试程序中,我们使用了一个变量和信号量来解决。首先使用信号量来保证在任意的时间只有一个处理器可以访问这个变量,case语句用这个变量决定不同的处理器执行不同的任务。在这里每个任务是使UART输出“Hello”加上一
【参考文献】
相关期刊论文 前1条
1 葛晨阳,徐维朴,孙飞;IP复用技术的研究[J];微电子学;2002年04期
本文编号:2803121
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2803121.html