监控输入/输出端口数据的方法

文档序号:6563405阅读:261来源:国知局
专利名称:监控输入/输出端口数据的方法
技术领域
本发明涉及一种计算机领域的技术,尤其涉及一种监控输入/输出端口数 据的方法。
背景技术
在目前的电脑系统中,当使用者电脑按下启动键时,电脑内的基本输入/
输出系统(Basic Input/Output System, BIOS)将会最先被启动,以让BI0S对 电脑内的硬件设备进行完整的检验和测试,此检验与测试的动作又被称为开机 自我测试(Power-On Self Test, POST)。当电脑内的硬件设备通过检验与测试 后,BIOS便会将电脑内的硬件信息交给操作系统,让操作系统继续完成开机的 流程。但是,若电脑中有某个零件运作失常时,将使得开机程序停留在某个关 卡而无法继续正常开机。
早期为了加快系统开发与除错速度,IBM公司在规划电脑系统时,就定义 出了一个特殊的输入/输出端口 (Input/Output port,以下简称I/O port)用以 检査与除错,而此特殊的I/O port所对应至1/0位址为80h。在实际应用80h 这个I/Oport的做法是,预先在BIOS内储存多个开机自我测试码(POST Code), 用来代表不同开机自我测试的阶段。而每当电脑要进入某个开机自我测试的阶 段时,此阶段所代表的开机自我测试码将会被送至位址为80h的1/0port。因 此,当开机程序中未进入操作系统之前,发生开机不正常的状况时,只要去找 出1/0位址为80h中的代码,再找出此代码所对应的检查阶段,就可以检测出 电脑的哪个零件出现运作不正常的状况。
上述应用位址为80h的I/O port作为电脑系统除错的方法仍然被沿用至 现今的电脑系统。因此,目前电脑系统的研发工程师最常应用一侦错卡(debug card),来撷取1/0位址为80h中的代码。而目前市面上的侦错卡适用于主机 板上周边零件连接接口 (Peripheral Component Interconnect, PCI)或工业标 准架构(Industry Standard Architecture, ISA)总线的插槽中,并且此侦错
卡上具有一七段显示器,来让工程师得知目前1/0位址为80h中的代码。也就 是说,工程师在研发或置的过程中,只要是在PCI或ISA插槽上置入此侦错卡, 就可以在开机检测的过程中,让工程师由侦错卡上的七段显示器,得知目前在 开机程序中所进行的测试阶段。并且,当电脑没有正常开机时,工程师也可由 停留于七段显示器上的代码,来得知电脑系统中哪个零件运作出现问题。
然而,目前许多电脑(例如笔记本电脑)的主机板中并没有PCI或ISA插槽, 或者是没有多余的插槽,来使用侦错卡,因此,在研发的过程中,工程师常常 必须在主机板上焊接侦错电路,以撷取I/0位址为80h中的代码,因而增加笔 记本电脑研发的时间与成本。
为了让无法使用侦错卡的电脑系统仍然能够在开机自我测试的过程中,撷 取出I/O位址为80h中的代码,因此,工程师在BIOS的程序码中加入一段用 于显示1/0位址为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数据的方法,此方法至少包括下列步骤 提供一处理器与一控制芯片;致能一写入捕捉程序,并侦测处理器与控制芯片之间所传输的一信号;当侦测到上述信号为一输入/输出写入周期(1/0 write cycle),且此输入/输出写入周期中的写入位址为一特定位址时,发出--中断 请求至处理器;撷取输入/输出写入周期中欲写入特定位址的--写入数据;通 过一显示单元显示上述的写入数据。
在本发明的一实施例中,当发出中断请求至处理器之后,还包括下列步骤 记录该处理器的一环境(context)数据。
在本发明的一实施例中,上述显示写入数据的步骤,还包括下列步骤提 供一致能脚位、 一时钟脉冲脚位与一数据脚位;以及通过致能脚位、时钟脉冲 脚位与数据脚位将写入数据传输至显示单元,以由显示单元显示写入数据。
在本发明的一实施例中,上述显示单元为多个发光二极管(Light Emitting Diode, LED)或一七段显示器二者其一。
在本发明的一实施例中,上述发出中断请求至处理器的步骤之后,还包括 下列步骤放弃(abort)输入/输出写入周期。
在本发明的一实施例中,在撷取写入数据的步骤之后,还包括下列步骤 禁能写入捕捉程序;重新输出输入/输出写入周期;以及在执行完输入/输出写 入周期后,再致能写入捕捉程序。
在本发明的一实施例中,上述控制芯片为一南桥芯片,而中断请求由南桥 芯片所发出。
在本发明的一实施例中,上述中断请求为一系统管理中断(System Manager Interrupt, SMI)。
在本发明的一实施例中,上述处理单元在接收到系统管理中断时,包括进 入一系统管理模式(System Management Mode, SMM)。 在本发明的一实施例中,上述特定位址为80h。
本发明因采用软件的方式监控处理器以及控制芯片之间的数据传输,并且 在监测到写入周期且写入周期所欲写入的I/O port位址正好为所欲监控的I/O port时,中断处理器的处理并且撷取写入周期中欲写入上述位址的一写入数 据,因此在电脑系统中,不需要额外外接特殊元件(例如在电脑系统中外接的 侦错卡),便可以监控I/0 port的数据。并且不论是在开机自我测试的过程或 是进入操作系统后,也都能够监控I/0 port的数据。


