CN100524245C - 监控输入/输出端口数据的方法 - Google Patents
监控输入/输出端口数据的方法 Download PDFInfo
- Publication number
- CN100524245C CN100524245C CNB2006101562162A CN200610156216A CN100524245C CN 100524245 C CN100524245 C CN 100524245C CN B2006101562162 A CNB2006101562162 A CN B2006101562162A CN 200610156216 A CN200610156216 A CN 200610156216A CN 100524245 C CN100524245 C CN 100524245C
- Authority
- CN
- China
- Prior art keywords
- data
- write
- output port
- processor
- monitoring input
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种监控输入/输出端口数据的方法,此方法首先致能一个写入捕捉程序,以侦测处理器与控制芯片之间所传输的一信号。当所侦测到的信号为一输入/输出写入周期,且此输入/输出写入周期的写入位址为一特定位址时,发出中断请求至处理器。接着则撷取输入/输出写入周期中欲写入特定位址的写入数据,最后才将写入数据输出至一显示单元显示。据此,本发明在开机自我测试的过程或是进入操作系统后,都能够提供使用者监控输入/输出端口的数据。
Description
技术领域
本发明涉及一种计算机领域的技术,尤其涉及一种监控输入/输出端口数据的方法。
背景技术
在目前的电脑系统中,当使用者电脑按下启动键时,电脑内的基本输入/输出系统(Basic Input/Output System,BIOS)将会最先被启动,以让BIOS对电脑内的硬件设备进行完整的检验和测试,此检验与测试的动作又被称为开机自我测试(Power-On Self Test,POST)。当电脑内的硬件设备通过检验与测试后,BIOS便会将电脑内的硬件信息交给操作系统,让操作系统继续完成开机的流程。但是,若电脑中有某个零件运作失常时,将使得开机程序停留在某个关卡而无法继续正常开机。
早期为了加快系统开发与除错速度,IBM公司在规划电脑系统时,就定义出了一个特殊的输入/输出端口(Input/Output port,以下简称I/O port)用以检查与除错,而此特殊的I/O port所对应至I/O位址为80h。在实际应用80h这个I/O port的做法是,预先在BIOS内储存多个开机自我测试码(POST Code),用来代表不同开机自我测试的阶段。而每当电脑要进入某个开机自我测试的阶段时,此阶段所代表的开机自我测试码将会被送至位址为80h的I/O port。因此,当开机程序中未进入操作系统之前,发生开机不正常的状况时,只要去找出I/O位址为80h中的代码,再找出此代码所对应的检查阶段,就可以检测出电脑的哪个零件出现运作不正常的状况。
上述应用位址为80h的I/O port作为电脑系统除错的方法仍然被沿用至现今的电脑系统。因此,目前电脑系统的研发工程师最常应用一侦错卡(debugcard),来撷取I/O位址为80h中的代码。而目前市面上的侦错卡适用于主机板上周边零件连接接口(Peripheral Component Interconnect,PCI)或工业标准架构(Industry Standard Architecture,ISA)总线的插槽中,并且此侦错卡上具有一七段显示器,来让工程师得知目前I/O位址为80h中的代码。也就是说,工程师在研发或置的过程中,只要是在PCI或ISA插槽上置入此侦错卡,就可以在开机检测的过程中,让工程师由侦错卡上的七段显示器,得知目前在开机程序中所进行的测试阶段。并且,当电脑没有正常开机时,工程师也可由停留于七段显示器上的代码,来得知电脑系统中哪个零件运作出现问题。
然而,目前许多电脑(例如笔记本电脑)的主机板中并没有PCI或ISA插槽,或者是没有多余的插槽,来使用侦错卡,因此,在研发的过程中,工程师常常必须在主机板上焊接侦错电路,以撷取I/O位址为80h中的代码,因而增加笔记本电脑研发的时间与成本。
为了让无法使用侦错卡的电脑系统仍然能够在开机自我测试的过程中,撷取出I/O位址为80h中的代码,因此,工程师在BIOS的程序码中加入一段用于显示I/O位址为80h中数据的显示程序。也就是说,每当电脑要进入某个开机自我测试的阶段时,此阶段所代表的开机自我测试码除了被送至位址为80h的I/O port之外,同时,显示程序也会使得开机自我测试码被送至显示单元显示。
然而,上述的显示程序是被加入BIOS的程序码中而只能在BIOS开机时执行。因此,在电脑执行BIOS程序码时,才会显示出位址为80h的I/O port中的数据。若是在电脑执行其他快闪存储器中的程序码,或是进入操作系统后,工程师皆无法在得知位址为80h的I/O port中的数据。
发明内容
本发明提供一种监控I/O port数据的方法,通过系统的中断机制,撷取写入I/O port的数据,以便随时监控I/O port的数据。
本发明提出一种监控I/O port数据的方法,此方法至少包括下列步骤:提供一处理器与一控制芯片;致能一写入捕捉程序,并侦测处理器与控制芯片之间所传输的一信号;当侦测到上述信号为一输入/输出写入周期(I/O writecycle),且此输入/输出写入周期中的写入位址为一特定位址时,发出一中断请求至处理器;撷取输入/输出写入周期中欲写入特定位址的一写入数据;通过一显示单元显示上述的写入数据。
在本发明的一实施例中,当发出中断请求至处理器之后,还包括下列步骤:记录该处理器的一环境(context)数据。
在本发明的一实施例中,上述显示写入数据的步骤,还包括下列步骤:提供一致能脚位、一时钟脉冲脚位与一数据脚位;以及通过致能脚位、时钟脉冲脚位与数据脚位将写入数据传输至显示单元,以由显示单元显示写入数据。
在本发明的一实施例中,上述显示单元为多个发光二极管(Light EmittingDiode,LED)或一七段显示器二者其一。
在本发明的一实施例中,上述发出中断请求至处理器的步骤之后,还包括下列步骤:放弃(abort)输入/输出写入周期。
在本发明的一实施例中,在撷取写入数据的步骤之后,还包括下列步骤:禁能写入捕捉程序;重新输出输入/输出写入周期;以及在执行完输入/输出写入周期后,再致能写入捕捉程序。
在本发明的一实施例中,上述控制芯片为一南桥芯片,而中断请求由南桥芯片所发出。
在本发明的一实施例中,上述中断请求为一系统管理中断(System ManagerInterrupt,SMI)。
在本发明的一实施例中,上述处理单元在接收到系统管理中断时,包括进入一系统管理模式(System Management Mode,SMM)。
在本发明的一实施例中,上述特定位址为80h。
本发明因采用软件的方式监控处理器以及控制芯片之间的数据传输,并且在监测到写入周期且写入周期所欲写入的I/O port位址正好为所欲监控的I/Oport时,中断处理器的处理并且撷取写入周期中欲写入上述位址的一写入数据,因此在电脑系统中,不需要额外外接特殊元件(例如在电脑系统中外接的侦错卡),便可以监控I/O port的数据。并且不论是在开机自我测试的过程或是进入操作系统后,也都能够监控I/O port的数据。
附图说明
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图作详细说明,其中附图为:
图1是本发明实施例的监控I/O port数据的方法流程图。
图2是本发明实施例的监控I/O port数据的方法流程图。
主要元件符号说明如下:
S110~S140:本发明实施例的监控I/O port数据的方法的各步骤
S200~S280:本发明实施例的监控I/O port数据的方法的各步骤
具体实施方式
由于在现有技术中,必须使用外接的元件来撷取I/O port中的数据,或是只有在开机自我测试的过程中,才利用外加的BIOS程序码来监控I/O port中的数据。因此,本发明提出一种监控I/O port数据的方法,不论是开机自我测试的过程或是进入操作系统后,都不需外接的元件就可以方便地监控到I/O port中的数据。为了方便说明本发明,以下所述的监控I/O port数据的方法是应用于一电脑系统中,且此电脑系统包括处理器与控制芯片,而本发明实施例所监控的I/O port位址为80h。
图1是本发明实施例的监控I/O port数据的方法流程图。请参考图1,首先,致能写入捕捉程序(步骤S110),此写入捕捉程序例如为开机时,常驻于电脑系统中的程序,用以侦测处理器与控制芯片之间所传输的信号,来捕捉处理器与控制芯片之间的特定信号。
接下来,侦测处理器与控制芯片之间所传输的信号是否为输入/输出写入周期(I/O Write Cycle)(步骤S120),当侦测出处理器与控制芯片之间所传输的信号为输入/输出写入周期时,将判断输入/输出写入周期中的写入位址是否为一特定位址(在本实施例中,特定位址例如为80h)(步骤S125),若写入位址不是80h时,将回到步骤S120,继续侦测处理器与控制芯片之间所传输的信号。
若写入位址为80h时,发出一中断请求至处理器(步骤S130),以告知处理器目前的输入/输出写入周期被放弃掉。接下来,撷取输入/输出写入周期中欲写入Port 80h的一写入数据(步骤S135),并通过显示单元显示此写入数据(步骤S140)。
由上述的实施例可观察出,本发明利用一个常驻于电脑系统中的写入捕捉程序以及中断请求,来监控I/O port中的数据,因此,本发明不需利用外接的元件来撷取I/O port中的数据,并且不论是开机自我测试的过程或是进入操作系统后,皆可监控I/O port中的数据。
值得一提的是,虽然在本实施例中已经对监控I/O port数据的方法描绘出了一个可能的型态,但熟知此技术者应知,各厂商对于电脑系统的设计方式都不一样,因此本发明的应用当不限制于此种可能的型态。换言之,只要是利用捕捉写入周期,并在捕捉后发出中断请求,以撷取I/O port中的数据,就已经是符合了本发明的精神所在。
将举出另一实施例以便本技术领域者能通过实施例的教导来施行本发明。
图2是本发明实施例的监控I/O port数据的方法流程图。请参考图2,首先,启动(Power-On)电脑系统(步骤S200)。此时,电脑系统内的基本输入/输出系统(BIOS)将最先被启动,并致能写入捕捉程序(步骤S210)。由于步骤S210与图1中的步骤S110相同,故不再详加赘述。
接下来,电脑系统内将开始执行储存于BIOS的程序码,以对电脑内的硬件设备进行完整的检验和测试,也就是进行开机自我测试(POST)(步骤S215)。以现有技术来说,每当BIOS的程序码要进入某个开机自我测试的阶段时,此阶段所代表的开机自我测试码(以下简称POST Code)将会被送至位址为80h的I/O port。并且,电脑系统内的处理器会通过输入/输出写入周期(I/O writecycle)将欲写入I/O port 80h的数据传输至控制芯片。
之后,上述的写入捕捉程序将侦测处理器与控制芯片之间所传输的信号是否为输入/输出写入周期(步骤S220),当侦测出处理器与控制芯片之间所传输的信号为输入/输出写入周期时,将判断输入/输出写入周期中的写入位址是否为80h(步骤S225)。若写入位址不是80h时,将回到步骤S220,继续侦测处理器与控制芯片之间所传输的信号。
相反地,若写入位址为80h时,控制芯片将发出一中断请求至处理器(步骤S230),并告知处理器输入/输出写入周期被放弃(步骤S235)。此时,由于电脑系统正处于开机自我测试阶段,因此,在步骤S220与步骤S225之后,将判断出处理器已传输写入位址为port 80h的输入/输出写入周期,并在步骤S230中,由控制芯片发出中断请求。
在本实施例中,中断请求包括不可屏蔽中断(Non-Maskable Interrupt,NMI)、系统管理中断(System Manager Interrupt,SMI)或可屏蔽中断(MaskableInterrupt)等等。以下为了方便说明本发明实施例,中断请求皆以系统管理中断为例。
以现有电脑技术来说,控制芯片中例如具有一个SMI#脚位,而控制芯片发出中断请求的方式例如为将SMI#脚位置于低逻辑准位。而当耦接于控制芯片的处理器侦测到SMI#脚位为低逻辑准位时,将进入系统管理中断所对应的系统管理模式(System Management Mode,SMM),以开始处理控制芯片所发出的中断请求。
因此,在步骤S235之后,处理器将进入系统管理模式(步骤S240),并将处理器储存目前的环境(context)数据储存至电脑系统中的记忆区块(步骤S245),以当处理器离开系统管理模式后,能够利用所储存的环境数据,继续执行处理器的指令。而环境数据例如为处理器中的暂存器内的每个变数值。
接下来,处理器将在系统管理模式开始执行一个SMI处理程序(SMIhandler),首先,处理器由上述储存于记忆区块中的环境数据撷取出欲写入port 80h的写入数据(步骤S250),再将写入数据经由一显示程序,显示于显示单元中(步骤S260)。在此为了简化本发明实施例的步骤,此显示程序的详细实施步骤将在之后说明。
在步骤S260之后,上述SMI处理程序将禁能写入捕捉程序(步骤S265),并由处理器再传输一次输入/输出写入周期至控制芯片(步骤S270)。由于此时写入捕捉程序已被停止,因此,处理器所发出的输入/输出写入周期能够传输给控制芯片,以让控制芯片能够依照原始的程序测试其周边的元件。接下来,上述SMI处理程序又将致能写入捕捉程序(步骤S275),以捕捉下次处理器所发出的输入/输出写入周期。最后,处理器将离开系统管理模式,而继续执行其他指令(步骤S280)。
此时,由于电脑系统处于开机自我测试阶段,因此,每个测试阶段所代表的POST Code都将被传输至I/O port 80h,并且,经由上述的步骤S220~S280,能够让显示单元显示出每个测试阶段所代表的POST Code,又仍能够让电脑系统维持原始开机自我测试。而在电脑系统的研发过程中,工程师即能够经由显示单元,得知开机自我测试的每个阶段是否正常。
在电脑系统的开机自我测试结束之后,BIOS便会将电脑内的硬件信息交给操作系统,让操作系统继续完成开机的流程,并进入操作系统。然而,此时若处理器传输一输入/输出写入周期至控制芯片,并且此输入/输出写入周期的写入位址为port 80h时,依照上述的步骤S220~S280,仍然能够撷取出port 80h中的数据,并显示于显示单元中。也就是说,本实施例不论是在电脑系统还在进行开机程序或者是进入操作系统后,都可以撷取出port 80h中的数据,并由显示单元中显示。
上述步骤S260中的显示程序在本实施例中,可以是将撷取出的写入数据利用控制芯片中的通用输入/输出(General-Purpose I/O,GPIO)脚位,传输至显示单元显示。传输的方式为利用控制芯片中的致能脚位、时钟脉冲脚位与数据脚位,当在进行显示程序时,先致能此致能脚位,以告知显示单元已开始传送数据,再利用时钟脉冲脚位传送时钟脉冲信号至显示单元,且在每一时钟脉冲信号的周期内,同时利用数据脚位依序传送一位的写入信号。而在显示单元接收到写入数据后,将所接收到的数据以串行转并行的方式还原写入数据,并于显示单元显示。在本实施例中,显示单元例如为多个发光二极管、七段显示器或是连接于电脑系统的显示器等等,皆可以用于显示所撷取出的写入数据。
本领域具有通常知识者由上述控制芯片的操作可知,控制芯片可以是电脑系统中的南桥芯片、北桥芯片或是其他的嵌入式控制器等等。也就是说,只要是能够接收到处理单元所发出的输入/输出写入周期,就已经能够利用本发明提出的方法,来监控I/O port的数据。
综上所述,本发明因采用软件的方式监控处理器以及控制芯片之间的数据传输,并且在软体监测到写入周期且该写入周期所欲写入的I/O port位址为所欲监控的I/O port时,发出中断请求,来中断处理器的处理并且撷取输入/输出写入周期中欲写入上述位址的一写入数据,因此在电脑系统中,不需要额外外接特殊元件(例如在电脑系统中外接PCI侦错卡),便可以监控I/O port的数据。并且,不论是开机自我测试的过程或是进入操作系统后,皆可监控I/Oport中的数据。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,可作各种等效修改和替换,因此本发明的保护范围当以所附的权利要求书所界定的为准。
Claims (9)
1.一种监控输入/输出端口数据的方法,其特征在于包括下列步骤:
提供一处理器与一控制芯片;
致能一写入捕捉程序,并侦测所述处理器与所述控制芯片之间所传输的一信号;
当侦测到所述信号为一输入/输出写入周期,且所述输入/输出写入周期中的写入位址为一特定位址时,发出一中断请求至所述处理器,所述特定位址为80h;
撷取所述输入/输出写入周期中欲写入所述特定位址的一写入数据;以及
将所述写入数据输出至一显示单元显示。
2.如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,在发出所述中断请求至所述处理器之后,还包括下列步骤:
记录所述处理器的一环境数据。
3.如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,显示所述写入数据的步骤,包括下列步骤:
提供一致能脚位、一时钟脉冲脚位与一数据脚位;以及
通过所述致能脚位、所述时钟脉冲脚位与所述数据脚位将所述写入数据传输至所述显示单元,以由所述显示单元显示所述写入数据。
4.如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,所述显示单元为多个发光二极管或一七段显示器。
5.如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,发出所述中断请求至所述处理器的步骤之后,包括下列步骤:
放弃所述输入/输出写入周期。
6.如权利要求5所述的监控输入/输出端口数据的方法,其特征在于,在撷取所述写入数据的步骤之后,还包括下列步骤:
禁能所述写入捕捉程序;
重新输出所述输入/输出写入周期;以及
在执行完所述输入/输出写入周期后,再致能所述写入捕捉程序。
7.如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,所述控制芯片为一南桥芯片,而所述中断请求由所述南桥芯片所发出。
8.如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,所述中断请求为一系统管理中断。
9.如权利要求8所述的监控输入/输出端口数据的方法,其特征在于,所述处理器在接收到所述系统管理中断时,包括进入一系统管理模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101562162A CN100524245C (zh) | 2006-12-21 | 2006-12-21 | 监控输入/输出端口数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101562162A CN100524245C (zh) | 2006-12-21 | 2006-12-21 | 监控输入/输出端口数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101206606A CN101206606A (zh) | 2008-06-25 |
CN100524245C true CN100524245C (zh) | 2009-08-05 |
Family
ID=39566834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101562162A Expired - Fee Related CN100524245C (zh) | 2006-12-21 | 2006-12-21 | 监控输入/输出端口数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100524245C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9900448B2 (en) | 2011-12-06 | 2018-02-20 | Intel Corporation | Technologies for displaying images during a pre-boot phase of a vehicle computing platform |
CN103870293B (zh) * | 2012-12-13 | 2019-05-31 | 联想(北京)有限公司 | 信息获取方法、信息显示方法和装置以及电子设备 |
CN107451028A (zh) * | 2016-05-31 | 2017-12-08 | 佛山市顺德区顺达电脑厂有限公司 | 错误状态储存方法及服务器 |
CN109117299B (zh) * | 2017-06-23 | 2022-04-05 | 佛山市顺德区顺达电脑厂有限公司 | 服务器的侦错装置及其侦错方法 |
-
2006
- 2006-12-21 CN CNB2006101562162A patent/CN100524245C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101206606A (zh) | 2008-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1588260B1 (en) | Hot plug interfaces and failure handling | |
EP0272036A2 (en) | Methods and apparatus for providing a microprocessor test interface | |
US7882395B2 (en) | Debug device for embedded systems and method thereof | |
US6304984B1 (en) | Method and system for injecting errors to a device within a computer system | |
US8954629B2 (en) | Adapter and debugging method using the same | |
CN100524245C (zh) | 监控输入/输出端口数据的方法 | |
US6725396B2 (en) | Identifying field replaceable units responsible for faults detected with processor timeouts utilizing IPL boot progress indicator status | |
US7747909B2 (en) | Debug card | |
US5307482A (en) | Computer, non-maskable interrupt trace routine override | |
EP0382894A2 (en) | Apparatus for the programmed suspension of processor operation for retry recovery and debug | |
KR100621095B1 (ko) | 주변 장치 초기화를 위한 부팅 시스템 및 부팅 방법 | |
CN100592257C (zh) | 可通过不同接口加载启动程序以启动主板的系统及其方法 | |
CN111708662B (zh) | 调试方法及装置 | |
CN101923503B (zh) | 调整内存内部参数的方法及使用其的电脑系统 | |
CN110955566B (zh) | 侦错方法 | |
US7617417B2 (en) | Method for reading input/output port data | |
JP2004302731A (ja) | 情報処理装置および障害診断方法 | |
CN100403275C (zh) | 应用于固件程序除错的微处理器与方法 | |
CN1123828C (zh) | 显示bios查错码的方法及其装置 | |
US4890285A (en) | Cycle counter for timeout microdiagnostics | |
CN110321171B (zh) | 开机检测装置、系统及其方法 | |
CN100524240C (zh) | 读取输入输出端口数据的方法 | |
CN101639796A (zh) | 计算机系统的检测方法 | |
JP2015130023A (ja) | 情報記録装置、情報処理装置、情報記録方法、及び情報記録プログラム | |
CN101231608A (zh) | 侦错装置及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191223 Address after: No. 99, University Road, high tech Zone, Xuzhou City, Jiangsu Province Patentee after: XUZHOU LIFANG ELECTROMECHANICAL EQUIPMENT MANUFACTURING CO., LTD. Address before: Taipei City, Taiwan Chinese Shilin District Hougang Street No. 66 Patentee before: Yingda Co., Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090805 Termination date: 20191221 |
|
CF01 | Termination of patent right due to non-payment of annual fee |