- 博客(64)
- 资源 (12)
- 收藏
- 关注
原创 GIC700组件
GIC700是先进的中断控制器架构,主要由三大核心组件构成:Distributor(GICD)、GIC Cluster接口(GCI/GICR)和中断翻译服务(ITS)。
2025-06-07 19:07:01
568
原创 GIC700概述
GIC700包含几个重要的块,它们组合在一起工作,在系统中创建一个体系结构兼容GICv3、GICv3.1、GICv4的实现。Distributor(GICD):gicd是GIC交互以及实现SPIs和LPIs功能的中心组件。它对除了GITS- TRANSLATER寄存器的整个GIC编程模型负责。在支持GICv4.1架构的实现中,gicd还会管理vSGIs和vPEs。gicd还维护multichip下有关SPI一致性的寄存器空间。chip上所有核的LPI功能都被组合到gicd内的单个cache中。
2025-06-07 13:20:21
629
原创 GIC600 Wake Request
wake request模块包含针对芯片每一个core的架构定义的唤醒信号。它是一个独立的模块,可以放置在远离GICD的位置,如有必要,可置于系统控制处理器旁边。wake request模块将 AXI4-Stream 唤醒请求转换为针对每一个core的一根wake request线。每根线都连接到系统电源控制器。下图展示了唤醒请求模块。
2025-06-07 12:52:44
671
原创 GICv3-PMU
GIC600中包含了一个pmu组件,用于对chip上的gicd和its中的关键事件进行计数。gicr的事件不通过GIC中的pmu进行追踪。PPI和SGI中断可以通过核的中断服务函数进行计数。pmu中共有5个计数器,每一个计数器都有快照功能以及溢出中断功能。安全与非安全中断是一起计数的,所以非安全的软件在默认情况下,是无法访问GICP(pmu)寄存器空间。然而,安全软件可以决定是否允许非安全的访问。可以通过GICD_SAC.GICPNS比特位或者将gicp_allow_ns信号线tie 1实现。
2025-06-07 11:31:53
347
原创 GIC流协议接口
GIC流协议是ARM架构中用于连接中断路由基础设施(IRI)与处理单元(PE)的通信接口。该协议基于双向AXI4-Stream接口实现,包含下游(Redistributor到CPU接口)和上游(CPU接口到Redistributor)两个通道。
2025-06-05 22:32:04
508
原创 GICv3电源管理
摘要:GICv3架构允许CPU接口与PE位于同一电源域,而Redistributor可位于不同域。当PE和CPU接口断电时,GIC支持通过中断唤醒。ARM建议避免在PE无法处理中断时配置唤醒机制。电源管理需通过设置GICR_WAKER寄存器控制:ProcessorSleep=1时进入静息状态,ChildrenAsleep=1表示接口静止。关键操作包括断电前等待ChildrenAsleep=1,上电后重置ProcessorSleep=0。不当配置可能导致不可预测后果,特别是对寄存器的不合法访问。
2025-06-04 23:33:02
377
原创 GIC v3 & v4 虚拟化架构
GIC虚拟化支持摘要 ARMV8-A和GICv3/4架构对虚拟化提供了硬件支持。GICv3.x和GICv4.1主要在vPE级别上支持虚拟化,将CPU接口分为物理接口、虚拟化控制寄存器和虚拟接口三部分。虚拟中断通过List寄存器管理,并可绑定物理中断状态。GICv3.1扩展了对安全状态虚拟化的支持。GICv4.1新增直接注入虚拟中断功能,通过vPEID标识和基于内存的表管理虚拟中断状态,减少对管理程序的依赖,提升性能。整体架构通过硬件虚拟化支持,配合管理程序软件,实现了高效的虚拟机中断处理机制。
2025-06-03 23:21:54
1660
原创 ARM GIC V3概述
边沿触发:在检测到一个中断信号的上升沿时被断言,然后无论该信号的状态如何都会保持断言,直到该中断被软件确认。电平触发:只要中断信号的电平处于活动状态,它就会被断言。只要电平不活动,就会解除断言。
2025-06-03 22:54:51
1125
原创 SystemVerlag——功能覆盖率
“覆盖率”是衡量设计验证完成程度的一个通用词。随着测试遂步覆盖各种合理的组合,仿真过程会慢慢勾画出你的设计情况。覆盖率工具会在仿真过程中收集信息,然后进行后续处理并得到覆盖率报告。你通过这个报告找出覆盖上的盲区.然后修改现有测试或者创建新测试来填补这些育区。这个过程可以一直迭代进行,直到你对覆盖率满意为止。衡量验证进展的最简易的方式是使用代码覆盖率。这种方式衡量的是多少行代码已经被执行过(行覆盖率),在穿过代码和表达式的路径中有哪些已经被执行过(路径覆盖率).哪些单比特变量的值为0或1(翻转覆盖率),以及状
2022-09-26 23:31:33
1092
原创 SystemVerilog——线程以及线程之间的通信
发生器需要创建很多事务并且传递给驱动器的情况下,如果仅仅使用发生器线程去调用驱动器中的任务,那么发生器需要知道到达驱动器任务的层次化路径,这样会降低代码的可重用性。如果正确的总线地址来得足够早,则wait线程先完成,跳出join-any线程,然后disable结束剩余的线程,其中带时延的display线程就没有执行。否则,会一直等到事件被触发为止。如果在某个任务内部禁止该任务,这就像是任务的返回语句,但是这也会停止所有由该任务启动的线程,如果改任务已经被多个线程调用,禁止其中的一个将导致它们全部被禁止。
2022-09-26 23:19:13
856
原创 SystemVerilog——随机化
随着设计变得越来越大,要产生一个完整的激励集合来测试设计的功能也变得越来越难。编写定向的测试集来检查所有功能项变得不太可能。解决的办法是采用受约束的随机测试法(CRT)自动产生测试集。准备CRT的环境要比准备定向测试集的环境复杂。简单的定向测试集只需要施加激励,然后人工检查输出结果。正确的输出结果随后可以保存为标准日志文件(golden logfile),用来和今后的仿真结果进行比较,以判断仿真结果的正确性。CRT环境不仅需要产生激励,还需要通过参考模型、传输函数或其他方法预测输出结果。然而,只要准备好了这
2022-09-26 19:46:55
464
原创 SystemVerilog——面向对象编程
在SystemVerilog中可以把类定义在program,module,package中,或者在这些块之外的任何地方。类可以在程序和模块中使用。在此之前,可以将程序块当作一个包含了测试代码的模块,它含有一条测试、组成测试平台的对象及创建、初始化并运行测试的初始化块。当创建一个项目的时候,可能需要将每个类保存在独立的文件中。当文件的数目变得太大的时候,可以使用SystemVerilog的包(package)将一组相关的类和类型定义捆绑在一起。例如,可以将所有的SCSI/ATA事务组合到一个包中。
2022-09-21 13:54:01
552
原创 SystemVerilog——连接设计和测试平台
验证一个设计需要经过几个步骤:生成输入激励,捕获输出响应,决定对错和衡量进度。但是,首先需要一个合适的测试平台,并将它连接到设计上。测试平台包裹着设计,发送激励并且捕获设计的输出。测试平台组成了设计周围的“真实世界”,模仿设计的整个运行环境。例如,一个处理器模型需要连接到不同的总线和器件,这些总线和器件在测试平台中就被建模成总线功能模型。一个网络设备连接到多个输入和输出数据流,这些数据流根据标准的协议建模。一个视频芯片连接到送入指令的总线,然后根据写入内存模型的数据重建图像。这里的核心概念是除了待测设计(D
2022-09-20 14:04:04
611
原创 SystemVerilog——过程语句和子程序
过程语句任务、函数、void函数子程序参数子程序返回return语句从函数中返回一个数组局部数据存储自动存储变量的初始化时间值时间单位和精度时间和变量
2022-09-09 08:37:00
468
原创 SystemVerilog验证——数据类型
数据类型内建数据类型logic类型双状态数据类型定宽数组定宽数组的声明和初始化常量数组基本数组操作——for和foreach基本数组操作——复制和比较同时使用位下标和数组下标动态数组队列关联数组链表数组的方法缩减定位排序选择存储类型灵活性存储器用量速度排序typedef创建新的类型struct创建结构类型转换静态转换动态转换流操作符枚举类型字符串和Verilog相比,systemVerilog提供了很多改进的数据结构。虽然其中部分数据结构最初是
2022-09-06 08:20:35
654
原创 SystemVerilog验证导论
硬件设计的目的在于创建一个基于设计规范并且能够完成特定任务的设备作为验证工程师的目的是确保该设备能够成功地完成预定地任务作为一个验证工程师,必须核设计者一样阅读硬件规范并且拟定验证计划,然后按照计划,创建测试来检查RTL代码是否准确地实现了所有的特性。如果多人对同一个规范进行解读,那么设计流程可能会出现冗余。作为验证工程师,需要阅读同样的硬件规范并对其含义做出独立的判断,然后利用测试来检查对应的RTL代码是否与你的解读一致。
2022-09-05 09:27:57
293
原创 Verilog
Verilog 的设计多采用自上而下的设计方法(top-down)。即先定义顶层模块功能,进而分析要构成顶层模块的必要子模块;然后进一步对各个模块进行分解、设计,直到到达无法进一步分解的底层功能块。这样,可以把一个较大的系统,细化成多个小系统,从时间、工作量上分配给更多的人员去设计,从而提高了设计速度,缩短了开发周期。...
2022-08-08 00:19:01
1663
原创 latex
写在最前面:latex查询文档:https://latexref.xyz/latex中文处理ctex包支持中文内容可以在window系统下cmd中输入:texdoc ctex查看ctex宏集手册在latex中一个字体有5种属性:latex的篇章结构提纲的构建可以在导言区设置section或者subsection的格式[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ZzK3iAS-1659778898387)(latex%203e847665d45c4f51
2022-08-06 17:43:56
594
原创 决策树算法
决策树决策树(Decision Tree)首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析,本质上是通过一系列规则对数据进行分类的过程决策树是一种典型的分类方法。其中:每个内部结点表示一个属性上的判断每个分支代表一个判断结果的输出每个叶结点代表一种分类结果。CLS算法是早期提出的决策树学习算法,是很多决策树学习算法的基础框架。依据其中选择分类属性的策略不同,可以得到不同的决策树算法。比较常用的决策树有ID3,C4.5和CART三种和实现,其中CART一般
2022-05-18 12:19:12
2067
原创 SVM支持向量机
一 SVM简单介绍支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 在机器学习中,支持向量机是与相关的学习算法有关的监督学习模型,可以分析数据、识别模式,用于分类和回归分析。二 函数间隔与几何间隔对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类
2022-04-27 00:25:41
291
原创 神经网络&深度学习——手写数字识别问题
我们将构建一个三层的神经网络来处理手写数字识别问题,之后我们将运用AdaGrad、RMSprop、Momentum、Nesterov Momentum和Adam优化算法来加速梯度下降的过程,首先我们先来实现一个简单的神经网络。文章目录1. 导入所需的Python库2. 加载数据并可视化3. 全连接神经网络3.1 初始化网络参数3.2 定义神经网络的每一层ReLU层Affine层Softmax-with-Loss层3.3 搭积木3.4 进行训练3.5 梯度下降优化算法3.5.1AdaGrad3.5.2 RM
2022-04-16 12:13:13
1304
原创 概率与信息论
概率与信息论概率论是用于表示不确定性声明( statement)的数学框架。它不仅提供了量化不确定性的方法,也提供了用于导出新的不确定性声明的公理。在人工智能领域,概率论主要有两种用途。首先,概率法则告诉我们AI系统如何推理,据此我们设计一些算法来计算或者估算由概率论导出的表达式。其次,我们可以用概率和统计从理论上分析我们提出的AI系统的行为。1.为什么要使用概率计算机科学的许多分支处理的实体大部分都是完全确定且必然的。程序员通常可以安全地假定CPU将完美地执行每条机器指令。硬件错误确实会发生,但它们
2022-04-03 13:50:14
1666
原创 深度学习——线性代数
文章目录1.基本数学概念2.线性相关和生成子空间3. 范式4.特殊类型的矩阵和向量5.特征分解6.奇异值分解1.基本数学概念标量(scalar ):一个标量就是一个单独的数,它不同于线性代数中研究的其他大部分对象(通常是多个数的数组)。我们用斜体表示标量。标量通常被赋予小写的变量名称。当我们介绍标量时,会明确它们是哪种类型的数。比如,在定义实数标量时,我们可能会说“令s∈R表示一条线的斜率”;在定义自然数标量时,我们可能会说“令n∈N表示元素的数目”。向量(vector):一个向量是一列数。这些数是有
2022-03-28 21:12:56
2832
原创 机器学习——正则化代码
这次以Logistic回归作为基础,将再次复习Logistic回归,对Logistic回归将有更深的理解。通过对比未进行正则化的Logistic回归与正则化的Logistic回归在相同数据集上的表现来理解正则化缓解过拟合现象的作用。首先,我们导入这次实验所需要使用的Python库,以及辅助函数import numpy as npimport matplotlib.pyplot as pltfrom utils import *实际应用中容易出现过拟合,其原因则在于模型已经足够复杂,但是我们往往
2022-03-23 16:26:15
3524
原创 机器学习——逻辑回归代码
回归,是指假设一个模型,设定一些参数,计算合适的参数以拟合逼近现有数据。Linear Regression:hθ(x)=θTx+θ0h_{\theta}(x)=\theta^{T} x+\theta_{0}hθ(x)=θTx+θ0Logistic Regression:hθ(x)=g(θTx+θ0)=P(y=1∣x,θ)h_{\theta}(x)=g\left(\theta^{T} x+\theta_{0}\right)=P(y=1 \mid x, \theta)hθ(x)=g(θTx+θ0)=
2022-03-22 23:09:58
761
原创 机器学习——线性回归代码
某城市的电网系统需要升级,以应对日益增长的用电需求。电网系统需要考虑最高温度对城市的峰值用电量的影响。项目负责人需要预测明天城市的峰值用电量,他搜集了以往的数据。现在,负责人提供了他搜集到的数据,并请求你帮他训练出一个模型,这个模型能够很好地预测明天城市的峰值用电量。准备(jupyter notebook环境下运行)先导入必要的python包import numpy as npimport matplotlib.pyplot as pltimport time%matplotlib inlin
2022-03-15 21:34:20
2139
原创 操作系统——设备管理
设备管理I/O设备的基本概念和分类I/O控制器I/O控制方式程序直接控制方式中断驱动方式DMA方式(直接存储器存取)通道控制方式总结I/O软件层次结构I/O核心子系统假脱机技术(SPOOLing)设备的分配与回收设备分配时应该考虑的因素静态分配和动态分配设备分配管理中的数据结构设备分配的步骤缓冲区管理单缓冲双缓冲循环缓冲区缓冲池I/O设备的基本概念和分类I/0设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。I/O控制器I/O设备的机械部件主要用来执行具
2022-03-12 19:01:44
2244
原创 操作系统——文件管理
操作系统——文件管理初识文件管理文件内部的数据应该怎么组织起来:文件之间应该怎么组织起来操作系统应该向上层提供哪些功能从上往下看,文件如何被存放在外存(磁盘)上文件的逻辑结构顺序文件索引文件索引顺序文件文件目录文件控制块(FCB)目录结构索引结点(对文件控制块的优化)文件保护口令保护加密保护访问控制文件共享基于索引结点的共享方式(硬链接)基于符号链的共享方式(软链接)文件的物理结构/文件分配方式连续分配链接分配隐式链接显式链接索引分配链接方案多层索引混合索引逻辑结构VS物理结构文件存储空间管理(空闲磁盘块管
2022-03-09 00:27:18
633
原创 MapReduce
这里写目录标题MapReduce概述分布式并行编程MapReduce模型简介Map和Reduce函数MapReduce的体系结构MapReduce工作流程工作流程概述MapReduce各个执行阶段关于split(分片)Shuffle过程详解在Map端的Shuffle过程Reduce端的Shuffle过程实例分析:WordCountMapReduce概述分布式并行编程“摩尔定律”, CPU性能大约每隔18个月翻一番从2005年开始摩尔定律逐渐失效 ,需要处理的数据量快速增加,人们开始借助于分布式并行编
2022-02-21 15:02:04
2204
原创 云数据库概述
云数据库云数据库概述云数据库产品云数据库系统架构UMP系统概述UMP系统架构MnesiaRabbitMQZookeeperLVSController服务器Proxy服务器Agent服务器日志分析服务器信息统计服务器愚公系统UMP系统功能云数据库概述云计算是云数据库兴起的基础云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云数据库具有高可扩展性
2022-02-19 22:07:59
3755
原创 NoSQL数据库
NoSQL数据库NoSQL简介NoSQL兴起的原因关系型数据库已经无法满足web2.0的需求MySQL集群并不能完全解决问题One size fits allNoSQL与关系数据库的比较NoSQL的四大类型键值数据库列族数据库文档数据库图数据库NoSQL三大基石CAPBASE最终一致性补充:数据库事务的ACID原则NoSQL简介NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称,它所采用的数据模型并非传统关系数据库的关系模型,而是类似键值、列族、文档等非关系模型。NoSQ
2022-02-17 21:00:36
1905
原创 分布式数据库HBase
分布式数据库HBase概述BigTableHBase简介HBase与传统关系型数据库的对比分析HBase数据模型数据模型相关概念数据坐标概念视图物理视图面向列的存储HBase的实现原理HBase的功能组件表和regionRegion的定位HBase运行机制HBase系统架构Region服务器工作原理Store工作原理HLog工作原理HBase应用方案HBase编程实践基本操作(增删改查)Java APIHBase是针对谷歌BigTable的开源实现,是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要
2022-02-16 13:30:10
2640
原创 分布式文件系统HDFS
分布式文件系统HDFS1.分布式文件系统计算机集群结构分布式文件系统的结构2.HDFS简介3.HDFS相关概念HDFS中的块HDFS主要组件的功能4.HDFS体系结构5.HDFS储存原理冗余数据保存数据存取策略数据错误与恢复6.数据读写过程7.HDFS编程实践1.分布式文件系统计算机集群结构分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目前的分布式文件系统所采用的计算机集群,都是由普通硬件构成的,这就大大
2022-02-13 18:49:07
1086
原创 操作系统——内存管理
操作系统——内存管理内存的基础知识绝对装入静态重定位装入动态重定位装入静态链接装入时动态链接运行时动态链接内存管理一、内存的分配与回收连续分配管理方式单一连续分配固定分区分配动态分区分配非连续分配管理方式基本分页存储管理⭐⭐⭐基本分段存储结构段页式存储管理二、内存空间的扩充覆盖技术交换技术虚拟存储技术请求分页管理方式页面置换算法页面分配、置换策略三、地址转换四、内存保护内存的基础知识我们写的代码要翻译成CPU能识别的指令。这些指令会告诉CPU应该去内存的哪个地址读/写数据,这个数据应该做什么样的处理。
2022-02-11 22:03:46
1474
原创 操作系统——进程管理(一文弄懂进程间的那些事)
进程进程的概念PCB进程的组成进程的特征进程的状态与转换进程的状态进程间的转换进程的组织方式链接方式索引方式进程控制怎么实现进程控制——原语进程的创建进程的终止进程的阻塞进程的唤醒进程的切换进程通信共享存储消息传递管道通信线程what is 线程 & why we need 线程线程的属性线程实现方式用户级线程内核级线程多线程模型一对一模型多对一模型多对多模型调度调度的三个层次高级调度(作业调度)低级调度(进程调度/处理机调度)中级调度
2022-02-07 18:47:34
2647
原创 买卖股票的时机
给定一个数组 prices ,其中 prices[i] 表示股票第 i 天的价格。在每一天,你可能会决定购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以购买它,然后在 同一天 出售。返回 你能获得的 最大 利润 。示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入
2022-02-03 21:44:53
437
原创 计算机操作系统概述
计算机操作系统概述概念(定义)和功能操作系统的特征并发共享虚拟异步操作系统的发展与分类手工操作阶段单道批处理系统多道批处理系统分时操作系统实时操作系统操作系统的运行机制内核程序和应用程序特权指令和非特权指令核心态和用户态中断和异常中断的作用外中断与内中断(异常)中断机制的基本原理系统调用概念(定义)和功能操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本
2022-01-23 16:23:58
218
手写数字识别MNIST数据集
2022-04-16
机器学习——线性回归数据
2022-03-15
基于Android + Web+ MySQL设计和开发微博应用
2021-01-20
基于Win32桌面应用程序和OpenCV的画中画效果播放器。
2021-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人