CN101334733A - 系统管理模式的模拟方法 - Google Patents

系统管理模式的模拟方法 Download PDF

Info

Publication number
CN101334733A
CN101334733A CNA2007101124410A CN200710112441A CN101334733A CN 101334733 A CN101334733 A CN 101334733A CN A2007101124410 A CNA2007101124410 A CN A2007101124410A CN 200710112441 A CN200710112441 A CN 200710112441A CN 101334733 A CN101334733 A CN 101334733A
Authority
CN
China
Prior art keywords
management mode
system management
simulation system
smm
service routine
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
Application number
CNA2007101124410A
Other languages
English (en)
Inventor
卢瑞荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advantech Co Ltd
Original Assignee
Advantech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advantech Co Ltd filed Critical Advantech Co Ltd
Priority to CNA2007101124410A priority Critical patent/CN101334733A/zh
Publication of CN101334733A publication Critical patent/CN101334733A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

一种模拟系统管理模式的方法,可在单芯片(SOC)计算机提供系统管理模式(SMM)服务,主要BIOS中准备一模拟SMM服务程序,并在有SMM服务需求时,存储芯片组阴影状态、存储系统组态信息、将A/B段内存致能以作为阴影内存及进行SMM服务。SMM服务结束后,BIOS执行该模拟SMM服务程序以将A/B段内存除能,并且恢复原先系统组态信息。该模拟系统管理模式的方法可在单芯片计算机提供如闪存或是USB接口访问的SMM服务。

Description

