做门户网站赚钱吗软文营销软文推广

news/2025/10/1 8:20:34/文章来源:
做门户网站赚钱吗,软文营销软文推广,河北建设工程信息网招标公告唐县水利局,广州建设工程交易中心是干啥的#x1f525;博客主页#xff1a; 小羊失眠啦. #x1f3a5;系列专栏#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞#x1f44d;收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么#xff1f; 2、TLB的entry里都是有什么? 3、MMU操作… 博客主页 小羊失眠啦. 系列专栏《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么 2、TLB的entry里都是有什么? 3、MMU操作的页表中的entry中都是有什么 L1和L3表中的entry中分别都是有什么 本文已有答案学完之后你能否知道看造化了哈哈…. 说明: MMU/TLB/Cache等知识太过于零碎各个模块直接又紧密相关所以在介绍时会串着介绍本文旨在介绍MMU的工作原理学习cache请参考ARM cache的学习笔记-一篇就够了) 以下来自笨叔叔公众号中的提问: 1、cache的内部组织架构是怎么样的能否画出一个cache的layout图什么是setway 2、直接映射全关联和组相联之间有什么区别优缺点是啥? 3、重名问题是怎么发生的? 4、同名问题是怎么发生的 5、VIPT会不会发生重名问题 6、什么是inner shareability 和outer shareability怎么区分 7、什么是PoU什么是PoC 8、什么是cache一致性业界解决cache一致性都有哪些方法 9、MESI状态转换图我看不懂。 10、什么cache伪共享怎么发生的如何避免? 11、DMA和cache为啥会有cache一致性问题 12、网卡通过DMA收数据和发数据应该怎么操作cache 13、对于self-modifying code怎么保证data cache和指令cache的一致性问题 文章目录 一、Memory attribute二、cache的一些基本概念 三、Cache内存访问的模型:四、MMU的介绍五、VMSA 相关术语:六、address translation system (AT)6.1 地址翻译的过程6.2 和mmu相关的System registers6.3 Enable mmu and endianness的相关寄存器6.4 Address size configuration6.5 granule sizes6.6 granule size对地址翻译的影响 6.7 disable mmu七、Translation table7.1 TTBR0/TTBR17.2 页表的entry中包含哪些信息7.3 granule sizes7.4 Cache configuration 八、ARM mmu三级页表查询的过程九、Translation Lookaside Buffer (TLB)9.1 TLB entry里有什么9.2 contiguous block entries9.3 TLB abort9.4 TLB一致性 十、VMSAv8-64 translation table format descriptors推荐 本文转自 周贺贺baron代码改变世界ctwArm精选 资深安全架构专家11年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计和开发。 一、Memory attribute armv8定义了device memory和normal memory两种内存其中device memory固定的就是Outer-Shareable和Non-cacheable而normal memory有多种属性可选。 说明一下在B2.7.2章节中有这么一句话“Data accesses to memory locations are coherent for all observers in the system, and correspondingly are treated as being Outer Shareable” treated as被看作是但不是所以在一些的文章中就认为device memory是没有shareable属性的。其实也能够理解一段memory设置成了non-cacheable然后再去讨论该memory的shareable属性好像也没有意义。 不管怎么样我们还是按照下方表格的来理解吧device memory固定为Outer-Shareable和Non-cacheable 对于device memory又分下面三种特性 ➨Gathering和non Gathering(G or nG)表示对多个memory的访问是否可以合并如果是nG表示处理器必须严格按照代码中内存访问来进行不能把两次访问合并成一次。例如代码中有2次对同样的一个地址的读访问那么处理器必须严格进行两次read transaction ➨Reordering(R or nR)表示是否允许处理器对内存访问指令进行重排。nR表示必须严格执行program order ➨Early Write Acknowledgement(E or nE)PE访问memory是有问有答的更专业的术语叫做transaction对于write而言PE需要write ack操作以便确定完成一个write transaction。为了加快写的速度系统的中间环节可能会设定一些write buffer。nE表示写操作的ack必须来自最终的目的地而不是中间的write buffer 针对上面的三种特性给出下面四种配置 Device-nGnRnE : 处理器必须严格按照代码中内存访问来进行、必须严格执行program order(无需重排序)、写操作的ack必须来自最终的目的地Device-nGnRE : 处理器必须严格按照代码中内存访问来进行、必须严格执行program order(无需重排序)、写操作的ack可以来自中间的write bufferDevice-nGRE : 处理器必须严格按照代码中内存访问来进行、内存访问指令可以进行重排、写操作的ack可以来自中间的write bufferDevice-GRE : 处理器对多个memory的访问是否可以合并、内存访问指令可以进行重排、写操作的ack可以来自中间的write buffer 部分属性的含义Shareable内存是共享的non-Shareable内存不共享,一般只可被单个PE访问cacheable内存会被缓存non-cacheable内存不会被缓存 PoU/PoC/Inner/Outer的定义 简而言之PoU/PoC定义了指令和命令的所能抵达的缓存或内存在到达了指定地点后Inner/Outer Shareable定义了它们被广播的范围。 例如在某个A15上执行Clean清指令缓存范围指定PoU。显然所有四个A15的一级指令缓存都会被清掉。那么其他的各个Master是不是受影响那就要用到Inner/Outer/Non Shareable 有了上面的这些定义那么我们再来看inner Shareable和outer Shareable Shareableinner Shareable内存在inner范围内是共享的outer Shareable内存在outer范围内是共享的 读分配(read allocation) 当CPU读数据时发生cache缺失这种情况下都会分配一个cache line缓存从主存读取的数据。默认情况下cache都支持读分配。 写分配(write allocation) 当CPU写数据发生cache缺失时才会考虑写分配策略。当我们不支持写分配的情况下写指令只会更新主存数据然后就结束了。当支持写分配的时候我们首先从主存中加载数据到cache line中相当于先做个读分配动作然后会更新cache line中的数据。 写直通(write through) 当CPU执行store指令并在cache命中时我们更新cache中的数据并且更新主存中的数据。cache和主存的数据始终保持一致。 写回(write back) 当CPU执行store指令并在cache命中时我们只更新cache中的数据。并且每个cache line中会有一个bit位记录数据是否被修改过称之为dirty bit翻翻前面的图片cache line旁边有一个D就是dirty bit。我们会将dirty bit置位。主存中的数据只会在cache line被替换或者显示的clean操作时更新。因此主存中的数据可能是未修改的数据而修改的数据躺在cache中。cache和主存的数据可能不一致。 ➨ 在ARMV8定义这些属性的寄存器和linux kernel或optee软件代码中使用的示例请点击此处 二、cache的一些基本概念 cache是一个高速的内存块它包含了很多entries每一个entrie中都包含: memory地址信息(如tag)、associated data cache的设计考虑了两大原则 空间域(spatial locality): 访问了一个位置后可能还会访问相邻区域, 如顺序执行的指令、访问一个结构体数据 时间域(Temporal locality)内存区域的访问很可能在短时间内重复如软件中执行了一个循环操作. 为了减少cache读写的次数将多个数据放到了同一个tag下这就是我们所说的cache line 访问缓存中已经存在的信息叫做cache hit访问缓存中不存在的数据叫做cache miss cache引入的潜在问题 内存的访问不一定同编程者预期的一样; 一个数据可以存在多个物理位置处 三、Cache内存访问的模型: Memory coherency的术语定义 Point of Unification (PoU), Point of Coherency (PoC), Point of Persistence (PoP), and Point of Deep Persistence (PoDP). 四、MMU的介绍 在ARMV8-aarch64体系下ARM Core访问内存的硬件结构图如下所示 其中MMU由TLB和Table Walk Unit组成的. TLB:Translation Lookaside Buffer (TLB)对应着TLB指令 Table Walk Unit,也叫地址翻译address translation system对应着AT指令 五、VMSA 相关术语: ➨ VMSA - Virtual Memory System Architecture ➨VMSAv8 ➨VMSAv8-32 ➨VMSAv8-64 ➨Virtual address (VA) ➨Intermediate physical address (IPA) ➨Physical address (PA) Translation stage can support only a single VA range ➨48-bit VA, 0x0000000000000000 to 0x0000FFFFFFFFFFFF ➨ARMv8.2-LVA : 64KB granule 52-bit VA,0x0000000000000000 to 0x000FFFFFFFFFFFFF Translation stage can support two VA ranges ➨48-bit VA: 0x0000000000000000 - 0x0000FFFFFFFFFFFF , 0xFFFF000000000000 to 0xFFFFFFFFFFFFFFFF ➨52-bit VA: 0x0000000000000000 - 0x000FFFFFFFFFFFFF , 0xFFF0000000000000 to 0xFFFFFFFFFFFFFFFF Address tagging / Memory Tagging Extension / Pointer authentication 六、address translation system (AT) 6.1 地址翻译的过程 MMU的地址翻译工作是一种自动行为当填好页表、配置好系统寄存器之后cpu发起的虚拟地址读写操作将会经过MMU自动转换成物理地址然后发送到AXI总线上完成真正的内存或device的读写操作. 如下列举了ARM在不同exception level中的地址翻译的模型. 在一般的情况下我们是不会启用stage2的除非enable了EL2、实现了hypervisor那么这时候才会开启stage2如下图所示 6.2 和mmu相关的System registers 在armv8-aarch64体系下TCR(Translation Control Register)寄存器有 TCR_EL1TCR_EL2TCR_EL3VTCR_EL2 它们的含义地址翻译的控制寄存器 TCR_EL1, Translation Control Register (EL1) The control register for stage 1 of the EL10 translation regime. TCR_EL3, Translation Control Register (EL3) The control register for stage 1 of the EL3 translation regime TCR_EL2, Translation Control Register (EL2) The control register for stage 1 of the EL2, or EL20, translation regime VTCR_EL2, Virtualization Translation Control Register The control register for stage 2 of the EL10 translation regime 对应的bit map为 6.3 Enable mmu and endianness的相关寄存器 在ARMV8-aarch64架构下有三个sctlr寄存器 SCTLR_EL1SCTLR_EL2SCTLR_EL3 以SCTLR_EL3该系统寄存器的SCTLR_EL3.EE(BIT[25])定义了MMU访问页表的方式小端方式读、还是大端方式读 6.4 Address size configuration Physical address size – 告诉cpu当前系统的物理地址是多少位Output address size – 告诉mmu你需要给我输出多少位的物理地址Input address size – 告诉mmu我输入的是多数为的虚拟地址Supported IPA size – stage2页表转换的部分size暂不介绍 . Physical address size b. output address size c . Input address size TCR_ELx.T0SZ定义使用TTBR0_ELx时VA地址的sizeTCR_ELx.T1SZ定义使用TTBR1_ELx时VA地址的size 注意最大的size为2^(64-x)x为TCR_ELx.T0SZ或TCR_ELx.T1SZ d. Supported IPA size 由VTCR_EL2.SL0 and VSTCR_EL2.SL0寄存器决定 6.5 granule sizes a. state 1 granule sizes b. state 2 granule sizes 6.6 granule size对地址翻译的影响 granule size的配置不同将会影响到页表的建立不同的granule size的页面有着不同的页表结构例如下表所示的: 6.7 disable mmu disable mmu之后the stage 1 translationFor the EL10 For Normal memory, Non-shareable, Inner Write-Back Read-Allocate Write-Allocate, Outer Write-Back Read-Allocate Write-Allocate memory attributes 七、Translation table 7.1 TTBR0/TTBR1 ARM文档说因为应用程序切换时要切换页表页表经常改变而kernel切换时不需要切换页表页表几乎不改。所以ARM就提供了 a number of features也就是TTBR0和TTBR1两个页表基地址. TTBR0用于0x00000000_00000000 - 0x0000FFFF_FFFFFFFF虚拟地址空间的翻译TTBR1用于0xFFFF0000_00000000 - 0xFFFFFFFF_FFFFFFFF虚拟地址空间的翻译 EL2/EL3只有TTBR0没有TTBR1所以EL2/EL3的虚拟地址空间是:0x0000FFFF_FFFFFFFF 7.2 页表的entry中包含哪些信息 MMU除了完成地址的翻译还控制的访问权限、memory ordering、cache policies. 如图所示列出了三种类型的entry信息: bits[1:0]表示该输出是block address还是next level table address还是invalid entry 7.3 granule sizes 有三种granule sizes的页表:4kb、16kb、64kb 7.4 Cache configuration MMU使用translation tables 和 translation registers控制着cache policy、memory attributes、access permissions、va到pa的转换 八、ARM mmu三级页表查询的过程 (1)、在开启MMU后cpu发起的读写地址是一个64bit的虚拟地址(2)、该虚拟地址的高16bit要么是全0要么是全1. 如果是全0则选择TTBR0_ELx做为L1页表的基地址; 如果是全1则选择TTBR1_ELx做为L1页表的基地址;(3)、TTBRx_ELn做为L1页表它指向L2页表在根据bit[41:29]的index查询到L3页表的基地址(4)(5)、有了L3页表的基地址之后在根据bit[28:16]的index查询到页面的地址(6)、最后再根据bit[15:0]查找到最终的物理地址 九、Translation Lookaside Buffer (TLB) 9.1 TLB entry里有什么 TLB中不仅仅包含物理地址和虚拟地址它还包含一些属性例如memory type、cache policies、access permissions、ASID、VMID 注:ASID - Address Space ID, VMID - Virtual Machine ID 9.2 contiguous block entries TLB拥有固定数目的entries所以你可以通过减少外部内存地址转换的次数来提升TLB hit率. 在ARMV8 architecture中有一个TLB中的feature叫contiguous block entries它表示一个entry可以对应多个blocks. 一个entry找到多个blocks再通过index来查找具体是哪个block。 页表的block entries中也有一个contiguous bit。这个bit为1,则表示开启了TLB的contiguous block entries feature。 contiguous block entries feature要求alignment例如 • 16 × 4KB adjacent blocks giving a 64KB entry with 4KB granule. 缓存64kb blocks,只需16 enties • 32 × 32MB adjacent blocks giving a 1GB entry for L2 descriptors, 128 × 16KB giving a 2MB entry for L3 descriptors when using a 16KB granule. • 32 × 64Kb adjacent blocks giving a 2MB entry with a 64KB granule. 如果支持了contiguous bit那么: TLB查询后的PA TLB entry中的PA index。 9.3 TLB abort 如果开启了contiguous bit而要转换的table entries确不是连续的或者entries的output在地址范围之外或没有对齐那么将会产生TLB abort 9.4 TLB一致性 如果os修改了页表(entries)那么os需要告诉TLBinvalid这些TLB entries这是需要软件来做的. 指令如下: TLBI typelevel{IS} {, Xt}十、VMSAv8-64 translation table format descriptors 这里的table format descriptors其实就是本文开头“思考”中提到的entry在页表中的entry 要么是invalid要么是table entry要么是block entry An invalid or fault entry.A table entry, that points to the next-level translation table.A block entry, that defines the memory properties for the access.A reserved format 如果是table entry其attribute描述如下 如果是block entry其attribute描述如下 如果是stage2的entry无论是table entry还是block entry其attribute描述如下 其实用如下的一张图来描述更清晰 这里的bit[1:0]用于定义entry的类型invalid? block ? table? reserved bit[4:2]指向 MAIR_ELn寄存器中的其中的一个字节用于定义内存(main memory和device memory)的类型 MAIR_ELn寄存器拆分成8个bytes每个byte定义一种内存类型 (MAIR_ELn, Memory Attribute Indirection Register (ELn)) 每一个byteattrn的含义如下 各个bit位的具体含义 例如optee中的内存属性配置如下: #define ATTR_DEVICE_INDEX 0x0 #define ATTR_IWBWA_OWBWA_NTR_INDEX 0x1 #define ATTR_INDEX_MASK 0x7#define ATTR_DEVICE (0x4) #define ATTR_IWBWA_OWBWA_NTR (0xff)mair MAIR_ATTR_SET(ATTR_DEVICE, ATTR_DEVICE_INDEX); mair | MAIR_ATTR_SET(ATTR_IWBWA_OWBWA_NTR, ATTR_IWBWA_OWBWA_NTR_INDEX); write_mair_el1(mair);推荐 ARMv8/ARMv9架构从入门到精通 --博客专栏《Armv8/Armv9架构从入门到精通 第二期》 --大课程8天入门ARM架构 --入门课程

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

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

