weiqi7777

ARMv8之exclusive操作(三) exclusive monitor

为了支持exclusive操作,硬件会增加exclusivemonitor来支持。一、exclusivemonitorexclusivemonitor分为2类:localmonitor:实现在cpu内部,针对cacheable属性地址进行监测globalmonitor:实现在cpu外部,针对non-cacheabal属性和device属性地址进行监测从上图,能够看出

ARMv8之exclusive操作(二)exclusive操作例子

之前,提到了为什么要引入exclusive操作。ARM对于exclusive操作,新增了exclusive指令。下面以一个例子,来说明下,这个是如何工作的。以以下代码进行说明,标准的抢锁代码:;voidlock(lock_t*ptr)lock:;isitlocked?LDXRW1,[X0];LoadcurrentvalueoflockCMPW1,#LOCKED;Co

IES low-power中的set_sim_control命令

在使用IES工具,进行low-power仿真时,会遇到仿真非0时刻上电的模块,initial语句没有执行,造成内部的一些信号为x态,影响仿真结果的情况。对于这种问题,可以在upf文件中,加入set_sim_control命令,来控制。initial语句,是在仿真的0时刻开始执行。如果模块是在仿真

sv的dvfs的时钟实现

在cpu的验证中,需要进行dvfs的验证,也就是在仿真过程中,时钟周期不再是固定的周期,而且时钟也不是一直有效。在这种情况下,对于时钟的生成,就不能用简单的时钟生成代码来实现:regclk;initialbeginclk=0;forever#HALF_PERIODclk=~clk;end此时要用稍微复杂的时钟代

ARM GIC(十四)gicv3架构-power控制详解

在带有gicv3的soc架构中,其框图如下所示:gicv3中的redistributor与core中的cpuinterface通过AXI-Stream进行通信。一、connection当core上电之后,需要将core中cpuinterface与gic中的redistributor进行connect,这样将来gic才可以将中断发送给core。connection的流程如

ARMv8之exclusive操作(一)exclusive操作的引入

AMRv8架构中的exclusive操作

ARM GIC(十三) 波形为例,介绍gic600与cpu interface通信

以下以gic600与cpuinterface之间传递的包,来说明,他们之间是如何通信的。这里以波形进行介绍。这样比较直观。一、downstreamcontrol命令包gic600发送downstreamcontrol命令包给cpuinterface。命令包的数据为0。downstreamcontrol包格式如下:解释如下:从表中可以解析

ARM GIC(十二) 中断bypass

gicv3的中断bypass介绍

ARM GIC(九) gicv3架构-two secure state

gicv3中,引入了支持2种安全状态(securestate),也就是对于中断,根据secure状态,分为安全中断和非安全中断。当然也可以只支持一种安全状态。这里的2种安全状态和1种安全状态,主要是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。一、中断线的映

jenkins pipeline取消groovy脚本执行权限

在上一篇文章中(http://www.lujun.org.cn/?p=4025),提到了,如何在jenkins的pipeline中控制并行执行的job数。其中用到了groovy脚本。在job的配置中,是不能勾选usegroovysandbox选项,否则执行会出错。查看这个usegroovysandbox的作用:ifchecked,runthisgroovyscrip

Jenkins pipeline控制并行执行job个数

pipeline中,可以通过parallel,并行跑多个job。但是如果想限制并行跑的job个数,应该如何做呢?比如说有10个job,要并行跑,但是目前资源有限,只允许最多3个同时跑,那这种情况下,应该如何修改Jenkinsfile,来满足这个需求?通过自己的摸索,发现用以下方法,可以实现

AArch32中thumb指令的IT block

ITblock是thumb指令集中引出来的东西,用来解决thumb指令不能条件执行的缺点。可以通过IT指令,给后续的1到4条指令,决定其执行条件。ITblock的信息,存放在PSTATE中,在thumb指令集中,也就是存在CPSR中。存放在CPSR的IT域。IT指令的指令编码如下:其汇编描述:firstco

GICv3软中断

软中断(softwaregeneratedinterrupts),用来多个核之间的通信(inter-processorcommunication)。软件通过写SGI寄存器来产生。软件写ICC_SGI1R_EL1产生对应当前secure状态的group1软中断软件写ICC_ASGI1R_EL1产生secure状态的group1软中断软件写ICC_SGI0R_EL1产生secu

gicv3的中断分组

GICv3架构中,对中断进行了分组。分成了以下三个组:group0,用于EL3处理的中断securegroup1:用于secureEL1处理的中断non-securegroup1:用于non-secure的EL2和non-secure的EL1。对于redistributor的set命令,带有Mod和Grp参数。Mod与Grp共同表示,中断所属的组。其组

ARM编译器(一)ARM汇编与ARM GNU汇编

一、ARM汇编开发的两种的方式ARM汇编开发指用ARM提供的汇编指令,进行ARM程序的开发。ARM汇编开发,有两种开发方式,一种是使用ARM汇编,一种是使用ARMGNU汇编。两种汇编开发,使用的汇编指令是完全一样的,区别是宏指令,伪指令,伪操作不一样。其实两种开发方式的区别