CN1906572A - 用于使用计数器生成延迟的方法和装置 - Google Patents

用于使用计数器生成延迟的方法和装置 Download PDF

Info

Publication number
CN1906572A
CN1906572A CNA2004800410087A CN200480041008A CN1906572A CN 1906572 A CN1906572 A CN 1906572A CN A2004800410087 A CNA2004800410087 A CN A2004800410087A CN 200480041008 A CN200480041008 A CN 200480041008A CN 1906572 A CN1906572 A CN 1906572A
Authority
CN
China
Prior art keywords
count value
value
counter
instruction
time delay
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
Application number
CNA2004800410087A
Other languages
English (en)
Other versions
CN1906572B (zh
Inventor
Y·刘
L·陈
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1906572A publication Critical patent/CN1906572A/zh
Application granted granted Critical
Publication of CN1906572B publication Critical patent/CN1906572B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode

Abstract

公开了用于使用计数器来生成延迟时间的方法、装置和制品。特别地,所述方法、装置和制品确定与延迟时间相关联的循环数目值,以及与计数器相关联的至少一个特征值。然后基于所述循环数目值确定剩余计数值。基于所述循环数目值和所述剩余计数值,用计数器生成延迟时间。

Description

用于使用计数器生成延迟的方法和装置
本公开的领域
本公开总地涉及处理器系统,并且更特别地,涉及用于使用计数器在处理器系统内生成延迟时间(delay time)的方法、装置和制品。
背景
众所周知,处理器系统的操作依赖于众多的设计考虑,所述设计考虑与例如处理器核心(core)设计、指令集实现和硬件兼容性有关。尽管一般来说,许多设计考虑与处理器系统的硬件组件有关,但是设计考虑中的一些与那些硬件组件在处理器系统的运行时阶段(runtime phase)的性能有关。
生成精确的延迟时间或定时(timing)是硬件相关的设计考虑,在处理器系统的运行时阶段具有特别的重要性。一般来说,延迟时间与处理器系统的各个部分相关联,所述各个部分包括硬件、固件、软件以及它们的组合。例如,在硬件初始化过程期间,初始化某些外设通常需要生成精确的延迟时间。特别地,初始化外设可能需要根据精确受控的时序(time sequence)以连续方式设置所述外设中的寄存器位(register bit)。通常,使用固件来实现受控的时序,当执行所述固件时,所述固件生成预先确定的延迟时间和/或定时中断。
定时或延迟时间的重要性的另一个实施例包括外设通信,在所述通信中,处理器系统与具有特定定时要求的外部外设进行通信。例如,这样的定时要求可以包括以特定时间间隔轮询设备。
延迟时间或定时通常使用诸如计时器中断和时钟中断的中断来实现。一般来说,中断是通常用来生成合适的定时或延迟时间的可靠并且有效的资源。然而,在处理器系统的运行时阶段,中断不是总是可以获得的,由此使得在没有这些资源的情况下,难以生成合适的定时或延迟时间。
当处理器和外设被初始化以准备引导操作系统时,在处理器系统的预引导环境中可能发生其中中断是不可获得的一种示例性情形。特别地,在可扩展固件接口(EFI)的执行期间,在预引导环境中中断是不可获得的,所述可扩展固件接口遵循由圣克拉拉市的英特尔公司于2000年12月12日发布的可扩展固件接口规范1.02版。因此,在不使用中断的情况下在预引导环境中生成精确的定时或延迟时间通常是不可行的。
附图简要说明
图1是可以用来生成期望的延迟时间的示例性系统的功能框图。
图2是与使用图1的时间/计数器生成期望的延迟时间的操作相关联的计时器/计数器的示例性计数线(count line)和特征值。
图3是基于图2的示例性计数线和多个计数值的示例性计数器查询(poll)过程的图。
图4是可以由图1的示例性系统实现的示例性延迟时间生成方法的流程图。
图5是可以由图1的示例性系统实现的另一种示例性延迟时间生成方法的流程图。
图6是可以用来实现本文所描述的装置、方法和制品的示例性处理器系统的框图。
详细描述
图1是可以用来生成期望的延迟时间的示例性系统100的功能框图。然而,在详细讨论图1的系统100之前,认识到可以使用任何期望的硬件和/或软件的组合来实现图1中示出的结构是很重要的。例如,可以使用一个或更多个集成电路、分立的半导体组件或无源电子组件。可附加地或可替换地,可以使用储存在机器可读介质上的指令、代码或其他软件和/或固件等来实现所述结构中的一些或全部或者其中的部分,例如,当由处理器系统(例如图6的处理器系统610)执行时,所述指令、代码或其他软件和/或固件执行本文所公开的方法(例如图4和5中示出的方法)。
一般来说,示例性系统100使用计数器(例如计时器/计数器)来生成精确的延迟时间,而不使用中断或类似的方法。因此,示例性系统100可以被用来,例如在中断和/或其他定时资源可能不可获得的处理器系统的预引导环境中或者在任何其他运行时阶段或操作状态中生成精确的延迟时间。更具体地,如下面更详细讨论的,示例性系统100使用计数器(或计时器/计数器)的已知特征,例如最小与最大计数值,以及计数器从最小计数值计数到最大计数值所需要的时间量,来生成精确的延迟时间。
在一些实施例中,示例性系统100计算使用计数器生成期望的延迟时间所需要的循环数目值(例如计时器/计数器翻转事件)以及剩余或剩下的计数值。示例性系统100还可以被配置为在例如查询过程中读取计数器值(即计数值)。然后,示例性系统100可以基于获得的计数值和计算的值来做比较,来生成延迟时间。
现在详细参照图1,示例性系统100包括计时器/计数器102、计数读取器104、值修改器106、比较器108、值生成器110以及循环计数器112,它们全部可以如示出的那样以可通信的方式耦合。计时器/计数器102可以是具有任何期望位长的不可重置或可重置计数器和/或计时器(例如8位计时器/计数器、16位计时器/计数器等等),所述计时器/计数器通过递增或递减计数值来生成计数值。特别地,计时器/计数器102可以被配置为将计数值从最小计数值递增到最大计数值,并且如下面结合图2所更详细地描述的那样生成翻转事件(rollover event)。计时器/计数器102以可通信的方式耦合到计数读取器104并且允许计数读取器104读取它的计数值,和/或被配置为将它的计数值发送到计数读取器104。此外,计时器/计数器102以可通信的方式耦合到值生成器110,并且将计时器/计数器102的特征值提供给值生成器110。
如图1中所示出,计数读取器104以可通信的方式耦合到计时器/计数器102、值修改器106、比较器108和值生成器110。计数读取器104从计时器/计数器102获得计数值,并且可以被配置为对计时器/计数器102进行单次读取操作(即获得单个计数值)和/或通过查询过程或者用于获得计数值的任何其他期望的技术对计时器/计数器102进行多次读取操作。计数读取器104还可以被配置为将计数值从计时器/计数器102传送到值修改器106、比较器108和值生成器110。
值修改器106可以被配置为修改和/或更新值,例如计数变量值,如下面所更详细地描述的,所述计数变量值可以被用来储存由计数读取器104读取的计时器/计数器102的计数值。特别地,值修改器106可以被配置为接收或取得(retrieve)来自计数读取器104的计数值(例如从计时器/计数器102读取的计数值)以及来自比较器108的比较结果。值修改器106可以基于所述计数值和/或比较结果,修改或更新例如计数变量值。此外,计数变量值可以被传输到比较器108。
比较器108可以被配置为接收或取得来自计数读取器104的计数值、来自值修改器106的可变计数值、来自值生成器110的延迟时间生成值以及来自循环计数器112的循环计数值。比较器108可以被配置为基于计数值来做比较,并且基于所述比较生成比较结果。此外,比较结果可以被传输到值修改器106、值生成器110和循环计数器112。
值生成器110可以被配置为生成值,例如与生成期望的延迟时间相关联的延迟时间生成值。此外,值生成器110可以被配置为接收或取得来自计数读取器104的计数值和来自计时器/计数器102的计时器/计数器特征值。计时器/计数器特征值可以包括计时器/计数器102的最小计数值、最大计数值和循环周期(period)值(即将计数值从最小计数值递增到最大计数值所需要的时间)。值生成器110可以被配置为基于计数值和计时器/计数器特征值,生成例如延迟时间生成值。延迟时间生成值可以被传输到比较器108和循环计数器112。
一般来说,循环计数器112被配置为接收或取得来自值生成器110的延迟时间生成值和来自比较器108的比较结果。此外,循环计数器112可以被配置为生成与由计时器/计数器102生成的翻转事件的数目相关联的循环计数值。可以通过由比较器108执行的比较来检测由计时器/计数器102生成的翻转事件的数目。通过基于例如比较结果和延迟时间生成值来递减或递增循环数目值,循环计数器112生成循环计数值。
图2是与使用图1的计时器/计数器实现期望的延迟时间的操作相关联的计时器/计数器(例如图1的计时器/计数器102)的示例性计数线200和特征值。一般来说,计数线200以图解方式表示储存在计时器/计数器102中的计数值和已经过时间(elapsed time)之间的关系。例如,对于具体计时器/计数器来说,计数值和已经过时间之间的关系可能是这样的速率的函数,即由计数线200表示的计时器/计数器以该速率来进行时钟定时。
如图2中所示出,用零计数值202、循环周期值TL 204和最大计数值CM 206来表征示例性计数线200。这些特征值可以例如在运行时阶段期间被用来实现期望的延迟时间(TD)。仅通过实施例的方式,示例性计数线200被描述为与图1的计时器/计数器102相关联。但是,示例性计数线200可以以类似的方式被应用于任何其他计数器、计时器或计时器/计数器。继续该实施例,零计数值202可以是计数值0或者是计时器/计数器102可以表示的最小值。最大计数值CM 206是计时器/计数器102在翻转事件之前可以计数的最大值。当计时器/计数器102达到它的最大计数值CM 206时,翻转事件发生,并且后续的计数值等于零计数值202(即CM+1=0)。例如,8位计数器的最大计数值CM 206等于数28-1(即255)。如果这样的8位计数器达到计数值255(即最大计数值CM 206),当所述8位计数器被递增到8位计数器的下一个计数值即零计数值202时,翻转事件发生。8位计数器的循环周期值TL204等于计时器/计数器102(图1)将计数值从它的零计数值202递增到最大计数值CM 206所需要的时间量。
图3是基于图2的示例性计数线200和多个计数值的示例性计数器查询过程的图。当与计时器/计数器单元(例如图1的计时器/计数器102)组合使用时,图3的计数器查询过程使能(enable)期望的延迟时间的生成。图3中描绘的计数器查询过程包括在运行时阶段期间获得的多个计数值,所述多个计数值是通过在一个或更多个计数器周期或循环期间查询(即读取或以其他方式获得)计时器/计数器102的运行中计数值(running countvalue)来获得。当计时器/计数器102被使能并正在递增计数值或者正在运行时,计时器/计数器102生成一串顺序计数值。每个运行中计数值(即计数值串内的具体计数值)与先前计数值CP(例如先前计数值302、306和308)和/或当前计数值CC(例如当前计数值304、308和310)相关联。通过读取计时器/计数器102的当前值获得当前计数值CC。先前计数值CP是在对计时器/计数器102的运行中计数值的前一次读取期间内获得的当前计数值CC
每一个先前计数值CP和当前计数值CC被分别储存在先前计数变量值XCP和当前计数变量值XCC中(未示出)。在对计时器/计数器102的每次读取或查询之后,计数变量值XCP和XCC可以分别被先前计数值CP和当前计数值CC覆写。
计时器/计数器102的示例性读数被示为当前计数值CC 304和先前计数值CP 306。特别地,计时器/计数器102的运行中计数值被读取,以获得当前计数值CC 304,所述当前计数值CC 304被储存在当前计数变量值XCC中。如下面将结合图4和5更详细地描述的,将当前计数变量值XCC与储存在先前计数变量值XCP中的先前计数值CP(即先前计数值CP 302)进行比较。基于所述比较,后续的先前计数值CP,例如先前计数值CP 306可以被设置为等于当前计数值CC 304,并且被储存在先前计数变量值XCP中,由此覆写先前计数值CP 302。以这种方式,通过查询计时器/计数器102(图1)来获得先前计数值CP和当前计数值CC,处理器系统(例如图6的处理器系统610)可以实现期望的延迟时间。
在图3中使用下标(0)、(1)和(n)来描绘计数器周期或循环,其中值n表示计数器周期或循环的数目。通过实施例的方式,图3的计数器查询过程描绘受先前计数值CP 302和当前计数值CC 310约束(bind)的两个计数器周期或循环。此外,每个计数器周期包括一个翻转事件。可以通过将当前计数值CC与先前计数值CP进行比较来检测翻转事件。如果先前计数值CP大于当前计数值CC(如由先前计数值CP 308和当前计数值CC 310所示出),则翻转事件已经被生成或者已经发生。
图4是可以由图1的示例性系统100实现的示例性延迟时间生成方法400的流程图。示例性延迟时间生成方法400可以在预引导阶段或初始化过程期间(即在非中断环境中)和/或任何其他运行时阶段期间被执行。可以通过获得计时器/计数器的特征值(例如上面结合图2的示例性计数线200描述的循环周期值TL 204和最大计数值CM 206)和上面结合图3描述的计数变量值XCC与XCP来实现期望的延迟时间。
与生成期望的延迟时间相关联的额外的值可以使用示例性延迟时间生成方法400来获得和/或确定。额外的值可以包括初始计数值CI、延迟计数值CD、循环数目值L和剩余计数值CR,在下面更详细描述所有所述额外的值。值可以在运行时阶段期间或在运行时阶段之前被确定,在运行时阶段期间被储存在存储器中并且被取得多次。此外,可以通过多种方式确定值,例如使用处理器系统计算它们和/或从存储器中取得它们。
初始计数值CI与通过读取计时器/计数器(例如图1的计时器/计数器102)的计数值获得的第一计数值相关联。此外,初始计数值CI可以是可以由计时器/计数器102表示并且大于或等于零计数值202(图2)且小于或等于最大计数值CM 206(图2)(即零计数值202≤CI≤CM 206)的任何值。初始计数值CI可以被用来确定延迟计数值CD、循环数目值L和剩余计数值CR,如下面结合式1-3所描述的。
延迟计数值CD确定生成期望的延迟时间所需要的计时器/计数器102的计数数目。例如,如果期望的延迟时间等于由循环周期值TL 204(图2)指示的时间量,则延迟计数值CD被设置为等于最大计数值CM 206。在那种情况下,计时器/计数器102将计数数目递增到等于最大计数值CM 206,以实现期望的延迟时间。
循环数目值L由计时器/计数器102达到特定计数值的次数定义,并且一般与翻转事件的数目相关联。例如,如果所述特定计数值被定义为零计数值202(图2),则循环数目值L等于计时器/计数器102的计数值达到零计数值202(图2)的次数。以这种方式,计时器/计数器102生成等于循环数目值L的翻转事件数目。此外,通过实施例的方式,在图3中通过下标(0)、(1)和(n)示出循环数目值L。如上面结合图3更详细地描述的,下标值n等于计数器周期或循环的数目。
剩余计数值CR是可以由计时器/计数器102(图1)表示并且大于或等于零计数值202且小于或等于最大计数值CM 206的任何值。一般来说,剩余计数值CR被用来在计时器/计数器102的最后一个循环之后确定何时达到期望的延迟时间。换句话说,通过允许计时器/计数器102完成数目等于循环数目值L的计数器周期或循环来生成期望的延迟时间,生成期望的延迟时间之后,基于剩余计数值CR和通过查询计时器/计数器102获得的计数器值来做比较,以确定是否已经达到期望的延迟时间。
现在详细参照图4的示例性延迟时间生成方法400,计时器/计数器102(图1)被使能(框402),由此导致计时器/计数器102运行或开始递增计数值。通过读取计时器/计数器102的运行中计数值来获得初始计数值CI(框404)。然后,由例如值生成器110(图1)确定包括延迟计数值CD、循环数目值L和剩余计数值CR的延迟时间生成值(框406)。
可以根据下面的式1,基于延迟时间值TD、循环周期值TL 204和最大计数值CM 206来确定延迟计数值CD
式1 C D = ( T D T L · C M )
如式1中所示出,可以通过将延迟时间值TD除以循环周期值TL 204并将除法结果乘以最大计数值CM 206来确定延迟计数值CD
一般来说,可以根据下面的式2,基于延迟计数值CD和最大计数值CM 206来确定循环数目值L。
式2 L = INT ( C D C M ) = INT ( T D T L )
如式2中所示出,可以通过将延迟计数值CD除以最大计数值CM 206并将结果舍入(rounding)为最近的整数值来确定循环数目值L。可替换地,还可以通过将延迟时间值TD除以循环周期值TL 204并将结果舍入为最近的整数值来确定循环数目值L。
可以根据下面的式3,基于延迟计数值CD、循环数目值L和最大计数值CM 206来确定剩余计数值CR
式3 C R = C D - L · C M = ( T D T L - L ) · C M
如式3中所示出,可以通过将循环数目值L乘以最大计数值CM 206并从延迟计数值CD中减去乘法的结果来确定剩余计数值CR。可替换地,还可以通过从延迟时间值TD除以循环周期值TL204的商中减去循环数目值L并将结果乘以最大计数值CM 206来确定剩余计数值CR
然后,通过例如将先前计数值CP 302(图3)设置为等于初始计数值CI并将先前计数值CP 302储存在先前计数变量值XCP中,来初始化第一先前计数值(框408)。然后,查询计时器/计数器102(图1)并从计时器/计数器102读取当前计数值CC 304(图3)(框410),并将当前计数值CC 304储存在当前计数变量值XCC中。然后,执行对当前计数变量值XCC、初始计数值CI和先前计数变量值XCP的比较(框412),以确定是否已经完成计时器/计数器102的循环。
如果先前计数变量值XCP小于初始计数值CI,并且初始计数值CI小于或等于当前计数变量值XCC(即XCP<CI≤XCC),则翻转事件被检测到并且循环数目值L被递减(框414)。在框414处递减循环数目值L之后,或者如果在框412处先前计数变量值XCP不小于初始计数值CI,和/或初始计数值CI不是小于或等于当前计数变量值XCC,则控制被传递到框416。在框416处,先前计数值CP 306(图3)被设置为等于当前计数值CC 304并且被储存在先前计数变量值XCP中。
然后对循环数目值L执行零测试(框418),来确定循环数目值L是否大于零。如果循环数目值L大于零,则控制被传递回框410。另一方面,在框418处,如果循环数目值L不大于零,则获得另一个当前计数值CC(框420)并且储存在当前计数变量值XCC中。
做比较以确定当前计数变量值XCC是否小于初始计数值CI(框422)。如果当前计数变量值XCC小于初始计数值CI,则通过将当前计数变量值XCC加上最大计数值CM并将结果储存在当前计数变量值XCC中来更新当前计数变量值XCC(即XCC=XCC+CM)(框424)。
在当前计数变量值XCC被更新(框424)之后,或者如果在框422处确定当前计数变量值XCC不小于初始计数值CI,则基于当前计数变量值XCC、初始计数值CI和剩余计数值CR来做比较,来确定是否已经达到延迟时间(框426)。如果在框426处确定当前计数变量值XCC减去初始计数值CI小于剩余计数值CR(即(XCC-CI)<CR),则控制被传递回框420。但是,如果在框426处确定当前计数变量值XCC减去初始计数值CI不小于剩余计数值CR,则已经达到期望的延迟时间。
图5是可以由图1的示例性系统100实现的另一种示例性延迟时间生成方法500的流程图。示例性延迟时间生成方法500可以在预引导阶段或初始化过程期间(即在非中断环境中)和/或任何其他运行时阶段期间被执行。示例性延迟时间生成方法500可以被用来通过基于初始计数值(例如上面结合图4更详细地描述的初始计数值CI)确定延迟时间生成值,来生成期望的延迟时间。更具体地,如下面结合式4-6所描述的,初始计数值CI可以被用来确定延迟计数值CD、循环数目值L和剩余计数值CR。此外,基于延迟时间生成值、循环周期值TL 204(图2)与最大计数值CM 206(图2)以及计数变量值XCP和XCC(图3),通过示例性延迟时间生成方法500可以生成期望的延迟时间。
现在详细参照图5的示例性延迟时间生成方法500,计时器/计数器(例如图1的计时器/计数器102)被使能(框502),由此导致计时器/计数器102运行或开始递增计数值。通过读取计时器/计数器102的运行中计数值来获得初始计数值CI(框504)。然后,由例如值生成器110(图1)来确定包括延迟计数值CD、循环数目值L和剩余计数值CR的延迟时间生成值(框506)。
可以根据下面的式4,基于延迟时间值TD、循环周期值TL 204、最大计数值CM206和初始计数值CI来确定延迟计数值CD
式4 C D = ( T D T L · C M ) + C I
如式4中所示出,可以通过将延迟时间值TD除以循环周期值TL 204的结果乘以最大计数值CM 206,并将相乘所得结果加上初始计数值CI来确定延迟计数值CD
一般来说,根据下面的式5,基于延迟计数值CD和最大计数值CM 206来确定循环数目值L。
式5 L = INT ( C D C M ) = INT ( T D T L + C I C M )
如式5中所示出,可以通过将延迟计数值CD除以最大计数值CM 206(图2)并将结果舍入为最近的整数值来确定循环数目值L。可替换地,还可以通过将延迟时间值TD除以循环周期值TL 204,将除法的结果加上初始计数值CI除以最大计数值CM206的商,并将相加的结果舍入为最近的整数值来确定循环数目值L。
可以根据下面的式6,基于延迟计数值CD、循环数目值L和最大计数值CM 206来确定剩余计数值CR
式6 C R = C D - L · C M = ( T D T L - L ) · C M + C I
如式6中所示出,可以通过将循环数目值L乘以最大计数值CM 206,并且从延迟计数值CD中减去乘法的结果来确定剩余计数值CR。可替换地,还可以通过将初始计数值CI加上最大计数值CM 206与从延迟时间值TD除以循环周期值TL 204的商中减去循环数目值L所得量的乘积来确定剩余计数值CR
然后,通过例如将先前计数值CP 302(图3)设置为等于初始计数值CI并将先前计数值CP 302储存在先前计数变量值XCP中,来初始化第一先前计数值(框508)。从计时器/计数器102读取当前计数值CC 304(图3)(框510),并且将当前计数值CC 304储存在当前计数变量值XCC中。将当前计数变量值XCC和先前计数变量值XCP进行比较(框512),以确定是否已经完成计时器/计数器102的循环。
如果当前计数变量值XCC小于先前计数变量值XCP(即XCC<XCP),则翻转事件被检测到并且循环数目值L被递减(框514)。在框514处递减循环数目值L之后,或者如果在框512处当前计数变量值XCC不小于先前计数变量值XCP,则控制被传递到框516。在框516处,先前计数值CP 306(图3)被设置为等于当前计数值CC 304(图3)并且被储存在先前计数变量值XCP中。
然后对循环数目值L执行零测试(框518),来确定循环数目值L是否大于零。如果循环数目值L大于零,则控制被传递回框510。另一方面,如果循环数目值L不大于零,则先前计数值CP 306(图3)被设置为等于当前计数值CC 304(图3)并且被储存在先前计数变量值XCP中(框520)。然后,获得另一个当前计数值CC(框522)并且储存在当前计数变量值XCC中。
然后,将当前计数变量值XCC与剩余计数值CR和先前计数变量值XCP进行比较(框524)。如果当前计数变量值XCC小于剩余计数值CR并且先前计数变量值XCP小于当前计数变量值XCC(即XCC<CR并且XCP<XCC),则控制被传递回框520。但是,如果当前计数变量值XCC不小于剩余计数值CR和/或先前计数变量值XCP不小于当前计数变量值XCC,则已经达到期望的延迟时间。
图6是可以用来实现本文所描述的装置、方法和制品的示例性处理器系统610的框图。如图6中所示出,处理器系统610包括被耦合到互连总线或网络614的处理器612。处理器612包括寄存器组或寄存器空间616,所述寄存器组或寄存器空间616在图6中被描述为完全在芯片上,但是可替换地,所述寄存器组或寄存器空间616可以完全或部分地位于芯片外,并且通过专用电气连接和/或通过互连网络或总线614直接耦合到处理器612。处理器612可以是任何合适的处理器、处理单元或微处理器,例如来自英特尔X-ScaleTM系列、英特尔PentiumTM系列等中的处理器。尽管在图6中未示出,但是处理器系统610可以是多处理器系统,并且因此可以包括与处理器612等同或类似的一个或更多个额外的处理器,并且所述额外的处理器被耦合到互连总线或网络614。
图6的处理器612被耦合到芯片组618,所述芯片组618包括存储器控制器620、输入/输出(I/O)控制器622和计时器/计数器单元623。如所熟知的,芯片组一般提供I/O和存储器管理功能,以及多个通用和/或专用寄存器、计时器等,它们可以被耦合到该芯片组的一个或多个处理器访问或使用。存储器控制器620执行使处理器612(或者如果存在多个处理器,则是多个处理器)能够访问系统存储器624和非易失性存储器625的功能。
系统存储器624可以包括任何期望类型的易失存储器,例如静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)等等。非易失性存储器625可以包括任何期望类型的非易失性存储器,例如闪存存储器或只读存储器(ROM)。此外,组成基本输入输出系统(BIOS)或EFI的部分的预引导系统初始化指令可以被储存在非易失性存储器625上,供在预引导系统初始化过程期间(即操作系统引导过程之前)访问。
I/O控制器622执行使处理器612能够通过I/O总线630与外设输入/输出(I/O)设备626和628通信的功能。I/O设备626和628可以是任何期望类型的I/O设备,例如键盘、视频显示器或监视器,鼠标等等。
计时器/计数器单元623可以与图1的计时器/计数器102基本上类似或等同,并且可以在处理器系统610的运行时阶段期间被用来实现延迟时间和/或定时的系统事件。计时器/计数器单元623还可以包括高级配置和电源接口(ACPI)计时器和/或不可重置计时器。ACPI计时器可以被配置为在预引导处理器系统初始化过程期间起作用。
尽管存储器控制620、I/O控制器622和计时器/计数器单元623在图6中被描绘为芯片组618内单独的功能块,但是由这些块执行的功能可以被集成在单个半导体电路中,或者可以使用两个或更多个单独的集成电路来实现。
可以使用储存在计算机可读介质上并且由处理器612执行的指令来实现本文描述的方法。计算机可读介质可以包括固态、磁和/或光介质的任何期望的组合,使用大容量储存设备(例如盘驱动器)、可移动储存设备(例如软盘、存储器卡或棒等等)和/或集成的存储器设备(例如随机访问存储器,闪存存储器等等)的任何期望的组合来实现所述计算机可读介质。
尽管本文已经描述了某些方法、装置和制品,但是本专利的覆盖范围不受其限制。相反,本专利覆盖正好落入所附权利要求书在字面上或者在等同性原则下的范围内的所有方法、装置和制品。

