权威网站发布平台/优化建议

权威网站发布平台,优化建议,长沙网站推广,手机商城网站系统在多 CPU 架构中,处理器之间可以对共享数据进行操作。Snoop control uint (SCU) 模块用于确保每个处理器都在最新的数据拷贝上运行,从而保持缓存一致性。通用中断控制器 Generic interrupt controller (GIC) 使用优先级的思想,管理 CPU 中断信…

在多 CPU 架构中,处理器之间可以对共享数据进行操作。Snoop control uint (SCU) 模块用于确保每个处理器都在最新的数据拷贝上运行,从而保持缓存一致性。通用中断控制器 Generic interrupt controller (GIC) 使用优先级的思想,管理 CPU 中断信号的优先级。本文主要介绍 Zynq SCU 和 GIC 的基本结构与工作原理。

Snoop control unit (SCU)

        在多 CPU 架构中,处理器之间可以对共享数据进行操作。Snoop control uint (SCU) 模块用于确保每个处理器都在最新的数据拷贝上运行,从而保持缓存一致性。

        在前面 Zynq 芯片介绍一文中,我们了解到 Zynq 7000 SoC 具有单核或双核 ARM Cortex-A9 处理器,因此 Zynq 双核器件需要 SCU 模块。

        从上图可以看到,Zynq APU 架构中,SCU 位于处理器与 L2 Cache 之间。SCU 将两个 Cortex-A9 处理器连接到存储器子系统(On-chip RAM),并管理 L1 Cache 与 L2 Cache 之间的数据一致性。

        Zynq SCU 通过 CCB 总线与处理器进行通信。同时,SCU 模块还包含一个 ACP 接口(本质是 64-bit AXI 从接口),为 Zynq PL 提供接入。

        需要注意的是,Zynq 处理器不保证 L1 Cache 之间的一致性,因为处理器不能直接修改 L1 Cache 的内容。


General interrupt controller (GIC)

        在 CPU 工作过程中,中断是一种重要的技术,用于暂停 CPU 正在执行的程序,转而执行优先级更高的另一段程序。中断使 CPU 具备并发性、提高 CPU 的实时处理能力,同时使系统满足实时处理要求。

        中断控制器 Generic interrupt controller (GIC) 使用优先级的思想,用于管理中断信号的优先级。优先级是介于 1 和 31 之间的整数,默认情况下 1 是最高优先级的中断源。

名词解释

        PPI: CPU Private Peripheral Interrupts, CPU 专用外设中断
        SGI: Software Generated Interrupts, 软件生成中断
        SPI: Shared Peripheral Interrupts, 共享外设中断

        每个 CPU 具有一组私有外设中断 (PPI),PPI 包括全局计时器、私有看门狗计时器、私有计时器和来自 PL 的 FIQ/IRQ。PPI 的触发类型是固定的,因此,ICDICFR1 寄存器是只读的。

        每个 CPU 包含 16 个软件生成中断 (SGI),SGI 被连接到每个处理器,通过写入通用中断控制器 (GIC) 中的寄存器来生成 SGI,通过读取ICCIAR (中断确认) 寄存器或将 1 写入 ICDICPR (中断清除待决) 寄存器的相应位来清除中断。

        共享外设中断 (SPI) 由 PS 和 PL 中的各种 I/O 和存储器控制器生成,它们被连接到每个处理器,来自 PS 的外设中断也被连接到 PL。

以上三种中断信号需要经过 GIC 才能到达 CPU。

        通用中断控制器 (GIC) 为处理器管理中断的启用、禁用、屏蔽与优先级,GIC 确保针对 CPU 的中断一次只能由一个 CPU 进行。所有中断源都由唯一的中断 ID 号标识,所有中断源都有自己的可配置优先级和目标 CPU 列表。

GIC 的主要功能如下:
        1)启用、禁用指定中断;
        2)中断确认(interrupt acknowledging);
        3)绑定中断回调函数;
        4)分配中断优先级。

使用中断时,需要声明 xscugic.h 头文件,并编写中断回调函数。

