CN101082879A - 暂存器数据撷取方法与装置 - Google Patents
暂存器数据撷取方法与装置 Download PDFInfo
- Publication number
- CN101082879A CN101082879A CN 200710137375 CN200710137375A CN101082879A CN 101082879 A CN101082879 A CN 101082879A CN 200710137375 CN200710137375 CN 200710137375 CN 200710137375 A CN200710137375 A CN 200710137375A CN 101082879 A CN101082879 A CN 101082879A
- Authority
- CN
- China
- Prior art keywords
- working storage
- data
- user
- flag
- service
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明为一种暂存器数据撷取方法与装置,应用于计算机***之上,该计算机***包含有中央处理单元与芯片组,该装置包含:触发信号产生器;使用者地址暂存器;数据转移暂存器以及使用者接口,而该方法包含下列步骤:首先因应事件发生而发出触发信号至该芯片组;其次发出中断信号至该中央处理单元,使该中央处理单元呼叫处理例程;接着该处理例程根据地址数据去该地址数据所指向的该计算机***的特定暂存器中读取数据并转存于该数据转移暂存器;最后提供该使用者接口来读取该数据转移暂存器中的数据。
Description
技术领域
本发明为一种暂存器数据撷取方法与装置,尤指应用于计算机***上的暂存器数据撷取方法与装置。
背景技术
除错(debug)是计算机***软件/硬件/固件在设计过程中一项重要的操作,而除错程序中有一主要操作就是读取计算机***中各类暂存器中的数值来供除错人员检视。而现今用以检查计算机***中各类暂存器的除错工具软件都是执行于操作***已正常运作的环境下的应用程序,例如常见的kerne ldebugger of Microsoft。但如此一来,在操作***完成加载且正常运作前所发生的问题并无法通过此类除错工具软件来完成查核。且当操作***发生不正常状况时(例如操作***当机),已知的除错工具软件也将随之停止运作而无法正常发挥功能。
举例来说,在操作***加载前,计算机***的基本输入输出***(BIOS)会进行开机自我测试(POST)程序,用以适当地对计算机***中包含中央处理单元、芯片组等的逻辑元件进行初始化的操作,而开机自我测试(POST)的程序是由多个步骤所组成。但在开机自我测试(POST)的程序中产生当机的现象,现存已知的除错工具软件并无法读取计算机***中各类暂存器的数值,所以无法对导致错误发生的原因进行分析,而只能检视基本输入输出***(BIOS)的原始码内容来寻找错误。
另外,即使在操作***已完成加载但后来发生当机现象时,运作在操作***环境下的已知除错工具软件也将随之停止运作而无法读取计算机***中各类暂存器的数值。因此如何改善上述已知手段缺失,为开发本发明的主要目的。
发明内容
本发明为一种暂存器数据撷取方法,应用于计算机***之上,该计算机***包含有中央处理单元与芯片组,其包含下列步骤:因应事件发生而发出触发信号至该芯片组;该芯片组发出中断信号至该中央处理单元,使该中央处理单元执行处理例程;该处理例程根据地址数据去该地址数据所指向的该计算机***的特定暂存器中读取数据并转存于数据转移暂存器;以及提供使用者接口来读取该数据转移暂存器中的数据。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该触发信号的规格可为SERIRQ信号、GPI信号或EXTSMI#信号。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该特定暂存器可以是该中央处理单元的内部暂存器、PCI配置暂存器或是定义于存储器空间地址或输入输出空间地址上的暂存器。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该地址数据存放于使用者地址暂存器中,而该使用者地址暂存器中的该地址数据可以利用该使用者接口来进行设定。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该使用者接口可为指拨开关及/或具有显示器的主机计算机。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该事件可以是该计算机***的开机自我测试程序中的某一步骤结束时、某一预定周期时间到达时、或是使用者触发。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该芯片组发出的该中断信号为***管理中断信号,而该中央处理单元便进入***管理模式并呼叫位于基本输入输出***芯片中的该处理例程。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该处理例程是从地址数据暂存器中读取该地址数据。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该处理例程是根据交握暂存器中所存放的服务完成旗标与交易请求状态旗标来进行数据读取操作,而该数据读取操作包含下列步骤:判断该交易请求状态旗标是否被设定成“1”,若是,便根据该地址数据指向的该特定暂存器中读取数据并储存至该数据转移暂存器,然后将交易请求状态旗标清除为“0”,然后判断该服务完成旗标是否被设定成“1”,若是,将服务完成的旗标清除为“0”并跳出该处理例程及该***管理模式;以及若判断该服务完成旗标为“0”则回到上一步骤。
根据上述构想,本发明所述的暂存器数据撷取方法,其中该交握暂存器为读/写一次清除式暂存器,当处理例程向该交握暂存器的相对位置写入“1”时,便可将该清除交易请求状态旗标或该服务完成旗标清除为“0”。
本发明的另一方面为一种暂存器数据撷取装置,应用于计算机***之上,该计算机***包含有中央处理单元与芯片组,该暂存器数据撷取装置包含:触发信号产生器,其是因应事件发生而发出触发信号至该芯片组,用以触发该芯片组发出中断信号至该中央处理单元,而使该中央处理单元执行处理例程;使用者地址暂存器,该处理例程是根据该使用者地址暂存器中的地址数据去该地址数据所指向的该计算机***的特定暂存器中读取数据;数据转移暂存器,供该处理例程从该特定暂存器中读出的数据进行储存;以及使用者接口,信号连接至该数据转移暂存器、该使用者地址暂存器以及该触发信号产生器,其是用来读取该数据转移暂存器中的数据并对该使用者地址暂存器以及该触发信号产生器输入数据。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该触发信号的规格可为SERIRQ信号、GPI信号或EXTSMI#信号。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该特定暂存器可以是该中央处理单元的内部暂存器、PCI配置暂存器或是定义于存储器空间地址或输入输出空间地址上的暂存器。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该使用者地址暂存器中的该地址数据可以利用该使用者接口来进行设定。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该使用者接口可为指拨开关及/或具有显示器的主机计算机。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该事件可以是该计算机***的开机自我测试程序中的某一步骤结束时、某一预定周期时间到达时、或是使用者触发。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该芯片组发出的该中断信号为***管理中断信号,而该中央处理单元便进入***管理模式并呼叫位于基本输入输出***芯片中的该处理例程。
根据上述构想,本发明所述的暂存器数据撷取装置,其中还包含交握暂存器,该交握暂存器存放有服务完成旗标与交易请求状态旗标,而该处理例程是根据该服务完成旗标与该交易请求状态旗标来进行数据读取操作,而该数据读取操作包含下列步骤:判断该交易请求状态旗标是否被设定成“1”,若是,便根据该地址数据指向的该特定暂存器中读取数据并储存至该数据转移暂存器,然后将交易请求状态旗标清除为“0”,然后判断该服务完成旗标是否被设定成“1”,若是,将服务完成的旗标清除为“0”并跳出该处理例程及该***管理模式;以及若判断该服务完成旗标为“0”则回到上一步骤。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该交握暂存器为读/写一次清除式暂存器,当处理例程向该交握暂存器的相对位置写入“1”时,便可将该清除交易请求状态旗标或该服务完成旗标清除为“0”。
根据上述构想,本发明所述的暂存器数据撷取装置,其中该触发信号产生器、该使用者地址暂存器、该数据转移暂存器、该交握暂存器的电路是可集成于该芯片组中。
附图说明
本发明得通过下列图式及说明,俾得更深入的了解:
图1,其是本发明为改善已知手段所开发出来的除错***应用于计算机***中的功能方块示意图。
图2,其是本发明除错硬件单元内部功能方块示意图。
图3,其是内建于基本输入输出***芯片的处理例程执行时的工作步骤流程图。
图4,其是将本发明软硬件两部分集成后进行的工作步骤流程示意图。
本发明图式中所包含的各元件列式如下:
中央处理单元10 芯片组11
基本输入输出***芯片12 除错***13
除错硬件单元131 处理例程132
总线110 除错硬件单元131
开机自我测试码暂存器1310 触发信号产生器1311
使用者地址暂存器1312 数据转移暂存器1313
交握暂存器1314 使用者接口1315
具体实施方式
请参见图1,其是本发明为改善已知手段所开发出来的除错***应用于计算机***中的功能方块示意图,其中中央处理单元10、芯片组11以及基本输入输出***芯片12是计算机***不可或缺的硬件与固件,而本发明所开发的除错***13则包含两个部分的开发,第一部分是除错硬件单元131,其是通过总线110来与芯片组11进行信号传输,而第二部分则是可内建于基本输入输出***芯片12的处理例程(handler routine)132。以下对两者的细节与运作进行详细说明。
首先,除错硬件单元131可以用PCI总线元件或LPC总线元件的形式完成,意即总线110可用PCI总线或LPC总线来完成。而除错硬件单元131内部功能方块示意图则如图2的所示,其包含有开机自我测试码暂存器(POSTcode register)1310、触发信号产生器1311、使用者地址暂存器1312、数据转移(dump)暂存器1313、交握(hand shake)暂存器1314以及使用者接口1315,其中开机自我测试码暂存器(POST code register)1310用来撷取总线110上所传送的开机自我测试码(POST code),开机自我测试码(POST code)代表开机自我测试程序完成到那一个步骤的代码,而开机自我测试码暂存器(POSTcode register)1310中的开机自我测试码(POST code)可被使用者接口1315来读取。
至于触发信号产生器1311则是因应事件发生而发出***管理中断(System Management Interrupt,简称SMI)的触发信号到芯片组11,进而使芯片组11发出该***管理中断(SMI)至中央处理单元10,让中央处理单元10进入***管理模式(System Management Mode,简称SMM)而呼叫位于基本输入输出***芯片12中的处理例程132。而该触发信号的实现方式基本上需因应芯片组11可支持的规格,而可以是GPI信号、EXTSMI#信号或SERIRQ信号等,至于上述事件可以是开机自我测试程序中的某一步骤结束时,或是某一预定周期时间到达时,或是使用者触发时等等。
而使用者地址暂存器1312则是提供给使用者填入地址数据,该地址数据是指向特定暂存器,而该特定暂存器可以是中央处理单元10的内部暂存器、PCI配置暂存器、或是定义于某一个存储器空间地址(memory space address)或输入输出空间地址(IO space address)上的暂存器。所以根据地址数据所指向的计算机***的特定暂存器,该处理例程(handler routine)132得以从特定暂存器中读取数据,而从处理例程的角度看过来,使用者地址暂存器1312则是一个只读暂存器(read-only register)。
而数据转移暂存器(dump register)1313则提供处理例程(handlerroutine)132转存从特定暂存器中所读取到的数据。至于交握暂存器1314则用以存放两个旗标值,一个为服务完成(service_complete)旗标,另一个为交易请求状态(Transaction_Request)旗标,而该交握暂存器1314较佳可为读/写一次清除(read/write-one-clear)式暂存器来完成。
至于使用者接口1315则是提供使用者对上述各类暂存器进行数值输入或是观察其中存放的数值,其可用指拨开关(DIP SWITCH)所完成的使用者接口1315来进行数值输入的工作,而通过一台具有显示器的主机计算机所完成的使用者接口1315,便可对除错硬件单元131所读出的数值进行观察。而上述的开机自我测试码暂存器(POST code register)1310、触发信号产生器1311、使用者地址暂存器1312、数据转移(dump)暂存器1313以及交握(handshake)暂存器1314皆可集成于芯片组中,或是一起与使用者接口1315一起完成于独立于计算机***外的装置中。
再请参见图3,其是内建于基本输入输出***芯片12的处理例程132执行时的工作步骤流程图,首先,步骤31为先判断交易请求状态(Transaction_Request)旗标是否设定成“1”,若是,便进入步骤32而根据地址暂存器1312中的地址数据指向的暂存器中读取数据,进入步骤33后便将读取到的数据储存至数据转移暂存器(dump register),而步骤34则是清除交易请求状态旗标为“0”,然后进入服务是否结束的判断(步骤35),若“是”(即服务完成的旗标已设为“1”)则进入步骤36来清除服务完成的旗标并跳出处理例程132及***管理模式,若“否”则回到步骤31。如此一来,本发明处理例程132在被呼叫后便可执行读取地址数据所指向的暂存器中数据的操作。而当交握暂存器1314为读/写一次清除(read/write-one-clear)式暂存器时,处理例程132只需向该交握暂存器1314的相对位置写入“1”,便可将清除交易请求状态旗标或服务完成的旗标清除为“0”,可简化软件程序代码的复杂度。
而将上述软硬件两部分集成后进行的工作步骤流程示意图则如图4所示,首先,步骤41为让使用者利用使用者接口1315来设定该使用者地址暂存器1312中的地址数据(同时交易请求状态旗标亦需被设定为1),然后步骤42为由触发信号产生器1311发出触发信号至芯片组11,而芯片组便发出该***管理中断(SMI)至中央处理单元10,让中央处理单元10进入***管理模式(SMM)并呼叫处理例程132进行上述图3的操作。接着进入步骤43,使用者决定是否已是最后一个暂存器读取服务,若“是”则可通过使用者接口1315来将服务完成(service_complete)的旗标设为“1”(步骤44)后再至步骤45中进行交易请求状态(Transaction_Request)旗标的设立,若“否”则直接跳至步骤45进行交易请求状态(Transaction_Request)旗标的设立。至于步骤46则是判断交易请求状态(Transaction_Request)旗标是否被处理例程132清除,若“是”便从数据转移暂存器(dump register)1313中取走数据(步骤47),然后在步骤48则再判断服务完成(service_complete)的旗标是否为“1”,若“是”便结束整个操作并跳出处理例程132及***管理模式,若“否”则再跳回步骤42。
如此一来,使用者通过使用者接口1315对交握暂存器1314及使用者地址暂存器1312的输入,便可决定是否要进入***管理模式及处理例程132中,以及要进行那一个地址上暂存器内容的撷取,还有是否要跳出***管理模式及处理例程132的决定。而由于***管理模式可于独立于操作***之外来运行,而本发明硬件也可独立于计算机***之外还独立操作,因此本发明确实可改善已知手段缺失,即使在操作***尚未加载或计算机当机时都可正常运作,故可达成开发本发明的主要目的。而本发明可广泛应用至各式计算机***中,因此本发明得由本领域技术人员任施匠思而为诸般修饰,然皆不脱如附权利要求范围所欲保护者。
Claims (11)
1.一种暂存器数据撷取方法,应用于计算机***之上,该计算机***包含有中央处理单元与芯片组,其包含下列步骤:
因应事件发生而发出触发信号至该芯片组;
该芯片组发出中断信号至该中央处理单元,使该中央处理单元呼叫处理例程;
根据地址数据所指向的该计算机***的特定暂存器,该处理例程从该特定暂存器中读取数据并转存于数据转移暂存器;以及
提供使用者接口来读取该数据转移暂存器中的数据。
2.根据权利要求1所述的暂存器数据撷取方法,其中该地址数据存放于使用者地址暂存器中,而该使用者地址暂存器中的该地址数据可以利用该使用者接口来进行设定。
3.根据权利要求1所述的暂存器数据撷取方法,其中该事件可以是该计算机***的开机自我测试程序中的某一步骤结束时、某一预定周期时间到达时、或是使用者触发。
4.根据权利要求1所述的暂存器数据撷取方法,其中该芯片组发出的该中断信号为***管理中断信号,而该中央处理单元便进入***管理模式并呼叫位于基本输入输出***芯片中的该处理例程以从地址数据暂存器中读取该地址数据。
5.根据权利要求1所述的暂存器数据撷取方法,其中该处理例程是根据交握暂存器中所存放的服务完成旗标与交易请求状态旗标来进行数据读取操作,而该数据读取操作包含下列步骤:
判断该交易请求状态旗标是否被设定成“1”,若是,便根据该地址数据指向的该特定暂存器中读取数据并储存至该数据转移暂存器,然后将交易请求状态旗标清除为“0”,然后判断该服务完成旗标是否被设定成“1”,若是,将服务完成的旗标清除为“0”并跳出该处理例程及该***管理模式;以及
若判断该服务完成旗标为“0”则回到上一步骤;
其中该交握暂存器为读/写一次清除式暂存器,当处理例程向该交握暂存器的相对位置写入“1”时,便可将该清除交易请求状态旗标或该服务完成旗标清除为“0”。
6.一种暂存器数据撷取装置,应用于计算机***之上,该计算机***包含有中央处理单元与芯片组,该暂存器数据撷取装置包含:
触发信号产生器,其是因应事件发生而发出触发信号至该芯片组,用以触发该芯片组发出中断信号至该中央处理单元,而使该中央处理单元呼叫处理例程;
使用者地址暂存器,提供该处理例程根据该使用者地址暂存器中的地址数据去该地址数据所指向的该计算机***的特定暂存器中读取数据;
数据转移暂存器,供该处理例程从该特定暂存器中读出的数据进行储存;以及
使用者接口,信号连接至该数据转移暂存器、该使用者地址暂存器以及该触发信号产生器,其是用来读取该数据转移暂存器中的数据并对该使用者地址暂存器以及该触发信号产生器输入数据。
7.根据权利要求6所述的暂存器数据撷取装置,其中该特定暂存器可以是该中央处理单元的内部暂存器、PCI配置暂存器或是定义于存储器空间地址或输入输出空间地址上的暂存器。
8.根据权利要求6所述的暂存器数据撷取装置,其中该使用者地址暂存器中的该地址数据可以利用该使用者接口来进行设定。
9.根据权利要求6所述的暂存器数据撷取装置,其中该事件可以是该计算机***的开机自我测试程序中的某一步骤结束时、某一预定周期时间到达时、或是使用者触发。
10.根据权利要求6所述的暂存器数据撷取装置,其中该芯片组发出的该中断信号为***管理中断信号,而该中央处理单元便进入***管理模式并呼叫位于基本输入输出***芯片中的该处理例程。
11.根据权利要求6所述的暂存器数据撷取装置,其中还包含交握暂存器,该交握暂存器存放有服务完成旗标与交易请求状态旗标,而该处理例程根据该服务完成旗标与该交易请求状态旗标来进行数据读取操作,而该数据读取操作包含下列步骤:
判断该交易请求状态旗标是否被设定成“1”,若是,便根据该地址数据指向的该特定暂存器中读取数据并储存至该数据转移暂存器,然后将交易请求状态旗标清除为“0”,然后判断该服务完成旗标是否被设定成“1”,若是,将服务完成的旗标清除为“0”并跳出该处理例程及该***管理模式;以及
若判断该服务完成旗标为“0”则回到上一步骤;
其中该交握暂存器为读/写一次清除式暂存器,当处理例程向该交握暂存器的相对位置写入“1”时,便可将该清除交易请求状态旗标或该服务完成旗标清除为“0”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101373752A CN100527094C (zh) | 2007-07-25 | 2007-07-25 | 暂存器数据撷取方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101373752A CN100527094C (zh) | 2007-07-25 | 2007-07-25 | 暂存器数据撷取方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101082879A true CN101082879A (zh) | 2007-12-05 |
CN100527094C CN100527094C (zh) | 2009-08-12 |
Family
ID=38912462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101373752A Active CN100527094C (zh) | 2007-07-25 | 2007-07-25 | 暂存器数据撷取方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100527094C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826046B (zh) * | 2009-03-06 | 2011-12-14 | 纬创资通股份有限公司 | 计算机开机除错方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI579695B (zh) * | 2011-12-28 | 2017-04-21 | 瑞昱半導體股份有限公司 | 對處理器的快取進行清除的方法以及該處理器 |
-
2007
- 2007-07-25 CN CNB2007101373752A patent/CN100527094C/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826046B (zh) * | 2009-03-06 | 2011-12-14 | 纬创资通股份有限公司 | 计算机开机除错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100527094C (zh) | 2009-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7506205B2 (en) | Debugging system and method for use with software breakpoint | |
US7237149B2 (en) | Method and apparatus for qualifying debug operation using source information | |
CN103116529A (zh) | 用于实时检测缓冲区溢出致堆内存损坏的方法和设备 | |
US20070168722A1 (en) | Method and apparatus for detecting a fault condition and restoration thereafter using user context information | |
CA1218748A (en) | Method and apparatus for self-testing of floating point accelerator processors | |
US20080228966A1 (en) | System, apparatus, computer program product for performing operational validation with limited cpu use of a communications network | |
CN100444127C (zh) | 软件测试***和软件测试方法 | |
CN103197914B (zh) | 多处理器延迟执行的方法和*** | |
CN104866443A (zh) | 可中断存储独占 | |
CN104077220A (zh) | Mips架构操作***内核的调试方法和装置 | |
CN110704303B (zh) | 一种测试覆盖度信息的获取方法及装置 | |
CN100527094C (zh) | 暂存器数据撷取方法与装置 | |
JP4564616B2 (ja) | デバッグ・データ処理装置 | |
CN111159023A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN101124547A (zh) | 可测试的多处理器***和用于测试处理器***的方法 | |
CN100524245C (zh) | 监控输入/输出端口数据的方法 | |
JP4558376B2 (ja) | コントローラ | |
US8990624B2 (en) | Emulator verification system, emulator verification method | |
JP2014182676A (ja) | ログ採取装置、演算装置、およびログ採取方法 | |
CN100426234C (zh) | 测量基本输入输出***的自我开机测试时间的方法 | |
JP4600134B2 (ja) | マルチプロセッサシステム | |
CN101430656B (zh) | 特别模块寄存器的读写方法 | |
CN101311909A (zh) | 诊断***异样的方法 | |
CN116719746B (zh) | 调试方法、设备、待调试产品和计算机存储介质 | |
CN101482896A (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 |