zoukankan      html  css  js  c++  java
  • ARMV8 datasheet学习笔记4:AArch64系统级体系结构之Generic timer

    1.前言

    2.generate timer

    2.1 概述

    1. 提供了一个系统计数器,用来实时测量流逝的时间;
    2. 提供了一个虚拟计数器,用来测量某个虚拟机上流逝的虚拟时间;
    3. 定时器,每隔一段时间会触发事件,支持正向计时和倒计时;
    4. 通用timer实现必须包含一个内存映射的系统组件:提供system counter;

     2.2 完整的generic timer组件

    • System counter
    • Generic timer的PE实现

    (1)一个物理的counter,它访问system counter的计数值;

    (2)一个虚拟的counter,它访问虚拟时间;

    (3)一组timers,所有的异常级别都实现了一个timer:

    EL1物理timer;

    EL2物理timer;

    EL3物理timer;

    虚拟timer

    • Generic timer系统级的内存映射实现

    (1)内存映射的counter模块(必须),控制了system counter;

    (2)内存映射的timer模块(必须),控制system timer;

    (3)内存映射的timers(可选)

    2.3 System Counter

     

    概述

    1. 规格

    (1)       Width:至少56bit;

    (2)       频率:支持固定频率,典型是1-50MHZ;

    (3)       ROLL-OVER:翻转时间不少于40 years;

    (4)       Accuracy:未指定,24小时不多于10S;

    (5)       Start-up:从0开始。

    1. System counter一旦配置并运行,必须提供统一的 system time view;
    2. System counter电源域必须常开;
    3. 为了支持低功耗,低频率可以一个时钟累加一个比1大的数;

    初始化并读取system counter频率

    系统启动阶段,初始化system counter的时钟;

    System counter的内存映射控制

    需要通过内存映射(ioremap??)的方式对system counter进行控制:

    1. 使能和禁用计数器;
    2. 设置计数器的值;
    3. 改变操作模式,更新频率或步长值;
    4. 使能halt-on-debug,可以用来suspend counting.

    3. AArch64 generic timer

    3.1 Physical counter(包含system connter的count值)

    访问physical counter

    通过访问CNTPCT_EL0来获取64bit物理count值

    虚拟counter

    指示虚拟时间

    事件流

    通过system counter周期性的产生事件

     3.2 多个定时器

    实现的timers

    如果EL3使用AArch64则实现的定时器有:

    1. EL1物理定时器;
    2. Non-secure EL2物理定时器;
    3. Secure EL3物理定时器;

    timer的输出

    1. 提供一个输出信号给sysem;
    2. 如果PE连到GIC,会想PE发送PPI信号

    Timer regs

    1. 一个64bit compare值寄存器,提供了64bit无符加计数器;
    2. 一个32bit timer寄存器,提供了32bit有符号减计数器;
    3. 一个32bit control寄存器

    4. 参考文档

    [1] DDI0487A_k_armv8_arm_iss10775.pdf

  • 相关阅读:
    encodeURIComponent编码时为什么要编码两次
    JS校验身份证号的合法性
    react-router与react-router-dom使用时的区别
    数组去重
    window的cmd命令行下新增/删除文件夹及文件
    数组排序【冒泡排序、快速排序、选择排序】
    个人搭建后台管理模板 Bootstrap4 ,ASP.NET Core,EF Core,JWT
    个人搭建后台管理模板 Bootstrap4 ,ASP.NET Core,EF Core,JWT
    react-starter-projects
    基于H.ui.Admin UI模板的网站管理后台
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6848154.html
Copyright © 2011-2022 走看看