为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配 合附图作详细说明,其中附图为
图1是本发明实施例的监控I/O port数据的方法流程图。
图2是本发明实施例的监控I/O port数据的方法流程图。
主要元件符号说明如下
S110 S140:本发明实施例的监控I/0 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/Oport数据的方法流程图。请参考图1,首 先,致能写入捕捉程序(步骤SllO),此写入捕捉程序例如为开机时,常驻于电 脑系统中的程序,用以侦测处理器与控制芯片之间所传输的信号,来捕捉处理 器与控制芯片之间的特定信号。
接下来,侦测处理器与控制芯片之间所传输的信号是否为输入/输出写入 周期(IA) 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/0port数据的方法流程图。请参考图2,首 先,启动(Power-0n)电脑系统(步骤S200)。此时,电脑系统内的基本输入/输 出系统(BIOS)将最先被启动,并致能写入捕捉程序(步骤S210)。由于步骤S210 与图1中的步骤S110相同,故不再详加赘述。
接下来,电脑系统内将开始执行储存于BIOS的程序码,以对电脑内的硬 件设备进行完整的检验和测试,也就是进行开机自我测试(POST)(步骤S215)。 以现有技术来说,每当BIOS的程序码要进入某个开机自我测试的阶段时,此 阶段所代表的开机自我测试码(以下简称POST Code)将会被送至位址为80h的 I/O port。并且,电脑系统内的处理器会通过输入/输出写入周期(1/0 write cycle)将欲写入1/0 port 80h的数据传输至控制芯片。
之后,上述的写入捕捉程序将侦测处理器与控制芯片之间所传输的信号是 否为输入/输出写入周期(步骤S220),当侦测出处理器与控制芯片之间所传输 的信号为输入/输出写入周期时,将判断输入/输出写入周期中的写入位址是否 为80h(步骤S225)。若写入位址不是80h时,将回到步骤S220,继续侦测处理 器与控制芯片之间所传输的信号。
相反地,若写入位址为80h时,控制芯片将发出一中断请求至处理器(步 骤S230),并告知处理器输入/输出写入周期被放弃(步骤S235)。此时,由于 电脑系统正处于开机自我测试阶段,因此,在步骤S220与步骤S225之后,将 判断出处理器已传输写入位址为port 80h的输入/输出写入周期,并在步骤 S230中,由控制芯片发出中断请求。
在本实施例中,中断请求包括不可屏蔽中断(Non- Maskable Interrupt, NMI)、系统管理中断(SystemManager Interr叩t, SMI)或可屏蔽中断(Maskable Interrupt)等等。以下为了方便说明本发明实施例,中断请求皆以系统管理中 断为例。
以现有电脑技术来说,控制芯片中例如具有一个SMItt脚位,而控制芯片发 出中断请求的方式例如为将SMItt脚位置于低逻辑准位。而当耦接于控制芯片的 处理器侦测到SMItt脚位为低逻辑准位时,将进入系统管理中断所对应的系统管 理模式(System Management Mode, SMM),以开始处理控制芯片所发出的中断 请求。
因此,在步骤S235之后,处理器将进入系统管理模式(步骤S240),并将 处理器储存目前的环境(context)数据储存至电脑系统中的记忆区块(步骤 S245),以当处理器离开系统管理模式后,能够利用所储存的环境数据,继续 执行处理器的指令。而环境数据例如为处理器中的暂存器内的每个变数值。
接下来,处理器将在系统管理模式开始执行一个SMI处理程序(SMI handler),首先,处理器由上述储存于记忆区块中的环境数据撷取出欲写入 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 1/0, GPIO)脚位,传输至 显示单元显示。传输的方式为利用控制芯片中的致能脚位、时钟脉冲脚位与数
据脚位,当在进行显示程序时,先致能此致能脚位,以告知显示单元已开始传 送数据,再利用时钟脉冲脚位传送时钟脉冲信号至显示单元,且在每一时钟脉 冲信号的周期内,同时利用数据脚位依序传送一位的写入信号。而在显示单元 接收到写入数据后,将所接收到的数据以串行转并行的方式还原写入数据,并 于显示单元显示。在本实施例中,显示单元例如为多个发光二极管、七段显示 器或是连接于电脑系统的显示器等等,皆可以用于显示所撷取出的写入数据。
本领域具有通常知识者由上述控制芯片的操作可知,控制芯片可以是电脑系统中的南桥芯片、北桥芯片或是其他的嵌入式控制器等等。也就是说,只要 是能够接收到处理单元所发出的输入Z输出写入周期,就已经能够利用本发明 提出的方法,来监控I/O port的数据。
综上所述,本发明因采用软件的方式监控处理器以及控制芯片之间的数据 传输,并且在软体监测到写入周期且该写入周期所欲写入的I/O port位址为 所欲监控的I/0 port时,发出中断请求,来中断处理器的处理并且撷取输入/ 输出写入周期中欲写入上述位址的一写入数据,因此在电脑系统中,不需要额 外外接特殊元件(例如在电脑系统中外接PCI侦错卡),便可以监控I/O port 的数据。并且,不论是开机自我测试的过程或是进入操作系统后,皆可监控I/O port中的数据。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所 属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,可作各种等 效修改和替换,因此本发明的保护范围当以所附的权利要求书所界定的为准。
权利要求
1. 一种监控输入/输出端口数据的方法,其特征在于包括下列步骤提供一处理器与一控制芯片;致能一写入捕捉程序,并侦测所述处理器与所述控制芯片之间所传输的一信号;当侦测到所述信号为一输入/输出写入周期,且所述输入/输出写入周期中的写入位址为一特定位址时,发出一中断请求至所述处理器;撷取所述输入/输出写入周期中欲写入所述特定位址的一写入数据;以及将所述写入数据输出至一显示单元显示。
2. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,在发 出所述中断请求至所述处理器之后,还包括下列步骤记录所述处理器的一环境数据。
3. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,显示所述写入数据的步骤,包括下列步骤提供一致能脚位、 一时钟脉冲脚位与一数据脚位;以及通过所述致能脚位、所述时钟脉冲脚位与所述数据脚位将所述写入数据传 输至所述显示单元,以由所述显示单元显示所述写入数据。
4. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,所 述显示单元为多个发光二极管或一七段显示器。
5. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,发出 所述中断请求至所述处理器的步骤之后,包括下列步骤放弃所述输入/输出写入周期。
6. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,在撷 取所述写入数据的步骤之后,还包括下列步骤禁能所述写入捕捉程序; 重新输出所述输入/输出写入周期;以及在执行完所述输入/输出写入周期后,再致能所述写入捕捉程序。
7. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,所述 控制芯片为一南桥芯片,而所述中断请求由所述南桥芯片所发出。
8. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,所述 中断请求为一系统管理中断。
9. 如权利要求8所述的监控输入/输出端口数据的方法,其特征在于,所述处理单元在接收到所述系统管理中断时,包括进入一系统管理模式。
10. 如权利要求1所述的监控输入/输出端口数据的方法,其特征在于,所 述特定位址为80h。
全文摘要
一种监控输入/输出端口数据的方法,此方法首先致能一个写入捕捉程序,以侦测处理器与控制芯片之间所传输的一信号。当所侦测到的信号为一输入/输出写入周期,且此输入/输出写入周期的写入位址为一特定位址时,发出中断请求至处理器。接着则撷取输入/输出写入周期中欲写入特定位址的写入数据,最后才将写入数据输出至一显示单元显示。据此,本发明在开机自我测试的过程或是进入操作系统后,都能够提供使用者监控输入/输出端口的数据。
文档编号G06F11/32GK101206606SQ20061015621
公开日2008年6月25日 申请日期2006年12月21日 优先权日2006年12月21日
发明者卢盈志 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1