到目前为止我们摸索使用过的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)建立处理器之间的通信通道,以及我们怎样共享两个处理器之间的资源。最后我们将会探索研究同时在两个处理器上运行的程序代码,研究怎样在一个或者两个处理器内核上运行操作系统。
关键字:Zynq SoC ARM Cortex
引用地址:
将Zynq SoC上的两个ARM Cortex
推荐阅读最新更新时间:2024-11-07 15:51
ARM中的链接地址为什么ARM要重定位
在考虑为什么要重定位的问题之前,我们首先要明白一下几点: 1. 链接地址的定义:我自己理解是,程序被定义的开始执行的内存地址。 2. 当ARM从nandflash启动的时候,CPU所做的工作是将nandflash中的前8K代码自动的到6410的0地址(即Stepping Stone)中去,然后从0地址开始执行程序。 3. 程序在执行过程中,用链接地址来访问全局变量。全局变量一般被存放于程序的最后面。 在程序超过8K时,如果不进行重定位,就会发生类似于下面的访问错误,这将导致程序无法正常执行。 假设我们定义程序的链接地址为0x50000000,程序从6410的0地址(即Stepping
[单片机]
μC/OS-II与ARM在中央空调机组控制器中的应用
随着中央空调的普及应用,如何对中央空调机组实施有效的控制,是许多科研人员研究的重要课题。目前国内中央空调机组控制器硬件方面主要采用8位单片机为核心处理器,这种方式由于资源有限,导致人机交互不友好、机组的实时监控性能低、整机运转难以实现多机组网联控、节能效果差 。采用RISC架构的ARM微处理器具有小体积、低功耗、低成本、高性能的特点,指令执行速度快,执行效率高,且具有丰富的片内外围电路,有利于简化系统设计,提高系统可靠性。本控制系统选择了Philips公司ARM7处理器LPC2210,移植了实时操作系统μC/OS-II,系统运行稳定可靠。 1 空调系统简介及控制要求 中央空调由集中制冷/加热站和空调机组两大部分组成。前者提供
[单片机]
基于ARM和STi5x数字网络机顶盒的设计
1 前 言 随着计算机技术的纵深发展,后PC机时代的来临,有线电视网络、互联网、电信网络的融合成为时代发展的必然趋势。但由于三网在数据传输方式上有很大的不同,所以要将三网在技术层面上融合,目前来讲还不太可能,所以要实现三网的融合,还必须借助于类似网络机顶盒(IPTV)的设备来完成三网的融合。中国有线 数字电视 标准采用的是欧洲的DVB-C标准,现在虽然市面上有数字电视机顶盒,但它们采用的都是一些企业完整的机顶盒方案,如采用菲利浦公司的DVB-C机顶盒方案,调谐器和信道解码器分别采用TDA8274和TDA10023 ,CPU采用MIPS核的PNX831X;美国ST公司的以STi5518为CPU的机顶盒方案 ,其CPU核心是ST2
[单片机]
ARM的异常中断机制
在我们平时使用计算机时我们敲击键盘,计算机会对我做出响应。这是什么原因呢?处理器又是如何响应外围请求的呢?其实这都是通过处理器的中断机制实现的。ARM又是怎样的中断机制?让我们一起探讨吧! 在ARM处理器里主要是通过3中情况在控制程序执行的: 1.流水方式执行程序,PC的值是下一条指令的地址,即每执行一条指令PC都加一个字的偏移。 2.通过跳转指令来控制程序执行。 B 跳转到指定的指令处执行。 BL 跳转执行,保存子程序地址并返回。 BX 跳转执行并切换到Thumb状态。 BLX 三种方式组合。 3.通过异常中断机制控制程序执行。 当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。在进入异常中
[单片机]
Zynq-7000 EPP: 工业电机控制应用
Zynq™-7000 EPP 实现了高性能与高灵活性的独特组合,能够充分满足当前及未来电机控制系统在高级处理和集成方面的要求。 设计人员可加快产品投放市场的时间,同时支持系统内置的可编程性,进而确保产品满足未来应用需求; Z-7010 与 Z-7020 EPP 器件之间的可扩展性使客户能够推出捆绑式产品解决方案,从而仅使用单个平台即能支持各种不同的电机类型; Zynq-7000 EPP 器件拥有电机控制(功能强大的处理器、外设、模数转换器)所需的所有组件,可为未来更加环保的工业解决方案提供低成本的集成型解决方案; 处理系统与可编程逻辑的紧密集成,能在单个器件中满足实时工业网络接口和电机控制硬件加速器的高带宽、低时延要求。
[工业控制]
ARM9硬件接口学习之UART
在没有引入UART之前,由于没有OS,我们写程序烧到开发板内执行后,并不能在程序的运行过程中打印一些提示信息告诉我们程序究竟运行了如何或者提供接口让用户去控制程序的运行路径,最后也只能通过物理现象去判断程序是否执行成功。 使用串口我们便可以实现开发板最基本的数据的发送和接收,实现同开发板的交互,控制程序的运行,并且在程序运行中打印出一些信息进行debug。实际上bootloader和kernel的控制台(nfs模式)都是通过uart实现的。由此我们可以发现uart在实际开发中是非常重要的。 1. s3c2410串口基础 S3C2410A UART详细的规格说明请参考s3c2410的datasheet。 1
[单片机]
利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境
1. 关于C语言中数据类型的长度问题 我们应该比较熟悉51系列的C语言数据类型的长度,如下表所示: 数据类型 长 度 值 域 unsigned char 单字节 0~255 signed char 单字节 -128~+127 unsigned int 双字节 0~65535 signed int 双字节 -32768~+32767 unsigned long 四字节 0~429
[单片机]
Intel前二号人物出山:开发ARM服务器芯片
Intel曾经的“二号人物”、前总裁Renée James在2015年宣布离职,她作为28年的老兵,当时随着科再奇任CEO后升至总裁,但仅仅两年后就“下课”。 后来James就没了动静,直到最近TMHW报道称,在Carlyle Group(凯雷资本)的支持下,James将领导一家新的服务器芯片公司Ampere。 不过业务就非常有趣了,居然是以ARM架构为依托,面向数据中心的大客户,这正好和James前东家Intel属于竞争关系。 当然,Ampere也并非是从零起步的,前身是AppliedMicro开发的X-Gene 3芯片。2017年初,AppliedMicro被Macom收购。随后在年尾,凯雷资本又出面拿下了Macom,等于Ja
[手机便携]