![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
文章平均质量分 84
Alfred.HOO
专注于IP和SOC验证
展开
-
ARM---中断(三)
接下来该看redistributor了。图1 GIC-600 redistributor跟distributor连接的部分就不说了。Cpu_active是指示cluster或core的状态,可以用于idle管理。ppi_id用于多核设计时,区分每个redistributor。PPIs就是PPI中断线,在GIC-600是这么描述PPI的:图2 PPI描述从上面可以看出来,所谓的“私有”是说这些中断信号是core专有的。对于PPI,ARMv8定义了三种规格,8,12和16。所以对于不同的core来原创 2022-01-02 09:43:15 · 940 阅读 · 0 评论 -
ARM---中断(二)
开始之前,先声明一下,ARM系列的全部文章都参考的是公开文档。如果大家有需要,可以去ARM的官方网站下载。我手里没有任何非公开的文档。闲话少说,今天开始扒GIC-600。为了适应大规模的SoC设计,GIC-600被设计成分布式IP。所谓分布式,GIC-600由几种组件构成,每个组件可以跟其它相关模块在物理设计上摆放在一起,并与其拥有共同的电源域;组件之间通过片上网络(network on chip,简称NoC)通信,从而达到更好的时序。GIC-600的重要组件包括以下几种:Distributor:G原创 2022-01-01 19:21:26 · 883 阅读 · 1 评论 -
ARM---中断(一)
今天来看一下中断及ARM体系中对中断的处理,直接进入正题。中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。中断的几个主要目的。第一,通过中断可以提高CPU效率。假设一种场景,CPU通知其它设备完成某项工作,当设备完成任务后,CPU如何知道呢?一种方式是设备标记状态寄存器,等待CPU来查询,这种做法弊端是程序员在编写程序时不能确切知道设备完成任务所需的时间,也就是说需要定时去查询设备的状态。我们知道,现代C原创 2022-01-01 18:57:18 · 3590 阅读 · 0 评论 -
ARM---异常和特权
异常(exception)和特权(privilege)是在ARMv8-A中定义的两个概念。现代软件期望被分成不同的模块,每个模块对系统和处理器资源具有不同的访问级别。这方面的一个例子是操作系统内核和用户应用程序之间的分离,前者具有对系统资源的高级别访问权限,后者配置系统的能力更为有限。Armv8-A通过实现不同级别的特权来实现这种分离。当前特权级别只能在处理器接受异常或从异常返回时更改。因此,在Armv8-A体系结构中,这些特权级别被称为异常级别(exception level,以下简称EL)。每个异常原创 2022-01-01 18:31:40 · 3006 阅读 · 0 评论 -
CPU设计---Cache基础
什么是cacheCache存储器也被称为高速缓冲存储器,位于CPU和主存储器之间。之所以在CPU和主存之间要加cache是因为现代的CPU频率大大提高,内存的发展已经跟不上CPU访存的速度。在2001 – 2005年间,处理器时钟频率以每年55%的速度增长,而主存的增长速度只是7%。在现在的系统中,处理器需要上百个时钟周期才能从主存中取到数据。如果没有cache,处理器在等待数据的大部分时间内将会停滞不动。图1 现代处理器存储层次示意图Cache的基本原理Cache的容量跟主存比起来要小得多,尤其原创 2022-01-01 18:30:24 · 1760 阅读 · 0 评论 -
ARM的大端格式big endian、小端格式little endian和字word
在ARM体系结构的数据存储格式中,将4字节定义为一个字(Word),2字节定义为半字。例如从0地址开始存放字数据,0号字节到3号字节放置第一个字数据,从第4号字节到第7字节放置第二个字数据。当ARM处理器向以字节为单位编址的线性地址空间写入字数据(或半字数据)时,就存在一个字(或半字)中,高位字节和低位字节与存储器连续的4个字节单元(或2个)字节对应的问题。小端格式是字数据中的低字节对应4个字节存储空间的低地址单元、高字节对应存储空间的高地址单元。大端格式是字数据中的低字节对应4个字节存储空间的低地原创 2021-12-27 22:39:02 · 3650 阅读 · 0 评论