零知识学习ACPI —— 1. 初识

2024-01-17 16:36
文章标签 初识 学习 知识 acpi

本文主要是介绍零知识学习ACPI —— 1. 初识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、什么是ACPI

1. 概念

ACPI的英文全称为Advanced Configuration and Power Interface,中文译为高级配置电源管理接口。ACPI 是一种描述硬件接口的方法,用于操作系统与计算机硬件之间的通信。它提供了一种标准化的方法来管理电源管理、热管理和配置功能。

2. 功能

ACPI的主要功能包括:

  • 电源管理

ACPI允许操作系统控制计算机的电源状态,例如休眠、待机和关闭。包括:系统电源管理(System Power Management)、设备电源管理(Device Power Management)和处理器电源管理(Processor Power Management)。它还提供了一种方法来管理电源供应和电池状态(Battery Management)。

  • 温度管理

ACPI可以监测和控制计算机的温度,并根据需要调整风扇的转速。它还可以降低设备的性能以防止过热。

  • 配置管理

ACPI提供了一种方法来配置计算机硬件和外部设备。它可以识别和管理各种设备,包括处理器、内存、硬盘驱动器和外部接口等。

ACPI的运行时模型用于管理在系统运行期间发生的所有ACPI事件。它处理中断事件,并评估处理这些事件所需的对象。当用户启动系统时,系统固件会完成ACPI的设置、初始化和自我测试。

ACPI可以实现的功能包括:

  • 系统电源管理(System power management)
  • 设备电源管理(Device power management)
  • 处理器电源管理(Processor power management)
  • 设备和处理器性能管理(Device and processor performance management)
  • 配置/即插即用(Configuration/Plug and Play)
  • 系统事件(System Event)
  • 电池管理(Battery management)
  • 温度管理(Thermal management)
  • 嵌入式控制器(Embedded Controller)
  • SMBus 控制器(SMBus Controller)

二、ACPI历史

1997年由Intel、Microsoft、Toshiba所共同制定提供操作系统应用程序管理所有电源管理接口。2000年8月推出 ACPI 2.0规格。2004年9月推出ACPI 3.0规格。2009年6月16日则推出 ACPI 4.0规格。2011年12月推出ACPI5.0规格。
作为标准中最广为认可的部分,电源管理经历了较多的改进。早先,Advanced Power  Management模型(APM)将电源管理几乎完全分配给BIOS控制,这大大地限制了操作系统
在控制电能消耗方面的功能。
当前,ACPI的电源管理特性从以前只适用便携式计算机(例如膝上型计算机)过渡到桌上型电脑、工作站和服务器。例如,系统可能会进入极低功率消耗状态。这些就是可利用在多数桌面型电脑上的“睡眠”和“休眠”设置。睡眠和休眠状态可以通过移动鼠标按键盘按键从另外一台电脑接收一条信息(如果连接到了一个局域网)或者重大系统错误来唤醒系统。
如果ACPI在BIOS和其它系统硬件中被实现,它就可以由操作系统所调用(触发)。
Windows 98是支持ACPI的第一个微软的操作系统。FreeBSD v5.0是支持ACPI的第一个UNIX操作系统。Linux、NetBSD和OpenBSD都至少有一些支持ACPI。

三、节电方式与六种状态

1. 节电方式

  • suspend

即挂起。显示屏自动断电;只是主机通电。这时敲任意键即可恢复原来状态。

  • save to ram或suspend to ram

即挂起到内存。系统把当前信息存储在内存中,只有内存等几个关键部件通电,这时计算机处在高度节电状态,按任意键后,计算机从内存中读取信息很快恢复到原来状态。

  • save to disk或suspend to disk

即挂起到硬盘。计算机自动关机,关机前将当前数据存储在硬盘上,用户下次按开关键开机时计算机将无需启动系统,直接从硬盘读取数据,恢复原来状态。

2. 六种状态

分别是S0到S5,它们代表的含义分别是:

  • S0

就是平常的工作状态(正常工作状态),所有设备全开,功耗一般会超过80W。

  • S1

也称为POS(Power on Suspend),除了通过CPU时钟控制器将CPU关闭之外,其它的部件仍然正常工作,这时的功耗一般在30W以下(其实有些CPU降温软件就是利用这种工作原理)。

  • S2

除了CPU处于停止运作状态外,总线时钟也被关闭,但其余的设备仍然运转。

  • S3

这就是我们熟悉的STR(Suspend to RAM),这时的功耗不超过10W。

  • S4

这就是我们熟悉的STD(Suspend to Disk),这时系统主电源关闭,硬盘存储S4前数据信息,所以S4是比S3更省电状态。

  • S5

这种状态是最干脆的,就是连电源在内的所有设备全部关闭,即关机(shutdown),功耗为0。

