| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> Armv8-A虚拟化手册(4) -> 正文阅读 |
|
[嵌入式]Armv8-A虚拟化手册(4) |
7. 通用定时器的虚拟化????????ARM架构包括通用定时器,它是每个处理器里一组标准有用的定时器。通用定时器包含一组与通用系统计数器相比较的比较器。当该值等于或小于系统计算器时,比较器产生一个中断。在下图中,我们可以看到系统中的通用定时器,它包含比较器和计数器模块。 ????????上图描述了一个hypervisor管理两个虚拟CPU(vCPU)的系统: note: 在这个例子中,我们忽略了执行hypervisor在vCPU之间进行上下文切换的过度。 ????????在4ms的物理时间或墙上时间之后,每个vCPU运行2ms。如果vCPU0在T=0时建立起比较器,并在3ms后产生一个中断,你会期望中断已经产生了么? ????????相反的,在2ms的虚拟时间后你希望产生一个中断么,vCPU经历这个时间,或在2ms的墙上时间? ????????ARM架构提供能力做这两者,依赖于使用哪种虚拟化。让我们看它是怎么做的。 ????????执行在vCPU的软件访问两个定时器: (1)EL1物理定时器 (2)EL1虚拟定时器 ????????EL1物理定时器与系统计数器模块的计数做比较。使用该定时器给出墙上时钟。 ????????EL1虚拟定时器与虚拟计数做比较。虚拟计数为物理计数减去一个偏移。hypervisor指明了当前调度的vCPU的寄存器中偏移。当vCPU还没有被调度时,这允许它隐藏时间。 ????????为了描述这个概念,我们可以扩展上面的例子,如下图: ????????在6ms的周期内,每个vCPU运行3ms。hypervisor可以使用偏移寄存器呈现一个仅显示vCPU运行的虚拟计数。或者hypervisor可以保持偏移为0,这意味着虚拟时间与物理时间一样。 NOTE: 这个例子显示系统计数的频率为1ms。特别是,这个频率值不是很可能。我们建议你设置系统计数来使用一个1MHZ和50MHZ之间的频率。? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:47:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |