主公讲 ARM
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【AMBA Bus ACE 总线11 -- ACE Transactions 详细介绍】
事务确保了被移除的缓存行的数据能够被写回到内存中,同时通知其他可能包含该缓存行副本的处理器,它们持有的副本现在是陈旧的,需要在下次访问时重新从内存中读取或是通过缓存一致性协议来更新它们的本地副本。master发起的读操作或者是写操作,它不需要去snoop其它master了, 只需要发出去就可以了,不需要从其他master cache中获取数据。对 cache 的操作,比如对ICache 的clean操作,或者是invalid操作,或者是clean&invalid操作。当系统中的一个组件发出。原创 2024-05-12 23:11:40 · 347 阅读 · 0 评论 -
【AMBA Bus ACE 总线10 -- ACE Barrier transaction 详细介绍】
用于表明是否是一个barrier 的transaction,对于它我们只需要有个简单的了解即可,现在已经不建议在transaction的层面上还把 barrier 的 transaction发出来,因为系统是个很大的系统,当把 barrier transaction发到系统上的时候会对系统的整体performance产生影响。基本含义就是 对memory访问的顺序要保证,其它的顺序可以不管,比如先发起一个写,再发起一个读,那么读写的顺序要得到保证。和 memory的理念是相同的,原创 2024-05-12 22:40:11 · 520 阅读 · 0 评论 -
【AMBA Bus ACE 总线 7.1 -- ACE Domains 介绍 2】
当使用 ARM 总线的时候,以CCI 为例,它不在区分inner-shareable 和outer-shareable 了。从简化设计的角度,对于输入的transaction 无论是inner-shareable 还是 outer-shareable 统一认为是具有相同的属性。Domain 这个概念,不仅要从总线角度来看,它是总线中的两根线,其次需要考虑到什么时候需要驱动这个domain,比如什么时候驱动。对于cpu来讲,它针对所有能访问的memory地址,都会设置他们的 domain 类型。原创 2024-05-12 22:28:42 · 369 阅读 · 0 评论 -
【AMBA Bus ACE 总线 9.1 -- Non-cache Master 写操作 详细介绍】
这个时候 Coherency 总线,在收到 AW channel 的请求之后,分别向 master1和 master2 AC channel发起请求,请求把 master1 和 master2 对应的 Cache行给 Invalid 掉,, 如下图1-3 所示。就需要通过coherency总线去把它相同的cache行进行invalid掉,对于non-cached 的master来讲,会有一个返回的data和希望写的data 进行一个merge,merge以后进行一个写的过程。channel发起命令和数据。原创 2024-05-12 22:18:00 · 260 阅读 · 0 评论 -
【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】
1. ARM Coresight(SoC-400/SoC-600) 专栏2. ARMv8/v9 CPU/Cache 专栏3. Linux ARM AMBA 总线 专栏4. Trace32/DS-5 专栏。。。原创 2023-10-17 10:26:34 · 6545 阅读 · 0 评论 -
【AMBA Bus ACE 总线 9 -- Non-cache IO device】
当我们谈论Non-Cache I/O(非缓存I/O)设备时,指的是那些访问时绕过CPU缓存系统直接与内存或设备进行数据交换的设备。这对于I/O设备尤其重要,因为I/O设备的状态可能独立于CPU操作而改变,如果使用缓存的话,可能会导致读取到过时或不正确的数据。如果I/O操作被缓存,写操作可能只修改缓存,直到缓存行被逐出之前,设备的实际状态不会改变。在ARM系统中,通过设置页面表中的属性,或者在更简单的系统中通过内存保护单元(MPU)来管理缓存与非缓存内存访问的配置,通常是由内存管理单元(MMU)完成的。原创 2024-05-10 22:57:06 · 859 阅读 · 0 评论 -
【AMBA Bus ACE 总线 8 -- ICache maintenance】
当一个OS run 多个cpu的时候,根据调度算法的不同,OS 可以根据调度算法的不同分别 run 在某个具体的CPU上,因此,它们会有一个migrate的过程,既然是migrate,所以所有cpu 具有相同的instruction cacheline, 因为每个cpu 都有自己的 L1 ICache 和 DCache, 所以要求他们每个cpu的 instruction Cache都应该保持相同,比如至少要保证code 对这几个instruction Cache 是相同的。原创 2024-05-10 22:32:17 · 330 阅读 · 0 评论 -
【AMBA Bus ACE 总线 6 -- ACE cache maintenance 详细介绍】
比如ARM CPU 对自己的Icache 和 Dcache会有大量的transaction操作,也即maintenance操作,如果cache 是dirty 话,也就是 local cache中的内容和main memory中的数据不一致,这个时候就需要将cache行中的数据给清到memory中。比如Master0 对自己的cache行发起一个clean and invalidate 操作, 首先会在AR channel 发起 cache maintenance操作的请求,如图1-1。原创 2024-04-26 19:25:03 · 352 阅读 · 0 评论 -
【AMBA Bus ACE 总线 7 -- ACE Domains 介绍】
按照字面的理解,它是一组master的组合。那么为什么要强调 domain呢?因为在一个很大的系统中,shareable read 或者 shareable write 都需要一个coherency,比如CCI coherency总线会把请求发给不同的master,但是究竟要发给哪些maters,这个时候要发送的masater就是由 domain决定的。System。原创 2024-04-26 19:01:33 · 365 阅读 · 0 评论 -
【AMBA Bus ACE 总线 5 -- ACE Non-cached master】
总的来说就需要通过coherency总线去把它相同的cache行进行invalid掉,对于non-cached 的master来讲,会有一个返回的data和希望写的data 进行一个merge,merge以后进行一个写的过程。意思就是,比如对于master0,它想写的时候,就直接发起transaction,它不是对自己的local cache进行操作,比如以non-shareable write 为例,master0在写的时候分别在。原创 2024-04-26 18:49:18 · 227 阅读 · 0 评论 -
【AMBA Bus ACE 总线 4 -- ACE Cache invalidate 操作】
在完成 clean and invalidation之后,master 1和master2 会向coherency总线返回respons,在通过R channel将 respons merge到一起返回给master0,告诉master0 其它相同的cache copy 已经被invalid掉了,这个时候master1 就可以对它本地的local的cache行进行操作,这样的流程保证了,在某一个具体的时间只有一个master 有能力来对某个cache行进行更改。原创 2024-04-26 18:48:53 · 322 阅读 · 0 评论 -
【AMBA Bus ACE 总线 3 -- ACE shareable read】
一个master 对它一个shareable read流程来讲,其实就是在AR channel发起请求,coherency总线会在AC channel 分别向所有coherency domain中的参与者发起一个coherency请求,当收到respons以后,再对这些respons进行merge,并在从Rchannel将数据返还给issue的master0.通过减少对主内存的直接访问,shareable read事务有助于降低内存带宽的使用,从而提高系统整体的性能和效率。原创 2024-04-26 18:48:12 · 324 阅读 · 0 评论 -
【AMBA Bus ACE 总线 2 -- ACE Snoop transaction】
ARM ACE (AXI Coherency Extensions) 协议中的snoop transaction是一种机制,旨在维持多核处理器系统中缓存之间的一致性。在多核系统中,每个处理器核心可能有自己的一级或二级缓存,这可能导致同一内存地址在不同缓存中有不同的副本。snoop transaction允许一个处理器核心查询(“snoop”)其他核心的缓存状态,以确保数据一致性。原创 2024-04-26 16:26:10 · 1085 阅读 · 0 评论 -
【AMBA Bus ACE 总线 1 -- ACE 总线介绍】
一致性Coherency)问题通常出现在多处理器系统中,尤其是当多个处理器可能同时访问同一内存位置时。简单来说,一致性问题是关于保证一个处理器上的操作结果对于其他处理器来说是可见和一致的问题。数据一致性:如果两个或多个处理器都要读写同一个内存位置,我们需要确保它们不会读到过时或不正确的数据。例如,如果处理器A更新了某个内存位置的数据,那么处理器B在之后读取该位置时应该能读到处理器A最新写入的数据,而不是旧的数据。操作顺序一致性:不仅数据要保持一致,操作的顺序也要一致。原创 2024-04-26 16:03:22 · 1504 阅读 · 0 评论