系统管理模式的模拟方法
技术领域
本发明涉及一种模拟系统管理模式的方法,特别涉及一种用于单芯片(SOC)计算机上,通过基本输入输出系统(BIOS)实现的模拟系统管理模式的方法。
背景技术
在常规的个人计算机上,中断(interrupt)是一种常用的服务。中断服务暂时停止正在执行的操作,而去执行某个特定的操作;当上述操作完成后,计算机继续执行刚刚暂停的操作。在微电脑的系统中,DOS(Disk Operating System,磁盘操作系统)和BIOS(Basic Input OutputSystem,基本输入输出系统)都具有许多ISR(Interrupt Service Routine,中断服务例程),例如屏幕、键盘、磁盘驱动器、打印机、鼠标等多种与输入输出装置有关的控制程序。
通常我们只要在程序中直接使用(INT中断编号)中断命令,即可执行该中断编号的中断服务例程,80X86系列的计算机规划出256种中断情况(即00H~FFH),程序设计师只要针对中断情况的需求来配置片段的命令,即可实现上述中断情况的操作。当CPU(central processingunit,中央处理单元)执行到中断呼叫命令(INT)时,会“中断”目前程序的执行,并将程序执行的控制权转移到上述中断服务例程中,在中断完成后,回到被的“中断”的地点并继续执行其它的命令。
计算机的CPU是通过软件中断的命令(INT中断编码)来取得中断编码,每个中断编号都代表某具有某种功能的程序,例如INT 10H是对屏幕影像进行处理的,INT 16H是对键盘进行处理的,INT 21H是处理DOS功能呼叫的,而以上所述的INT 10H、INT 16H是BIOS的中断,INT 21H是DOS中断。
在MS-DOS开机的后,DOS和BIOS所提供的中断服务例程的节段地址和偏移地址将存放到中断向量表。因为在程序中的命令仅指定编码,CPU是无法执行相应的服务程序。只有在具有地址后,CPU才能从所述地址中得到要执行的服务程序并予以执行。因此这个中断向量表内存放着中断服务程序的入口地址,每个地址占4个字节。
除了前述的中断服务,因特尔(Intel)公司还在笔记本计算机上提供了一种叫做SMM(system management mode,系统管理模式)的中断服务。SMM原本是作为电源管理用的,后来逐渐也为台式计算机采用,并提供为非可屏蔽中断服务(non-maskable interrupt service)。
参考图1,该图说明常规SMM中断服务的流程,当CPU收到SMI要求(步骤S100)时,立即进入SMM模式(步骤S102)。在常规的X86计算机中,在使用闪存装置(flash device)时,BIOS会发出SMI要求;或者,在较旧的操作系统中,USB外围设备会发出SMI要求,以使得CPU执行SMM服务。在进入SMM模式后,CPU会将原本分配VGAIO存取的A/B页(A/B page),当作SMM模式的影象存储器(shadowmemory)。参考图2,该图是计算机系统的系统地址地图。地址从0至9FFFF的存储地址段(segment)为传统上指定给DOS操作系统使用的传统内存。地址从A0000H至BFFFFH的存储地址段被称之为A/B段,是用来当作视频随机存取存储器(video RAM)。当CPU进入系统管理模式(SMM)运作时,这个内存地址段也可当作SMRAM(systemmanagement RAM,系统管理随机存取存储器)。地址自F0000H至FFFFFH的64K的存储地址段被称之为F段,是用来作为系统BIOS读取的存储地址段。超过IM的内存存储空间称为扩充的存储区域。
另外,CPU能将原本存在寄存器(register)中的系统组态信息存储于系统管理随机存取存储器的特定地址,然后再执行存在SMM内存中的服务例程(service routine)(步骤S104),例如使用闪存装置或是建立USB联机的服务例程,以对应原本的SMI中断要求,而使用闪存装置或是建立USB联机的服务。在服务例程执行后,CPU离开SMM模式(步骤S106),此时CPU会把原本的系统组态信息读出,并恢复中断前的操作状态。在前述的SMM中断服务的流程中,CPU主要是通过南桥芯片的SMI管脚从而获知所需要的SMM中断服务,因此主要是通过硬件启动的操作。
然而在单芯片(SOC)计算机上,例如单芯片工业计算机(IPC)并不提供SMM服务,因此造成程序设计师很大不便。
发明内容
因此本发明的目的在于提供一种在非80X86系列计算机上可以模拟系统管理模式的方法。
为达成上述目的,本发明提供一种模拟系统管理模式的方法,可SOC计算机上提供SMM服务。该方法包括在BIOS中准备SMM模拟服务程序,当需要SMM服务时,存储芯片组设为阴影状态、系统组状态信息另外存储、A/B段内存配置为阴影内存并进行特定的SMM服务。SMM服务结束后,BIOS执行上述SMM模拟服务程序后将A/B段内存清除,并且恢复系统组状态信息。该模拟系统管理模式的方法可在SOC计算机提供如闪存或是USB接口访问的SMM服务。
附图说明
图1为常规SMM中断服务的流程示意图;
图2为计算机系统的系统地址图;
图3为本发明的模拟系统管理模式方法的计算机系统模块图;以及
图4为本发明的优选实施方式的模拟系统管理模式方法的流程图。
主要组件符号说明
单芯片10          CPU100
L1高速缓存102     桥芯片组110
中断控制器112     USB主控制器114
SDRAM控制器116    南桥芯片组120
X-bus接口122      多任务器124
DMA控制器126      定时器/计数器128
LPC接口130
步骤S200-S220
具体实施方式
参考图3,该图为实现本发明模拟系统管理模式方法的计算机系统模块图。该计算机系统设置于单芯片(SOC)计算机上,例如使用单芯片10的工业计算机(IPC)。单芯片10主要包含CPU 100、北桥芯片组110、和南桥芯片组120。CPU 100连接到北桥芯片组110和L1快取102。北桥芯片组110连接到南桥芯片组120、USB主控制器114、中断控制器112以及SDRAM控制器116。南桥芯片组120连接到DMA控制器126、定时器/计数器128、LPC(low pin count,少针脚型接口)接口130和X-bus接口122。单芯片10可以通过USB主控制器114访问USB端口0和USB端口1,通过北桥芯片组110访问PCI总线接口,通过多任务器124访问SDRAM/X-bus接口,并且通过LPC接口130存取LPC总线接口。单芯片10可以通过SDRAM/X-bus接口访问随机处理内存(未图标)并通过该LPC总线接口访问闪存(未图示)。
参考图4,该图为本发明优选的模拟系统管理模式方法的实施方式流程图,该方法主要是在BIOS中准备SMM模拟服务程序,用软件的方式模拟SMM服务。首先在BIOS中准备SMM模拟服务程序(步骤S200),该SMM模拟服务程序可以先储存在闪存里,在开机后,通过LPC总线和SDRAM/X-bus的接口存放到随机处理内存,从而加快SMM服务速度。接着BIOS检查是否需要模拟SMM模式(步骤S210),例如BIOS本身可能因为需要执行闪存的读取服务而需要SMM服务,并发出SMI请求;或是在周边组件(如USB组件)发出IRQ需求时,BIOS由此判断是否需要模拟SMM模式。若需要模拟SMM模式,执行步骤S212;否则执行步骤S211并操作其它工作。在步骤S212,SMM模拟服务程序存储芯片组阴影状态(shadow status),因为芯片组存取具有PCI/存储两种模式,因此在进行中断服务前,首先要存储芯片组阴影状态。接着该SMM模拟服务程序会将原先存在于缓存器的系统组态信息存储到特定的SMM内存位置,其地址是SMM内存的基址加上FE00h-FFFFh的偏移量(步骤S214)。然后SMM模拟服务程序使A/B段内存能够作为阴影内存使用,并将中断服务程序的入口地址指到SMM内存的基址(步骤S216)。然后SMM模拟服务程序会执行相对应的SMM服务,例如闪存读取,USB接口访问或是其它INT 13中断服务(步骤S218)。在SMM服务执行完毕的后,该SMM模拟服务程序将会使得A/B段内存无效,并回复到原先存储在缓存器内的系统组态信息(步骤S220)。通过上述步骤达到了在SOC计算机提供SMM的服务,从而简化程序设计。
以上仅为本发明的示例性的实施方案,并非用来对本发明加以限制,本领域的技术人员可以根据本发明的教导,在不背离本发明的范围下对本发明进行各种修改。