以上几种状态中,S0和S5是平时的开关机的状态。除了这两种状态外,最常用到的是S3状态,即Suspend to RAM(挂起到内存)状态,简称STR。顾名思义,STR就是把系统进入STR前的工作状态数据都存放到内存中去。在STR状态下,电源仍然继续为内存等最必要的设备供电,以确保数据不丢失,而其他设备均处于关闭状态,系统的耗电量极低。一旦我们按下Power按钮(主机电源开关),系统就被唤醒,马上从内存中读取数据并恢复到STR之前的工作状态。内存的读写速度极快,因此我们感到进入和离开STR状态所花费的时间不过是几秒钟而已;而S4状态,即STD(挂起到硬盘)与STR的原理是完全一样的,只不过数据是保存在硬盘中。由于硬盘的读写速度比内存要慢得多,因此用起来也就没有STR那么快了。STD的优点是只通过软件就能实现,比如Windows 2000就能在不支持STR的硬件上实现STD。

四、常见问题

1. 电脑长眠

这主要是硬件对ACPI支持得不好。这时首先应该翻阅主板和其它硬件的说明书,看看它们是不是完全支持ACPI。也有的时候在BIOS中设置使用显卡的USWC(Uncacheable Speculative Write Combining)模式会有这样的情况,改回到UC(Uncacheable)模式就可以解决问题。

2. 模式失效

STD是一种省电的高级应用,全称为“Suspend To Disk”(STD就是休眠至硬盘功能,将当前系统状态保存到硬盘后,硬盘随即停止转动,系统进入低功耗状态当再开机时系统会跳过自检,直接从硬盘恢复原来的系统状态,而不是正常系统的默认状态,从而缩短了开机时间),这种模式由于硬盘文件格式的兼容性可能会出现问题,刷新BIOS就可以解决问题。

五、相关术语

  • ACPI硬件(ACPI Hardware)
它是一种电脑硬件,具有支持OSPM所必备的特性,而且还具有特定的接口,这些接口的特性是由ACPI规范所指定的描述表(Description Tables)所描述的。
  • ACPI命名空间(ACPI Namespace)
一个树状层次机构,在受操作系统控制的内存里面,这段内存里面包含命名对象(named objects)等。这些对象(objects)可以是数据对象、控制方法对象、总线/设备包对象等。操作系统通过从驻留在ACPI BIOS 中的ACPI Tables加载/卸载(loading and/or unloading)定义块(definition blocks),以动态改变命名空间(namespace)的内容。在ACPI Namespace中的所有信息都来自Differentiated System Description Table(DSDT),DSDT里面包含了Differentiated Definition Block,还有一个或多个其它的定义块(definition blocks)。
  • ACPI机器语言(ACPI Machine Language,AML)
是一种由ACPI兼容的OS支持的虚拟机的伪代码(Pseudo-code),里面写有ACPI控制方法和控制对象。
  • 高级可编程中断控制器(Advanced Programmable Interrupt Controller,APIC)
一种中断控制器架构,通常多见于Intel 32位架构(Intel Architecture-based 32-bit)的PC系统。APIC架构支持多处理器中断管理(中断均匀地分布在所有处理器),多I/O子系统支持,与8259A 兼容,并且支持处理器内部中断(Inter-Processor Interrupt,IPI)。这个架构由直属于处
理器的本地APICs(Local APICs)和在(南桥)芯片中的I/O APIC组成。
  • ACPI源语言(ACPI Source Language,ASL)
一种与AML等同的编程语言。ASL编译以后就是 AML镜像(AML images)。

  • 控制方法(Control Method)
控制方法定义OS如何执行一个简单的硬件任务。例如,OS调用控制方法(Control Method)去读取一个高温区的温度。控制方法是用一种叫做AML的编码语言写的,AML可以被兼容ACPI的OS 所解释并执行。ACPI兼容的系统必须在ACPI table中提供一组最小的控制方法。OS提供一组
well-defined 的控制方法,以使ACPI table开发者能够在他们的控制方法中引用。OEM厂商可以通过(要么Including control methods in the BIOS that test configurations and respond as needed、要么为芯片组的不同修订版包含一组不同的控制方法),来使一个BIOS能够同时支持芯片组的不同修订版。

  • 差分系统描述表(Differentiated System Description Table,DSDT)
OEM厂商必须为ACPI兼容的OS提供一个DSDT。这个DSDT包含Differentiated Definition Block,它能提供关于基本系统的实现和配置信息。OS总是在ACPI Namespace中插入DSDT信息,当系统启动的时候,而且绝不能删除它。
  • 可扩展固件接口(Extensible Firmware Interface,EFI)
它是一个在OS和固件平台之间的接口。这个接口的形式是一种包含有平台相关信息的数据表,and boot and run-time service calls that are available to the OS and loader。这些一起为启动OS提供了一个标准的环境。
更多内容请看下回。

这篇关于零知识学习ACPI —— 1. 初识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/616613

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识