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   缓存相关抢占代价
             在嵌入式系统中,缓存资源对系统实时调度会带来缓存抢占延迟和任务执行时序异常两类影响.时序异常
   87   88   89   90   91   92   93   94   95   96   97