Claims (6)

1.一种模拟系统管理模式的方法,所述方法在单芯片计算机提供系统管理模式服务,包括:
在BIOS中准备模拟系统管理模式服务程序;
所述BIOS侦测是否有系统管理模式服务需求;
若有系统管理模式服务需求,则执行所述模拟系统管理模式服务程序并存储芯片组阴影状态;
执行所述模拟系统管理模式服务程序并将系统组态信息存到内存位置;
执行所述模拟系统管理模式服务程序并使A/B段内存能够作为阴影内存;
执行所述模拟系统管理模式服务程序以进行系统管理模式服务;以及,
在所述系统管理模式服务结束后,所述模拟系统管理模式服务程序将使所述A/B段内存无效,并且恢复原先的系统组态信息。
2.如权利要求1所述的模拟系统管理模式的方法,其中所述单芯片计算机为工业计算机。
3.如权利要求1所述的模拟系统管理模式的方法,其中所述系统管理模式服务为闪存访问服务或USB接口访问服务。
4.如权利要求1所述的模拟系统管理模式的方法,其中所述内存位置地址是系统管理模式内存的基址加上FE00h-FFFFh的偏移量。
5.如权利要求1所述的模拟系统管理模式的方法,其中进一步包括:
将模拟系统管理模式服务程序预先存于稳定的内存里。
6.如权利要求5所述模拟系统管理模式的方法,其中进一步包括:
开机后,读取所述模拟系统管理模式服务程序并存储所述程序于随机处理内存。
CNA2007101124410A 2007-06-26 2007-06-26 系统管理模式的模拟方法 Pending CN101334733A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2007101124410A CN101334733A (zh) 2007-06-26 2007-06-26 系统管理模式的模拟方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007101124410A CN101334733A (zh) 2007-06-26 2007-06-26 系统管理模式的模拟方法

Publications (1)

Publication Number Publication Date
CN101334733A true CN101334733A (zh) 2008-12-31

Family

ID=40197349

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101124410A Pending CN101334733A (zh) 2007-06-26 2007-06-26 系统管理模式的模拟方法

Country Status (1)

Country Link
CN (1) CN101334733A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598407A (zh) * 2015-02-03 2015-05-06 杭州士兰控股有限公司 片上系统及控制方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598407A (zh) * 2015-02-03 2015-05-06 杭州士兰控股有限公司 片上系统及控制方法
CN104598407B (zh) * 2015-02-03 2018-11-30 杭州士兰控股有限公司 片上系统及控制方法

Similar Documents

Publication Publication Date Title
EP2202639B1 (en) Virtual machine monitor
US5717903A (en) Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US7158927B2 (en) System and method for the logical substitution of processor control in an emulated computing environment
US6282601B1 (en) Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
US6055643A (en) System management method and apparatus for supporting non-dedicated event detection
US7712104B2 (en) Multi OS configuration method and computer system
CN101739283B (zh) 一种计算机及虚拟系统直接访问计算机硬件的方法
CN101398769B (zh) 一种对操作系统透明的处理器资源整合利用方法
EP0794492A2 (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
EP1879108A1 (en) Method and computer system for restarting an operating system without interrupting operation of other different operating systems running concurrently to said operating system
EP2296089A2 (en) Operating systems
TW201310345A (zh) 一種龍芯cpu主機板bios及中斷的實現方法
US20020099893A1 (en) System and method for the handling of system management interrupts in a multiprocessor computer system
JP2974577B2 (ja) コンピュータシステム
JPH08147173A (ja) エミュレーション装置
EP1410170B1 (en) Logical substitution of processor control in an emulated computing environment
US20030065914A1 (en) Enabling video BIOS and display drivers to leverage system BIOS platform abstract
US5764956A (en) Computer peripheral function emulator
CN101334733A (zh) 系统管理模式的模拟方法
CN100361104C (zh) 中断共享机制下的自定中断信号响应处理方法及系统
JPWO2013125012A1 (ja) 計算機、アクセス管理方法およびアクセス管理プログラム
KR20060023956A (ko) 운영체제
CN102455939A (zh) 系统管理中断机制
JP2011138401A (ja) プロセッサシステム、プロセッサシステムの制御方法、及び制御回路
CN100498721C (zh) 计算机平台主机控制单元数据写入控制方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20081231