Claims (40)

1.一种生成延迟时间的方法,所述方法包括:
确定与延迟时间相关联的循环数目值以及与计数器相关联的至少一个特征值;
基于所述循环数目值确定剩余计数值;以及
基于所述循环数目值和所述剩余计数值,用所述计数器生成所述延迟时间。
2.如权利要求1所定义的方法,还包括获得当前计数值,并且基于所述当前计数值和先前计数值来做比较,所述获得和比较操作的次数至少等于所述循环数目值。
3.如权利要求2所定义的方法,还包括基于所述比较来确定已经达到所述延迟时间。
4.如权利要求2所定义的方法,其中,获得所述当前计数值的操作包括读取所述计数器运行中计数值。
5.如权利要求1所定义的方法,还包括获得初始计数值。
6.如权利要求5所定义的方法,其中,确定所述循环数目值的操作包括基于至少所述初始计数值来确定所述循环数目值。
7.如权利要求5所定义的方法,其中,确定所述剩余计数值的操作包括基于至少所述初始计数值来确定所述剩余计数值。
8.如权利要求1所定义的方法,还包括查询所述计数器。
9.如权利要求8所定义的方法,其中,查询所述计数器的操作包括在非中断环境中查询所述计数器。
10.如权利要求1所定义的方法,其中,确定所述循环数目值的操作包括确定要由所述计数器生成的翻转事件的数目。
11.如权利要求1所定义的方法,其中,生成所述延迟时间的操作包括在引导过程之前生成所述延迟时间。
12.一种用于生成延迟时间的装置,所述装置包括:
处理器系统,所述处理器系统包括存储器;
储存在所述存储器中的指令,所述指令使所述处理器系统能够:
确定与延迟时间相关联的循环数目值以及与计数器相关联的至少一个特征值;
基于所述循环数目值确定剩余计数值;以及
基于所述循环数目值和所述剩余计数值,用所述计数器生成所述延迟时间。
13.如权利要求0所定义的装置,其中,储存在所述存储器中的所述指令使所述处理器系统能够获得当前计数值,并且基于所述当前计数值和先前计数值来做比较,所述获得和比较操作的次数至少等于所述循环数目值。
14.如权利要求13所定义的装置,其中,储存在所述存储器中的所述指令使所述处理器系统能够基于所述比较来确定已经达到所述延迟时间。
15.如权利要求0所定义的装置,其中,储存在所述存储器中的所述指令使所述处理器系统能够获得初始计数值。
16.如权利要求15所定义的装置,其中,储存在所述存储器中的所述指令使所述处理器系统能够基于至少所述初始计数值来确定所述循环数目值。
17.如权利要求0所定义的装置,其中,所述指令使所述处理器系统能够在非中断环境中查询所述计数器。
18.如权利要求0所定义的装置,其中,所述指令使所述处理器系统能够基于所述循环数目值来确定要被生成的翻转事件的数目。
19.如权利要求0所定义的装置,其中,所述指令使所述处理器系统能够在引导过程之前生成所述延迟时间。
20.如权利要求0所定义的装置,其中,所述存储器是闪存存储器和只读存储器中的至少一种。
21.一种用于生成延迟时间的系统,所述系统包括:
计数读取器,所述计数读取器被配置为从计数器获得计数值;
比较器,所述比较器以可通信的方式耦合到所述计数读取器,并且被配置为基于所述计数值中的至少一些来做比较;
循环计数器,所述循环计数器以可通信的方式耦合到所述比较器,并且被配置为基于所述比较中的至少一些来修改循环数目值,其中,所述系统基于所述比较、所述循环数目值和剩余计数值生成延迟时间。
22.如权利要求21所定义的系统,其中,所述计数读取器被配置为获得初始计数值。
23.如权利要求22所定义的系统,还包括值生成器,所述值生成器被配置为基于所述初始计数值来生成所述剩余计数值和所述循环数目值。
24.如权利要求21所定义的系统,其中,所述计数值中的所述至少一些包括先前计数值和当前计数值中的至少一个。
25.如权利要求24所定义的系统,其中,所述比较器基于所述先前计数值和所述当前计数值中的至少一个来做比较。
26.如权利要求21所定义的系统,其中,所述计数器是不可重置计数器和不可重置计时器中的至少一种。
27.如权利要求21所定义的系统,其中,所述系统在非中断环境中生成所述延迟时间。
28.如权利要求21所定义的系统,其中,所述系统在引导阶段之前生成所述延迟时间。
29.一种具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致机器:
确定与延迟时间相关联的循环数目值以及与计数器相关联的至少一个特征值;
基于所述循环数目值确定剩余计数值;以及
基于所述循环数目值和所述剩余计数值,用所述计数器生成所述延迟时间。
30.如权利要求29所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器获得当前计数值,并且基于所述当前计数值和先前计数值来做比较,所述获得和比较操作的次数至少等于所述循环数目值。
31.如权利要求30所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器基于所述比较来确定已经达到所述延迟时间。
32.如权利要求29所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器获得初始计数值。
33.如权利要求32所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器基于至少所述初始计数值来确定所述循环数目值。
34.如权利要求32所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器基于至少所述初始计数值来确定所述剩余计数值。
35.如权利要求29所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器查询所述计数器。
36.如权利要求29所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器在非中断环境中查询所述计数器。
37.如权利要求29所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器基于所述计数器的至少一个翻转事件来递减所述循环数目值。
38.如权利要求29所定义的具有储存在其上的指令的计算机可读介质,当执行所述指令时,所述指令导致所述机器在引导过程之前生成所述延迟时间。
39.一种用于生成延迟时间的装置,所述装置包括:
处理器系统,所述处理器系统包括闪存存储器;
储存在所述闪存存储器中的指令,所述指令使所述处理器系统能够:
确定与延迟时间相关联的循环数目值以及与计数器相关联的至少一个特征值;
基于所述循环数目值确定剩余计数值;以及
基于所述循环数目值和所述剩余计数值,用所述计数器生成所述延迟时间。
40.如权利要求39所定义的装置,其中,所述指令使所述处理器系统能够在引导过程之前生成所述延迟时间。
CN2004800410087A 2003-11-26 2004-11-12 用于使用计数器生成延迟的方法和装置 Expired - Fee Related CN1906572B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/723,668 2003-11-26
US10/723,668 US7562105B2 (en) 2003-11-26 2003-11-26 Methods and apparatus for generating a delay using a counter
PCT/US2004/037772 WO2005055027A2 (en) 2003-11-26 2004-11-12 Methods and apparatus for generating a delay using a counter

