CN102455939A - 系统管理中断机制 - Google Patents
系统管理中断机制 Download PDFInfo
- Publication number
- CN102455939A CN102455939A CN2010105218226A CN201010521822A CN102455939A CN 102455939 A CN102455939 A CN 102455939A CN 2010105218226 A CN2010105218226 A CN 2010105218226A CN 201010521822 A CN201010521822 A CN 201010521822A CN 102455939 A CN102455939 A CN 102455939A
- Authority
- CN
- China
- Prior art keywords
- program
- management interrupt
- smm
- system management
- indivisible transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一种系统管理中断机制,适用在以一操作系统执行一应用程序,其中该应用程序包含至少一不可分割交易程序片段(Atomic Program Segment,此程序片段的特性为:此程序的执行不可被中断,且其可存取系统的任何资源),此系统管理中断机制包括:以该操作系统执行该应用程序至该不可分割交易程序片段时,触发一系统管理中断以进入一系统管理模式。于该系统管理模式下,执行一系统管理中断处理程序,以将该不可分割交易程序片段复制至一系统管理模式随机存取存储器中。该系统管理中断处理程序执行该复制的可分割交易程序片段。当该系统管理中断处理程序执行完毕该不可分割交易程序片段时,跳出该系统管理模式。返回该操作系统以继续执行该应用程序。
Description
技术领域
本发明是有关于一种系统管理中断机制,且特别是有关于一种将程序片段复制至系统管理模式随机存取存储器内,并在系统管理中断环境下执行此程序片段的机制。
背景技术
于多重处理系统中,并无法保证一个需要单一性的应用程序片段可以不被其他程序或线程(thread)所中断,更无法保证此程序片段是否可以存取由操作系统管理与限制的系统的任何资源,例如输入输出(I/O)、存储器映射输入输出(MMIO)、存储器或周边控制器接口标准组态空间(PCI/PCIE ConfigurationSpace)、芯片组某些基于安全考量受保护的寄存器。
举例而言,当一个名为存储器注入错误(memory injection error)的应用程序需要存取存储器的任何地址时,但某些存储区块已经受到操作系统保护而为操作系统所拥有,而某些存储区块则为其他程序或线程所拥有,因此此程序不一定有权限可存取上述的存储器的地址。再者,芯片组上的与存储器控制器有关的某些寄存器只能于系统管理模式(System Management Mode,SMM)下被存取,而此程序又必需要能存取这些寄存器方能正常工作,但在操作系统下其却无法存取此些寄存器,故其无法正常工作。此外,此程序也不允许存储器的读取与写入操作被其他执行绪所中断,也就是此程序必须在不被中断下进行。然而,在多重处理系统中,并无法保证此程序不被中断,倘若发生中断执行,则执行结果将呈现错误。
发明内容
本发明提供一种系统管理中断机制,可在系统管理中断环境下以系统管理中断处理程序执行应用程序中的不可分割交易程序片段,无须使用操作系统来达成程序的单一性,并且可存取系统的所有资源。其中,本发明的不可分割交易程序片段(Atomic Program Segment)的定义为:此程序的执行不可被中断(也就是其具有单一性,Atom),且其可存取系统的任何资源。而系统管理中断(System Management Interrupt,SMI)的机制在硬件的设计上正具有上述的特性。
本发明提出一种系统管理中断机制,适用在以一操作系统执行一应用程序,其中该应用程序包含至少一不可分割交易程序片段,此系统管理中断机制包括:以该操作系统执行该应用程序至该不可分割交易程序片段时,触发一系统管理中断以进入一系统管理模式。于该系统管理模式下,执行一系统管理中断处理程序,以将该不可分割交易程序片段复制至一系统管理模式随机存取存储器中。该系统管理中断处理程序执行该不可分割交易程序片段。当该系统管理中断处理程序执行完毕该不可分割交易程序片段时,跳出该系统管理模式。返回该操作系统以继续执行该应用程序。
在本发明的一实施例中,上述的系统管理中断机制,其中以该操作系统执行该应用程序至该不可分割交易程序片段时,还包括将该不可分割交易程序片段的一基底地址与一尺寸写入一存储器中的一扩充基本输入输出系统资料区。
在本发明的一实施例中,上述的系统管理中断机制,其中将该不可分割交易程序片段复制至该系统管理模式随机存取存储器中的步骤包括:将该扩充基本输入输出系统资料区中所写入的该不可分割交易程序片段的该基底地址与该尺寸所指到的不可分割交易程序片段复制到该系统管理模式随机存取存储器中。
在本发明的一实施例中,上述的系统管理中断机制,其中该系统管理中断包括一软件系统管理中断。
在本发明的一实施例中,上述的系统管理中断机制,其中跳出该系统管理模式之前,还包括更新该不可分割交易程序片段的一程序标头中的一执行结果状态。
在本发明的一实施例中,上述的系统管理中断机制,其中返回该操作系统以继续执行该应用程序的步骤还包括该应用程序核对该不可分割交易程序片段的该程序标头中的该执行结果状态。
在本发明的一实施例中,上述的系统管理中断机制,其中跳出该系统管理模式之前,还包括将一程序执行结果写入该不可分割交易程序片段的一程序标头中的一结果栏位。
在本发明的一实施例中,上述的系统管理中断机制,其中该程序执行结果包括一输入参数与一输出参数。
在本发明的一实施例中,上述的系统管理中断机制,其中跳出该系统管理模式的步骤包括借由执行一回复指令以跳出该系统管理模式。
在本发明的一实施例中,上述的系统管理中断机制,其中该不可分割交易程序片段包括一不能被其他程序中断的程序片段且/或是一需存取所有系统资源的程序片段。
基于上述,本发明于操作系统执行应用程序过程中,将应用程序中的不可分割交易程序片段复制至系统管理模式随机存取存储器内,并在系统管理中断环境下,以系统管理中断处理程序执行此不可分割交易程序片段,因此无须以操作系统来达成应用程序的单一性,而同时可以存取系统的所有资源。所以在操作系统下的所有应用程序面临单一性问题或是需要达成存取系统所有资源的目的时,皆可以应用本发明的系统管理中断机制予以解决。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是依照本发明的一实施例的一种系统管理中断机制流程简图。
图2是依照本发明一实施例的应用系统管理中断机制的一系统的示意图。
主要元件符号说明:
S101~S311:系统管理中断机制流程步骤
202:应用程序
204:中央处理单元
206:系统管理模式随机存取存储器
208:系统管理中断处理程序
210:存储器
212:扩充BIOS资料区
212a:基底地址栏位
212b:尺寸栏位
具体实施方式
图1是依照本发明的一实施例的一种系统管理中断机制流程简图。图2是依照本发明一实施例的应用系统管理中断机制的一系统的示意图。请参照图1与图2,于步骤S101中,以一操作系统执行一应用程序202,其中此应用程序202包含至少一不可分割交易程序片段。其中上述不可分割交易程序片段例如是不能被其他程序中断的一程序片段且/或是需要存取所有系统资源的一程序片段。换句话说,上述所谓的不能被其他程序中断的一程序片段,例如是具有单一性的程序片段。此外,此不可分割交易程序片段包含程序标头(header),而此程序标头还至少包括程序片段的进入点(entry)、输入的参数、输出的参数以及执行结果状态。
之后,于步骤S105中,判断操作系统执行上述应用程序202是否执行到此应用程序202的不可分割交易程序片段。当确认操作系统的确执行到此应用程序的不可分割交易程序片段时,则触发一系统管理中断(System ManagementInterrupt,SMI)以进入一系统管理模式(System Management Mode,SMM)(步骤S111),也就是系统管理中断被触发至中央处理单元(Central Processing Unit,CPU)204,由中央处理单元204执行存在于系统管理模式随机存取存储器(SMMRandom Access Memory,SMM RAM)206内的系统管理中断处理程序(SMIhandler,以下简称SMI处理程序)208。反之,则继续以操作系统执行此应用程序202(步骤S101)。
具体而言,系统管理中断为优先权(priority)最高的中断,其包括软件系统管理中断、硬件系统管理中断及周期性系统管理中断。软件SMI是由软件对输入输出端口做写入而触发的SMI。硬件系统管理中断是由硬件对其所检测到的某一个事件所触发的SMI。周期性系统管理中断则由芯片每隔一段固定时间对中央处理单元所触发的系统管理中断。于本发明一实施例中,上述的系统管理中断包括软件SMI。
另外,以操作系统执行应用程序202至不可分割交易程序片段时,还包括将不可分割交易程序片段的一基底地址与一尺寸写入一存储器210中的一扩充基本输入输出系统资料区(Extended BIOS Data Area,EBDA,以下均简称扩充BIOS资料区)212。例如,将不可分割交易程序片段的基底地址(base address)x与尺寸y分别写入扩充BIOS资料区212中的基底地址栏位212a与尺寸栏位212b中。
接着,于步骤S115中,于此系统管理模式下,以中央处理单元204执行SMI处理程序208,以将不可分割交易程序片段复制至系统管理模式随机存取存储器206中。更明确的说,将不可分割交易程序片段复制至系统管理模式随机存取存储器206中的步骤包括将该扩充BIOS资料区212中所写入的不可分割交易程序片段的基底地址x与尺寸y所指到的不可分割交易程序片段复制到系统管理模式随机存取存储器206中。也就是SMI处理程序208将不可分割交易程序片段复制至系统管理模式随机存取存储器206中做为SMI处理程序208的一部分,并且跳至此程序标头的进入点(entry)栏位所指到的程序进入点及依标头的输入参数执行之。
继而,于步骤S211中,以SMI处理程序208执行不可分割交易程序片段。当SMI处理程序208执行完毕不可分割交易程序片段时,则跳出系统管理模式(步骤S215)。也就是在SMI处理程序208执行完毕不可分割交易程序片段时,中央处理单元204会执行一回复(Resume,RSM)指令,使得中央处理单元204离开系统管理模式,并且回到系统管理中断发生时操作系统被中断的程序点。
于一实施例中,跳出系统管理模式之前,还包括更新不可分割交易程序片段的一程序标头中的一状态(status),例如执行结果状态。此外,于另一实施例中跳出系统管理模式之前,还包括将一程序执行结果写入该不可分割交易程序片段的一程序标头中的一结果栏位。上述程序执行结果包括一输入参数与一输出参数。再者,返回操作系统以继续执行应用程序202的步骤还包括应用程序202核对不可分割交易程序片段的程序标头中的执行结果状态与结果栏位。
继而,于步骤S311中,返回操作系统以继续执行应用程序202。
于又一实施例中,为确保应用程序202与SMI处理程序208之间的正确互动,可在应用程序202与SMI处理程序208之间建立一通信协定(protocol)。也就是SMI处理程序208必须提供64位元大真实模式(64bit Big-Real Mode)给需要不可分割交易程序片段,而需要不可分割交易程序片段本身则会认定其不可分割交易式片段是在64位元大真实模式执行,以便其可以存取到大于等于四十亿字节(4Giga Byte)空间,例如存储器、存储器映射输入输出(memory-mappedI/O,MMIO)空间或周边控制器接口标准组态空间(PCI Express configurationspace)。此外,此不可分割交易程序片段必须能独立编译,并假设其执行环境是在64位大真实模式或32位大真实模式。
综上所述,因为系统管理中断机制能让系统只执行一个SMI处理程序,因此可以达到程序不被中断执行的单一性。所以,本发明于操作系统执行应用程序过程中,将应用程序中的不可分割交易程序片段复制至系统管理模式随机存取存储器内,并在系统管理中断环境下,以系统管理中断处理程序执行此不可分割交易程序片段。如此一来,无须以操作系统控管来达成应用程序的单一性,而同时可以存取系统的所有资源,例如输入输出(I/O)、MMIO、存储器或周边控制器接口标准组态空间。所以在操作系统下的所有应用程序面临单一性问题或是需要达成存取系统所有资源的目的时,皆可以应用本发明的系统管理中断机制予以解决。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (10)
1.一种系统管理中断机制,适用在以一操作系统执行一应用程序,其中该应用程序包含至少一不可分割交易程序片段,此系统管理中断机制包括:
以该操作系统执行该应用程序至该不可分割交易程序片段时,触发一系统管理中断以进入一系统管理模式;
于该系统管理模式下,执行一系统管理中断处理程序,以将该不可分割交易程序片段复制至一系统管理模式随机存取存储器中;
该系统管理中断处理程序执行该不可分割交易程序片段;
当该系统管理中断处理程序执行完毕该不可分割交易程序片段时,跳出该系统管理模式;以及
返回该操作系统以继续执行该应用程序。
2.如权利要求1所述的系统管理中断机制,其特征在于,以该操作系统执行该应用程序至该不可分割交易程序片段时,还包括将该不可分割交易程序片段的一基底地址与一尺寸写入一存储器中的一扩充基本输入输出系统资料区。
3.如权利要求2所述的系统管理中断机制,其特征在于,将该不可分割交易程序片段复制至该系统管理模式随机存取存储器中的步骤包括:将该扩充基本输入输出系统资料区中所写入的该不可分割交易程序片段的该基底地址与该尺寸所指到的该不可分割交易程序片段复制到该系统管理模式随机存取存储器中。
4.如权利要求1所述的系统管理中断机制,其特征在于,该系统管理中断包括一软件系统管理中断。
5.如权利要求1所述的系统管理中断机制,其特征在于,跳出该系统管理模式之前,还包括更新该不可分割交易程序片段的一程序标头中的一执行结果状态。
6.如权利要求5所述的系统管理中断机制,其特征在于,返回该操作系统以继续执行该应用程序的步骤还包括该应用程序核对该不可分割交易程序片段的该程序标头中的该执行结果状态。
7.如权利要求1所述的系统管理中断机制,其特征在于,跳出该系统管理模式之前,还包括将一程序执行结果写入该不可分割交易程序片段的一程序标头中的一结果栏位。
8.如权利要求7所述的系统管理中断机制,其特征在于,该程序执行结果包括一输入参数与一输出参数。
9.如权利要求1所述的系统管理中断机制,其特征在于,跳出该系统管理模式的步骤包括借由执行一回复指令以跳出该系统管理模式。
10.如权利要求1所述的系统管理中断机制,其特征在于,该不可分割交易程序片段包括一不能被其他程序中断的程序片段且/或是一需存取所有系统资源的程序片段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105218226A CN102455939A (zh) | 2010-10-19 | 2010-10-19 | 系统管理中断机制 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105218226A CN102455939A (zh) | 2010-10-19 | 2010-10-19 | 系统管理中断机制 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102455939A true CN102455939A (zh) | 2012-05-16 |
Family
ID=46039151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105218226A Pending CN102455939A (zh) | 2010-10-19 | 2010-10-19 | 系统管理中断机制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102455939A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462953A (zh) * | 2013-09-16 | 2015-03-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN108958749A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 实现封装形式的bios数据刷写的方法、装置及设备 |
CN117331676A (zh) * | 2023-11-30 | 2024-01-02 | 上海兆芯集成电路股份有限公司 | 系统管理模式进入方法、处理器和计算机系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078589A1 (en) * | 2000-12-21 | 2004-04-22 | Nicolas Giraud | Method for making secure execution of a programme in a micorprocessor-based electronic module |
CN1647039A (zh) * | 2002-04-18 | 2005-07-27 | 先进微装置公司 | 包含可进入安全执行模式的处理器的一计算机系统的初始化 |
CN101140530A (zh) * | 2006-09-07 | 2008-03-12 | 环隆电气股份有限公司 | 应用程序截获与监控系统控制中断的方法 |
-
2010
- 2010-10-19 CN CN2010105218226A patent/CN102455939A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078589A1 (en) * | 2000-12-21 | 2004-04-22 | Nicolas Giraud | Method for making secure execution of a programme in a micorprocessor-based electronic module |
CN1647039A (zh) * | 2002-04-18 | 2005-07-27 | 先进微装置公司 | 包含可进入安全执行模式的处理器的一计算机系统的初始化 |
CN101140530A (zh) * | 2006-09-07 | 2008-03-12 | 环隆电气股份有限公司 | 应用程序截获与监控系统控制中断的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462953A (zh) * | 2013-09-16 | 2015-03-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104462953B (zh) * | 2013-09-16 | 2018-04-27 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN108958749A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 实现封装形式的bios数据刷写的方法、装置及设备 |
CN117331676A (zh) * | 2023-11-30 | 2024-01-02 | 上海兆芯集成电路股份有限公司 | 系统管理模式进入方法、处理器和计算机系统 |
CN117331676B (zh) * | 2023-11-30 | 2024-03-19 | 上海兆芯集成电路股份有限公司 | 系统管理模式进入方法、处理器和计算机系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2645237B1 (en) | Deadlock/livelock resolution using service processor | |
CN107710174B (zh) | 存储器监视单元 | |
CN101661440A (zh) | 安全信息处理 | |
CN101667154A (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
CN105359101B (zh) | 用于多核处理器的系统管理中断处理 | |
US10229077B2 (en) | Method for data transfer between real-time tasks using a DMA memory controller | |
US6546482B1 (en) | Invalid configuration detection resource | |
US11016768B2 (en) | Hardware support for OS-centric performance monitoring with data collection | |
CN111414626A (zh) | 基于tee扩展的实时性保证方法及系统 | |
US20020099893A1 (en) | System and method for the handling of system management interrupts in a multiprocessor computer system | |
JP5999216B2 (ja) | データ処理装置 | |
CN102455939A (zh) | 系统管理中断机制 | |
CN117234729B (zh) | 动态内存保护方法、装置、计算机设备及存储介质 | |
EP3022643B1 (en) | Techniques for dynamically redirecting device driver operations to user space | |
CN110221861B (zh) | 一种cpu寄存器体系结构及其中断处理方法 | |
Tröger et al. | Software-implemented fault injection at firmware level | |
Huang et al. | Investigating time properties of interrupt-driven programs | |
EP2645258B1 (en) | Multiprocessor system, apparatus and methods | |
JP2011138401A (ja) | プロセッサシステム、プロセッサシステムの制御方法、及び制御回路 | |
US6560698B1 (en) | Register change summary resource | |
CN117272412B (zh) | 中断控制寄存器保护方法、装置、计算机设备及存储介质 | |
TW201216165A (en) | System management interrup mechanism | |
Krishnan | Hardware Breakpoint (or watchpoint) usage in Linux Kernel | |
Staroletov | Towards Model Checking Linux Interrupts Behavior for SMP Systems | |
JP2002091826A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120516 |