历史上的今天
今天是:2024年09月24日(星期二)
2020年09月24日 | 将Zynq SoC上的两个ARM Cortex
2020-09-24 来源:elecfans
到目前为止我们摸索使用过的Zynq All Programmable SoC PS(处理器系统)部分的所有设备都是只利用了一个ARM Cortex-A9处理器内核(内核0),然而在Zynq SoC 的PS部分包含有两个处理器内核,对于很多应用程序来说我们想要利用两个处理器内核,这样才能取得最大化的性能。使用两个处理器内核处理不同的任务被称作非对称多处理机制(AMP),而且包含不同的组合方式:
在内核0与内核1上运行不同的操作系统
在内核0上运行操作系统,在内核1上执行程序代码(或者反过来)
在两个处理器内核上执行不同的程序代码
有两种多核处理的方法:对称机制和非对称机制。在我们介绍这两种方法的区别前,我们要先清楚什么是多核处理:
“多核处理是在一个系统中采用不止一个处理器内核。这可以实现同时完成多条指令的执行,然而这并不一定是必须的。”
多核处理的对称机制与非对称机制的区别如下:
对称的多核处理是当运行很多个软件任务时会将处理器负荷分配到多个处理器内核上。
非对称的多核处理机制是利用专用的处理器执行专用的应用程序或者在完全相同的处理器上执行专门的应用程序。
在接下来的及篇博客中我们将会摸索介绍Zynq SoC上的非对称多核处理机制(AMP)。但是现在我们要先了解两个应用程序代码,这两个应用程序会在不同的处理器内核上运行。
当我们要在Zynq SoC上采用非对称的多核处理机制(AMP),我们必须考虑到Zynq SoC上的两个处理器内核都有各自独占的资源,同时它们也共享一些资源。这两个处理器内核都有各自的L1指令和数据缓存、定时计数器和使用共同中断控制器的看门狗(它们有公用的中断号和自己专用的中断号)。然而Zynq SoC上的中断并不是非常简单明确的,因为PS部分的每个内核能都利用软件中断实现对自己本身、另外一个处理器内核或者同时两个处理器内核的中断,软件中断机制是通过借助中断控制器实现的。
Zynq SoC同样也用很多共享的资源,例如I/O接口外设、片上存储器(OCM)、中断控制器、L2缓存和DDR存储器中为系统留出的系统存储空间,下面的是这些资源的模块框图:

我们想要利用DDR存储器来运行这两个处理器内核,那我们必须清楚了解每个处理器内核的内存映射地址范围。地址信息是由每个应用程序的连接脚本决定的。如果我们不清楚这些映射地址信息,当应用程序在不同的内核上执行时就会干扰其他的应用程序的操作,就会出现各种错误信息,也就是我们常见到的Bug。
我们同时也要修改由SDK自动生成的文件信息 来使系统启动并运行起来。第一步是使用XAPP1079脚本修改第一阶段启动加载文件,这个脚本检查了应用程序代码和AMP设置代码。
我的打算是先创建一个简单的系统以便系统启动和运行起来后,我们可以进行一些扩展操作。第一个应用程序是使用Zynq SoC的处理器内核0通过RS232通信协议与用户实现实时通信,内核1执行的操作是控制MicroZed I/O扩展板卡上的LED灯,这两个程序的执行将不会出现互相的干扰。
接下来我们将探索怎样利用片上存储单元(OCM)建立处理器之间的通信通道,以及我们怎样共享两个处理器之间的资源。最后我们将会探索研究同时在两个处理器上运行的程序代码,研究怎样在一个或者两个处理器内核上运行操作系统。
史海拾趣
|
欢迎大家加入我们的"EDA/IC设计"QQ群!大家多支持 为了便于大家进行交流讨论,作为本论坛的版主特意建立了一个QQ交流群,群的号码是:32914962,欢迎大家踊跃加入!不要忘了推荐更多的IC设计朋友来我们的论坛和QQ群哦!希望大家能共同进步!… 查看全部问答> |
|
开发软件:QuartusII 7.2,Niosii IDE 7.2 1.定制NIOSII软核,任意级别的核都可以,要能支持JTAG 2.添加必要component,如jtaguart,onchip_mem,ecps_controler,为了稳定最好添加pll和sysid,再加几个PIO口吧,一会调试程序用,这样最简单的脱机运行环境 ...… 查看全部问答> |
|
各种放大电路的主要任务是使负载上获得尽可能大的不大真电压信号,它们的主要指标是电压放大倍数。而功率放大电路的主要任务则是,在允许的失真限度内,尽可能高效率地向负载提供足够大的功率。因此,功率放大电路的电路形式、工作状态、分析方法等 ...… 查看全部问答> |
|
在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。所谓开漏电路概念中提到的“漏”就是指MOS FET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。一般的用法是会在 ...… 查看全部问答> |
|
本人因个人爱好,用2450开发一款产品,无奈在用SD卡启动时232上DNW没有通讯,各位大虾帮忙者重酬。请留下QQ,或手机,或发到我邮箱larry_laigz@126.com… 查看全部问答> |
|
Jan 1 00:23:30 blackfin daemon.notice pppd[324]: pppd 2.4.4 started by root, uid 0 Jan 1 00:23:31 blackfin local2.info chat[326]: abort on (BUSY) Jan 1 00:23:31 blackfin local2.info chat[326]: ab ...… 查看全部问答> |
|
最近需要用DirectShow设计一个Camera应用程序,为了美化界面想扩展些组件出来,在扩展CMenu时麻烦不断,首先发现在WinCE下GetMenuItemID有Bug,对MF_POPUP类型子菜单其返回值并非文档中介绍的-1,而是菜单句柄。于是自好绕路通过GetSubMenu先判断是 ...… 查看全部问答> |
|
各位大侠!小弟初涉单片机C语言编程,我在使用430F168处理数据时用到了数学函数库里的反正弦函数,请问使用这个库函数占用多大的空间?还有就是处理速度能满足我的要求吗?(我是从串口接收的数据,波特率为9600).请各位有始之侠指教!… 查看全部问答> |
|
看了活动的介绍才了解到,DSP居然已经有30岁了,我和DSP也几乎是同龄人了。从我本科的时候开始听说有这种神奇的东西,由于当时经费有限,小小本科生没有机会去用当时来说高级的dsp,说他高级,一方面是他需要的开发器价格不菲,动不动就2k,而且当 ...… 查看全部问答> |