Publications (2)

Publication Number Publication Date
CN1906572A true CN1906572A (zh) 2007-01-31
CN1906572B CN1906572B (zh) 2011-03-02

Family

ID=34592336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800410087A Expired - Fee Related CN1906572B (zh) 2003-11-26 2004-11-12 用于使用计数器生成延迟的方法和装置

Country Status (5)

Country Link
US (1) US7562105B2 (zh)
EP (1) EP1687712A2 (zh)
JP (1) JP4452722B2 (zh)
CN (1) CN1906572B (zh)
WO (1) WO2005055027A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101981530A (zh) * 2008-04-11 2011-02-23 飞思卡尔半导体公司 具有低功率模式和非低功率模式的微处理器,数据处理系统和计算机程序产品
WO2020108312A1 (zh) * 2018-11-26 2020-06-04 北京无线电计量测试研究所 一种快速启动芯片电源

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779178B2 (en) * 2005-06-29 2010-08-17 Intel Corporation Method and apparatus for application/OS triggered low-latency network communications
US8260602B1 (en) * 2006-11-02 2012-09-04 The Math Works, Inc. Timer analysis and identification
US8725975B2 (en) * 2007-01-03 2014-05-13 Freescale Semiconductor, Inc. Progressive memory initialization with waitpoints
US20080162858A1 (en) * 2007-01-03 2008-07-03 Freescale Semiconductor, Inc. Hardware-based memory initialization with software support
WO2015095126A1 (en) 2013-12-20 2015-06-25 Hartdegen Vernon Polyaxial locking hole
US11202626B2 (en) 2014-07-10 2021-12-21 Crossroads Extremity Systems, Llc Bone implant with means for multi directional force and means of insertion
AU2015287901A1 (en) 2014-07-10 2017-02-23 Crossroads Extremity Systems, Llc Bone implant and means of insertion
US11864753B2 (en) 2017-02-06 2024-01-09 Crossroads Extremity Systems, Llc Implant inserter
WO2018148284A1 (en) 2017-02-07 2018-08-16 Crossroads Extremity Systems, Llc Counter-torque implant
US20210203670A1 (en) * 2019-12-30 2021-07-01 Itron, Inc. Man-In-The-Middle Extender Defense In Data Communications
USD961081S1 (en) 2020-11-18 2022-08-16 Crossroads Extremity Systems, Llc Orthopedic implant

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2633406B1 (fr) * 1988-06-27 1990-11-02 Crouzet Sa Minuterie numerique a resolution constante
US5258656A (en) * 1991-07-25 1993-11-02 Pawlick William F Electronic on/off timer apparatus and method incorporating predetermined time delay intervals
JP2678115B2 (ja) * 1992-02-06 1997-11-17 三菱電機株式会社 タイマ回路
JP3225613B2 (ja) 1992-08-05 2001-11-05 日本電気株式会社 マイクロコンピュータ
US6064646A (en) * 1997-09-26 2000-05-16 Delco Electronics Corporation Data communication apparatus and method
JP3039781B1 (ja) * 1998-11-04 2000-05-08 日本電気株式会社 タイマ回路
AU2002302301A1 (en) * 2001-03-15 2002-10-03 Robert Bosch Gmbh Method and device for forming clock pulses in a bus system comprising at least one station, bus system and station
US7047270B2 (en) * 2002-11-22 2006-05-16 Texas Instruments Incorporated Reporting a saturated counter value
US6959397B2 (en) * 2003-06-18 2005-10-25 Motorola, Inc. Programmable skew clock signal generator selecting one of a plurality of delayed reference clock signals in response to a phase accumulator output

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101981530A (zh) * 2008-04-11 2011-02-23 飞思卡尔半导体公司 具有低功率模式和非低功率模式的微处理器,数据处理系统和计算机程序产品
CN101981530B (zh) * 2008-04-11 2012-12-12 飞思卡尔半导体公司 具有低功率模式和非低功率模式的微处理器,数据处理系统和计算机程序产品
WO2020108312A1 (zh) * 2018-11-26 2020-06-04 北京无线电计量测试研究所 一种快速启动芯片电源