相关文章

sqlite-vec 简单试用

sqlite-vec 简单试用sqlite-vec 官方实际有一些文档,同时github 也有不少示例,以下就是一个简单使用(集成python) 创建虚拟表参考命令import sqlite3 import sqlite_vec from sqlite_vec import serialize_float32…

linux 系统cshrc 资料

linux 系统cshrc 资料pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

建设积分商城网站多少钱要交个人所得税

磁力猫磁力链接是一种特殊的下载链接,磁力猫磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远…

做搞机网站贵州最好的网站建设推广公司哪家好

写在前面的话AMF(Action Message Format)是一种二进制序列化格式,之前主要是Flash应用程序在使用这种格式。近期,Code White发现有多个Java AMF库中存在目前,漏洞相关信息已上报至美国CERT(详情请参考美国CERT VU#307983)概述目前&#xff0c…

冷库 东莞网站建设化妆品品牌策划方案

一、前言:二、什么是跨域问题?三、 为什么会出现跨域问题?四、什么情况下会出现跨域?五、如何解决跨域问题? 5.1 使用CrossOrigin注解5.2 使用WebMvcConfigurer5.3 使用Filter六、代码示例 前端代码:后端后…

详细介绍:Oracle与Kingbase深度兼容体验:从连接配置到性能优化全解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

胶州专业建站免费制作论坛网站

synchronized重要!重要!重要!重要的事情说三遍,一定要记下来哦。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同…

[LeetCode] 1518. Water Bottles

There are numBottles water bottles that are initially full of water. You can exchange numExchange empty water bottles from the market with one full water bottle. The operation of drinking a full water …

2025 年西安品质楼盘住宅推荐排行榜权威发布,精选优质楼盘推荐

近年来,西安房地产市场持续发展,各类楼盘数量不断增多,但市场上楼盘品质参差不齐的问题也逐渐凸显。部分楼盘存在区位优势不明显、交通不便、周边配套不完善等情况,还有一些楼盘在建筑质量、户型设计、社区环境等方…

Python国庆祝福 - 指南

Python国庆祝福 - 指南2025-10-01 08:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

某商业银行项目管理建设演进报告 - 指南

某商业银行项目管理建设演进报告 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

建设网站的费用明细wordpress与微信连接

人永远是第一位的。 Scrum团队里有一个Scrum master、一个Product owner和若干个Developer。人数大概在10人左右,甚至更少。千万别在Scrum团队再搞什么小组,scrum团队就是最原子的团队了。我见过有些不专业的12人的scrum团队里,还安插了几个…

网站域名在哪买asp网站配置

Electron应用自动更新实现及打包部署全攻略 Electron自动更新原理配置更新服务器打包与发布更新全攻略实战步骤部署与测试部署更新测试更新流程错误处理与调试 高级特性与优化用户体验与反馈安全与隐私保护维护与持续集成性能优化结语 在现代跨平台桌面应用开发领域中&#xff…

怎么在建设厅网站报名wordpress 没有保存

1.DRAM技术简介 DRAM(Dynamic Random Access Memory,动态随机存取存储器)是一种用于计算机和其他电子设备中的主存储器类型,其主要由存储单元阵列构成,而每一个存储单元由一个电容器和一个晶体管组成,如图…

题解:P14073 [GESP202509 五级] 数字选取

题解:P14073 [GESP202509 五级] 数字选取 题目传送门 题意 给定 \(1,2,3,4,\cdots,n\) 一共 \(n\) 个整数,从这些数中选取一些数字,使得选取的整数中任意两个不同的整数均互质。 数据规模与约定 对于所有测试点,保…

电子商务网站建设需求概述成都网站建设138

背景:项目使用mybatis分页插件不生效,以及多租户使用时读取配置异常 分页插件不细述,网上很多方法试了还是不生效,最后修改到当前版本解决,直接上代码 多租户插件使用遇到的问题: 最开始在MyTenantLineH…

检测网站是否为WordPress怎样建移动网站

33、一致性哈希算法分区 一、背景二、介绍三、步骤1、算法构建一致性哈希环2、Redis服务器IP节点映射3、key落到服务器的落键规则 四、优点1、一致性哈希算法的容错性2、一致性哈希算法的扩展性 五、缺点1、一致性哈希算法的数据倾斜问题2、拓展 六、总结 一、背景 一致性哈希…

晋中市两学一做网站服务器如何做网站

继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电了设备中,是最重要的控制元件之一。继电器实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。…

2025西安新房住宅推荐排行榜发布,房屋品质、周边配套、交通便利性多维度选择指南!

当下西安新房市场呈现出房源丰富但品质参差不齐的态势,购房者在选择时常常面临诸多难题。一方面,市场上既有定位高端的豪宅项目,也有面向刚需群体的普通住宅,各类项目宣传信息繁杂,让购房者难以辨别真伪;另一方面…

猎头公司应坚持的原则有seo网站优化代码

表的优化1.定长与变长分离如 int,char(4),time核心且常用字段,建成定长,放在一张表;而varchar,text,blob这种变长字段适合单放一张表,用主键与核心表关联。2.常用字段和不常用字段要分离3.在 1 对多需要关联统计的字段上&#xff…