Page 92 - 《软件学报》2021年第6期
P. 92
1666 Journal of Software 软件学报 Vol.32, No.6, June 2021
是由于 AADL 中缺少描述进程动态执行时的属性,不能进一步描述 AADL 构件进程、线程使用存储构件的分
段属性.因此,需要利用 Memory 构件作为 Processor 的子构件对 Cache 进行建模,并通过 AADL 中 Memory 内部
结构刻画出一级 Cache、两级 Cache 等 Cache 结构,其中,多核系统可采用两级 Cache 建模方式 [16] .
为了能在 AADL 模型层对构件的 CRPD 进行分析,本文对 AADL 语言 Memory 构件属性扩充,对 AADL 模
型中存储层次结构进行细分.在 AADL 中使用 Memory 构件作为 Processor 构件的子构件,对高速缓存 Cache 进
行建模,增加了调度资源竞争建模需要的 Memory 属性,见表 1.其中,CacheSize 刻画 Cache 的容量,LineSize 描述
一个缓存块的容量,而 CacheMissTime 表示在一次未命中时从内存加载一个缓存块的时间延迟.一般地,针对具
体型号 CPU 发生资源抢占时,从缓存中加载一个缓存块到 Cache 的时间是一个常量.当 Cache 未命中时, Cache
缺失发生,需要将缺失的数据以及相关联的块从主存中写入 Cache,然后在 Cache 中访问该数据,Cache 容量大小
会影响这个过程的时延,进而对系统任务的可调度性带影响.
Table 1 Extended properties of memory component in cache modeling
表 1 Cache 模型属性
构件 属性 类型 单位
Memory CacheSize aadlinteger Byte,KB,MB,GB
Memory LineSize aadlinteger Byte,KB,MB,GB
Memory CacheMissTime aadlinteger ps,ns,μs,ms,s
扩展后的 AADL Cache 模型可以刻画系统架构设计所需要的高速缓存和主存构件资源访问行为相关的属
性,如 CacheSize 和 CacheMissTime,建模时可使用 applies to 关键字定义 Memory 构件的 Cache 块容量属性 Line_
Size,也可以利用 AADL 提供的 Memory 构件属性进行主存资源建模.在设计系统架构时,可以用 AADL 构件
thread 定义系统任务及其调度执行相关的属性和行为,如调度协议、执行时间、任务周期、截止期以及存储资
源访问需求等.当系统采用虚拟技术进行任务分区资源划分绑定及分区调度执行时,建模时需为每个任务分区
定义调度分区时间片轮转的大小.在系统可调度性分析时,可通过提取 AADL 架构中分区与构件的行为属性及
存储构件属性,见表 2,就可以计算模型中各构件执行中的访存时延,进而分析系统的可调度性.
Table 2 Component properties required for CRPD calculation
表 2 计算 CRPD 需要提取的构件模型属性
属性 所属构件
CacheSize Memory
WordSize Memory
LineSize Memory
CacheMissTime Memory
RomBudget Thread,Thread Group
RomActual Thread,Thread Group
RamBudget Thread,Thread Group
RamActual Thread,Thread Group
Source_Data_Size Thread,Thread Group
Source_Code_Size Thread,Thread Group
Source_Heap_Size Thread,Thread Group
Source_Stack_Size Thread,Thread Group
Dispatch_Protocol Thread,Thread Group
ComputeExecutionTime Thread,Thread Group
Period Thread,Thread Group
Deadline Thread,Thread Group
如果 CPU 以一种当缓存块加载完成后再从缓存中提取 CPU 所需字的方式去加载资源时,需要对 Cache 缺
失情况进行分析,本文案例的 CacheMissTime 为了分析方便把它按做常数处理.
2 缓存相关延迟计算
2.1 缓存相关抢占代价
在嵌入式系统中,缓存资源对系统实时调度会带来缓存抢占延迟和任务执行时序异常两类影响.时序异常