Also Published As

Publication number Publication date
JP4452722B2 (ja) 2010-04-21
WO2005055027A2 (en) 2005-06-16
WO2005055027A3 (en) 2006-05-04
JP2007512771A (ja) 2007-05-17
US7562105B2 (en) 2009-07-14
US20050114416A1 (en) 2005-05-26
EP1687712A2 (en) 2006-08-09
CN1906572B (zh) 2011-03-02

Similar Documents

Publication Publication Date Title
CN1906572A (zh) 用于使用计数器生成延迟的方法和装置
US11620286B2 (en) Continuous cloud-scale query optimization and processing
Sundar et al. Hyksort: a new variant of hypercube quicksort on distributed memory architectures
CN1162148A (zh) 微处理器的功率估算器
CN1157641C (zh) 处理器
Kim et al. Delayed-Dynamic-Selective (DDS) prediction for reducing extreme tail latency in web search
CN1542621A (zh) 检测程序模式的方法和设备
CN100476722C (zh) 用于多处理器系统的加权处理器选择设备和方法
CN1914597A (zh) 处理单元的动态加载和卸载
CN1717654A (zh) 数据处理器的循环控制电路
CN102648453A (zh) 分布式多核存储器初始化
US20080071850A1 (en) Methods and apparatus for extracting integer remainders
US20180004709A1 (en) System and method for gpu maximum register count optimization applied to general matrix-matrix multiplication
CN111639044B (zh) 一种支持中断优先级轮询仲裁派发的方法和装置
CN101833439B (zh) 基于分合思想的并行计算硬件结构
Zlateski et al. FFT convolutions are faster than Winograd on modern CPUs, here is why
CN103390007A (zh) 数据获取方法和装置
Zhong et al. Model-based parallelizer for embedded control systems on single-isa heterogeneous multicore processors
CN111782378B (zh) 自适应性的处理性能调整方法、服务器及可读存储介质
CN1021147C (zh) 具有共用控制存储器的多处理机控制器
CN109753314B (zh) 一种可配置的流程自动执行方法及系统
US20080184244A1 (en) Data Processing System And Method
Sundar et al. Algorithms for high-throughput disk-to-disk sorting
CN111400013B (zh) 一种多核处理器的数据流的处理方法及系统
CN1244049C (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110302

Termination date: 20141112

EXPY Termination of patent right or utility model