static int TimerSetupIntrSystem(XScuGic *IntcInstancePtr,XScuTimer *TimerInstancePtr, u16 TimerIntrId)
{int Status;XScuGic_Config *IntcConfig;/** Initialize the interrupt controller driver.*/IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);if (NULL == IntcConfig) {return XST_FAILURE;}Status = XScuGic_CfgInitialize(IntcInstancePtr, IntcConfig,IntcConfig->CpuBaseAddress);if (Status != XST_SUCCESS) {return XST_FAILURE;}/** Connect the device driver handler.*/Status = XScuGic_Connect(IntcInstancePtr, TimerIntrId,(Xil_ExceptionHandler)TimerIntrHandler,(void *)TimerInstancePtr);if (Status != XST_SUCCESS) {return Status;}/** Enable the interrupt for the device.*/XScuGic_Enable(IntcInstancePtr, TimerIntrId);/** Enable the timer interrupts for timer mode.*/XScuTimer_EnableInterrupt(TimerInstancePtr);return XST_SUCCESS;
}static void TimerIntrHandler(void *CallBackRef)
{XScuTimer *TimerInstancePtr = (XScuTimer *) CallBackRef;/** Check if the timer counter has expired.*/if (XScuTimer_IsExpired(TimerInstancePtr)) {XScuTimer_ClearInterruptStatus(TimerInstancePtr);TimerExpired++;if (TimerExpired == 3) {XScuTimer_DisableAutoReload(TimerInstancePtr);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring系统学习 - Spring入门

什么是Spring? Spring翻译过来就是春天的意思,字面意思,冠以Spring的意思就是想表示使用这个框架,代表程序员的春天来了,实际上就是让开发更加简单方便,实际上Spring确实做到了。 官网地址:ht…

【Mac】XMind for mac(XMind思维导图)v24.04.10311软件介绍和安装教程

软件介绍 XMind for Mac是一款功能强大的思维导图软件。它具有以下主要特点: 1.多样化的思维导图功能:XMind for Mac提供了丰富的思维导图编辑功能,用户可以创建各种类型的思维导图,包括组织结构图、逻辑图、时间轴图等&#xf…

fluent UI v9版本Dialog右上角x按钮聚焦问题解决

右上角x按钮聚焦效果展示 第一次点击不会聚焦,第二次或多次点击会出现这种情况。如果多个地方公用一个页面里,这个页面包含这个组件,那其它页面刚打开弹框就是聚焦状态,是个样式的问题。 解决: import * as React fr…

【Vue3】自定义组件directiveapp.use()

历史小剧场 崇祯很勤政,崇祯并非王国之君,弘光很昏庸,弘光活该倒霉,几百年来,我们都这样认为。 但我们之所以一直这样认为,只是因为有人这样告诉我们。 之所以有人这样告诉我们,是因为他们希望我…

比较与深浅克隆

1.比较 (1)Comparable接口:(重写compareTo方法) 由于它是一个接口,而且在这个接口中只有一个compareTo方法,所以所有实现该接口的类都需要重写。这个compareTo方法相当于制定一个比较标准&…

pyinstaller将py文件打包成exe

pyinstaller将py文件打包成exe 一、为什么需要将python文件打包成exe文件?二、具体操作步骤一、为什么需要将python文件打包成exe文件? python文件需要在python环境中运行,也就是需要安装python解释器。有时我们自己写的python程序需要分享给自己的朋友、同事或者合作伙伴,…

封装一个websocket,支持断网重连、心跳检测,拿来开箱即用

封装一个websocket,支持断网重连、心跳检测 代码封装 编写 WebSocketClient.js import { EventDispatcher } from ./dispatcherexport class WebSocketClient extends EventDispatcher {constructor(url) {console.log(url, urlurl)super()this.url url}// #soc…

STM32_FSMC_HAL(介绍)

FSMC(Flexible Static Memory Controller)是STM32微控制器中的一种内存控制器,它允许微控制器与外部存储器接口,如SRAM、NOR Flash、NAND Flash和PSRAM等。FSMC特别适用于需要高速数据交换和大量数据存储的应用场景。 典型应用&a…

react跨组件通信Context

案例&#xff1a;现在有个父-子-孙组件 需要进行组件通信 import { useState } from "react"; // 创建上下文 const CountContext React.createContext();//子组件 const SonComponent (props) > {return (<div><h2>子组件</h2><Grandson…

【机器学习】让大模型变得更聪明

文章目录 前言1. 理解大模型的局限性1.1 理解力的挑战1.2 泛化能力的挑战1.3 适应性的挑战 2. 算法创新&#xff1a;提高模型学习和推理能力2.1 自监督学习2.2 强化学习2.3 联邦学习 3. 数据质量与多样性&#xff1a;增强模型的泛化能力3.1 高质量数据的获取3.2 数据多样性的重…

#1 深度优先搜索

深搜思想 DFS其实是针对图论的一种搜索算法&#xff0c;由一个节点出发&#xff0c;不撞南墙不回头式的遍历所有的节点。 如先遍历1&#xff0c;沿&#xff08;1,2&#xff09;遍历2&#xff0c;再沿&#xff08;2,4&#xff09;遍历4&#xff0c;撞南墙&#xff08;边界条件…

XSS另类攻击(四)kali系统beef-xss安装和使用

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将信息做其他用途&#xff0c;由Ta承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 1、环境说明 kali系统&#xff0c;ip&#xff1a;192.1…

k8s的ci/cd实践之旅

书接上回k8s集群搭建完毕&#xff0c;来使用它强大的扩缩容能力帮我们进行应用的持续集成和持续部署&#xff0c;整体的机器规划如下&#xff1a; 1.192.168.8.156 搭建gitlab私服 docker pull gitlab/gitlab-ce:latest docker run --detach --hostname 192.168.8.156 --publ…

SAP 生产订单批量报工(代码分享)

最近公司一直在对成本这块的业务进行梳理,影响比较大的就是生产这块的报工,经常会要求要批量的冲销报工,然后在继续报工,来调整生产订单的实际工时,前面的博客中已经给大家分享了批量冲销生产订单的代码, 下面给大家分享一下生产订单批量报工的代码 首先流程制造和离散制…

【算法】过桥

✨题目链接&#xff1a; 过桥 ✨题目描述 ✨输入描述: 第一行一个数n(2≤n≤2000) 接下来一行n个数a[i](1≤|a[i]|≤2000)表示浮块上的数字 ✨输出描述: 输出一行&#xff0c;表示对应的答案 ✨示例1 &#x1f4cd;输入 4 2 2 -1 2 &#x1f4cd;输出 2 &#x1f4cd;说明 1…

HNCTF 2024 ez_pecp 冰蝎+CS流量分析

考点:冰蝎webshell流量分析CS4.x流量解密 给了两个 流量包 第一个 ctf1.pcapng 查看其HTTP请求 而在CS中流量特征是基于tls协议 http-beacon 通信中&#xff0c;默认使用 GET 方法向 /dpixel 、/__utm.gif 、/pixel.gif 等地址发起请求&#xff0c;而且下发指令的时候会请求 …

如何使用浔川AI翻译机?——浔川AI社

1 前言 对于“如何使用浔川AI翻译机&#xff1f;”这个问题&#xff0c;我们官方 总结出以下结论&#xff1a; 首先&#xff1a; 复制以下代码&#xff1a; # -*- coding: utf-8 -*- import tkinter as tk import tkinter.messagebox import pickle import random# 窗口 wi…

Jmeter压测中遇到的问题汇总

Jmeter使用过程问题总结 一、某个请求的请求体中有中文字段&#xff0c;执行后该请求无法成功 解决方法&#xff1a;在取样器的内容编码处加上UTF-8 二、遇到接口请求后报401&#xff0c;请求未授权&#xff08;或者信息头管理器只写了cookie请求不成功&#xff09; 解决方…

记录深度学习GPU配置,下载CUDA与cuDnn,安装tensorflow

目标下载: cuda 11.0.1_451.22 win10.exe cudnn-11.0-windows-x64-v8.0.2.39.zip Anaconda的安装请看别的博主的,这里不再赘述 看看自己电脑的cuda 方法一:打开英伟达面板查看 方法二:使用命令行 随便找个文件夹,在顶部路径输入"cmd" 输入下面命令 nvidia-smi 我…

小程序配置自定义tabBar及异形tabBar配置操作

什么是tabBar&#xff1f; 小程序的tabbar是指小程序底部的一组固定导航按钮&#xff0c;通常包含2-5个按钮&#xff0c;用于快速切换小程序的不同页面。每个按钮都有一个图标和文本标签&#xff0c;点击按钮可以切换到对应的页面。tabbar通常放置在小程序的底部&#xff0c;以…