微处理器及适用于微处理器的操作方法

文档序号:6607452阅读:167来源:国知局

专利名称::微处理器及适用于微处理器的操作方法
技术领域
:本发明是关于微处理器,特别是关于微处理器所提供的除错中断点设备(debugbreakpointfacilities)。
背景技术
:x86架构跟大部分微处理器架构一样会提供程序设计者一种方法使得程序设计者能够在一个或多个地址范围的存取(access)路径上指定除错中断点。具体而言,中断点地址范围为虚拟地址范围(在x86语法(parlance)中称为线性地址)。在某些微处理器中,载入单元(loadunit)执行检查动作用以判断一载入地址是否存取一中断点范围。有时一载入指令(load)会跨越(span)两条快取线(cacheline),因此载入指令必须分成两个片段(如图4所示),使得各个片段沿着载入管线(loadpipeline)传送(senddown)用以存取数据快取(datacache)。第一片段沿着载入管线传送并使用初始载入地址与第一大小来存取数据快取,以便从第一相关快取线(implicatedcacheline)中取得数据,其中第一大小是指与第一片段有关的字节数目。接着,第二片段沿着载入管线传送并使用一递增后的初始载入地址与第二大小来存取数据快取,以便从第二相关快取线中取得数据,其中第二大小是指与第二片段有关的字节数目。由于载入单元必须对照中断点范围检查各个片段,所以上述情况会使得中断点检查变得更复杂,细节将在以下做进一步说明。以下将提供一些已知技术信息以便更了解本发明。各个载入队列项目(loadqueueentry)包含一地址字段的储存空间。一开始,载入单元将载入虚拟地址(loadvirtualaddress)载入至地址字段。载入单元接着将载入虚拟地址转译成载入物理地址(loadphysicaladdress)以便存取数据快取,接着再将地址字段中的虚拟地址替换为物理地址。在各个载入队列项目中包含一单一地址字段可有效降低载入队列的储存需求,并且可节省芯片的实际面积(realestatespace)以及功率消耗。然而,单一地址字段在快取线跨越(cache-line-sparming)/双片段(twopiece)载入情况下会产生问题,因为当载入管线处理第一片段时,单一地址字段会重写(clobber)虚拟地址,使得第二片段不再具有虚拟地址来执行中断点检查。其中一种解决上述问题的方法就是在各个载入队列项目中包含两个地址字段。如此,物理地址可被写入至第二地址字段用以避免重写虚拟地址,或是各个地址字段可对应至不同的片段使得各个片段具有自己的虚拟地址,并且可在不影响另一片段的情况下重写自己的虚拟地址。然而此方法并不理想,因为第二地址字段所占用的额外的储存空间会增加芯片的实际面积以及功率消耗。为了避免额外的地址储存空间,另一种解决方法就是再额外通过一次载入管线,即执行额外的管线循环(additionalpasses)。换言之,第一、第二片段依序沿着载入管线传送用以执行中断点检查,接着第一、第二片段依序沿着载入管线传送用以产生物理地址并存取数据快取。然而此方法也不甚理想,因为会降低整体的执行速度。
发明内容本发明提供一种微处理器,用以对一跨越快取线的载入/储存指令执行一中断点检查,载入/储存指令指定一数据的一载入/储存虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中。微处理器包括一中断点暂存器、一队列以及具有一载入/储存单元的一载入/储存单元管线。中断点暂存器用以储存一中断点地址。队列包括多个队列项目,队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中地址与载入/储存指令有关,并且指针用以表示载入/储存虚拟地址的一分页地址部分与中断点地址的一分页地址部分是否相符合。载入/储存单元管线耦接至中断点暂存器与队列,其中载入/储存单元管线于一第一管线循环期间执行跨越快取线的载入/储存指令以便通过一高速缓存来存取数据的第一片段,并且载入/储存单元管线于一第二管线循环期间执行跨越快取线的载入/储存指令以便通过高速缓存来存取数据的第二片段。其中在第一管线循环期间,载入/储存单元使用载入/储存虚拟地址来执行一第一片段中断点检查,将指标储存至第二储存空间,并且将一载入/储存物理地址储存至第一储存空间,其中载入/储存物理地址是由载入/储存虚拟地址转译而成。其中在第二管线循环期间,载入/储存单元使用来自第二储存空间的指标与来自第一储存空间的载入/储存物理地址的一递增分页偏移部分,用以执行一第二片段中断点检查。其中载入/储存单元不使用超过两个管线循环来存取高速缓存以及对载入/储存指令执行中断点检查。其中只有队列项目中的每一者中的第一储存空间用以储存与载入/储存指令有关的地址。本发明提供一种适用于微处理器的操作方法。微处理器包括一高速缓存用以对一跨越快取线的载入/储存指令执行一中断点检查,载入/储存指令指定一数据的一载入/储存虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中。微处理器还包括一中断点暂存器用以储存一中断点地址。微处理器还包括具有多个队列项目的一队列,队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中地址与载入/储存指令有关,并且指针用以表示载入/储存虚拟地址的一分页地址部分与中断点地址的一分页地址部分是否相符合。微处理器还包括具有一载入/储存单元的一载入/储存单元管线。上述方法包括在一第一管线循环期间执行与数据的第一片段有关的一第一片段中断点检查,其中执行第一片段中断点检查的步骤包括比较中断点地址与载入/储存虚拟地址;将指标储存至第二储存空间;以及将一载入/储存物理地址储存至第一储存空间,其中载入/储存物理地址是由载入/储存虚拟地址转译而成。上述方法还包括在一第二管线循环期间执行与数据的第二片段有关的一第二片段中断点检查,其中执行第二片段中断点检查的步骤包括检查来自第二储存空间的指针,并且比较中断点地址的一分页偏移部分与来自第一储存空间的载入/储存物理地址的一递增分页偏移部分。其中不使用超过两个管线循环来存取高速缓存以及对载入/储存指令执行中断点检查。其中只有队列项目中的每一者中的第一储存空间用以储存与载入/储存指令有关的地址。本发明提供另一种微处理器,用以对一跨越快取线的载入/储存指令执行一中断点检查,载入/储存指令指定一数据的一载入/储存虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中。微处理器包括一中断点暂存器以及一载入/储存单元。中断点暂存器用以储存一中断点地址。载入/储存单元耦接至中断点暂存器。载入/储存单元包括一分页地址比较器、一第一分页偏移比较器、一递增器以及一第二分页偏移比较器。分页地址比较器比较载入/储存虚拟地址的一分页地址部分与中断点地址的一分页地址部分,用以产生一第一指标。第一分页偏移比较器比较载入/储存虚拟地址的一分页偏移部分与中断点地址的一分页偏移部分,用以产生一第二指标。递增器将载入/储存虚拟地址的分页偏移部分递增一条快取线的大小,用以产生一递增分页偏移部分。第二分页偏移比较器比较中断点地址的分页偏移部分与递增分页偏移部分,用以产生一第三指标。其中若第一指标为真值并且第二与第三指标中的至少一者为真值时,则载入/储存单元表示载入/储存指令的一中断点。本发明提供另一种适用于微处理器的操作方法,用以对一跨越快取线的载入/储存指令执行一中断点检查,载入/储存指令指定一数据的一载入/储存虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中。微处理器包括一中断点暂存器用以储存一中断点地址。上述方法包括(1)比较载入/储存虚拟地址的一分页地址部分与中断点地址的一分页地址部分,用以产生一第一指标;(2)比较载入/储存虚拟地址的一分页偏移部分与中断点地址的一分页偏移部分,用以产生一第二指标;(3)将载入/储存虚拟地址的分页偏移部分递增一条快取线的大小,用以产生一递增分页偏移部分;(4)比较中断点地址的分页偏移部分与递增分页偏移部分,用以产生一第三指标;以及(5)若第一指标为真值并且第二与第三指标中的至少一者为真值时,则表示载入/储存指令的一中断点。本发明提供另一种微处理器,用以计算一指定的虚拟存储器地址范围的存取次数,其中存取指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入/储存指令,载入/储存指令指定一数据的一载入/储存虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中。微处理器包括一暂存器、一计数器、一队列以及具有一载入/储存单元的一载入/储存单元管线。暂存器用以储存一信息,信息用以指定一虚拟地址范围,并且信息包括一范围地址用以指定一起始虚拟地址范围,其中虚拟存储器地址范围位于一虚拟存储器分页中。计数器用以储存一计数值,计数值代表虚拟地址范围的存取次数,并且虚拟地址范围是由暂存器中的信息所指定。队列包括多个队列项目,队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中地址与载入/储存指令有关,并且指针用以表示载入/储存虚拟地址的一分页地址部分与中断点地址的一分页地址部分是否相符合。载入/储存单元管线耦接至暂存器与队列,其中载入/储存单元管线于一第一管线循环期间将数据的第一片段载入/储存至一高速缓存或从高速缓存中载入/储存数据的第一片段,并且载入/储存单元管线于一第二管线循环期间将数据的第二片段载入/储存至高速缓存或从高速缓存中载入/储存数据的第二片段。其中在第一管线循环期间,载入/储存单元使用载入/储存虚拟地址来判断数据的第一片段是否落在虚拟地址范围内,将指针储存至第二储存空间,并且将一载入/储存物理地址储存至第一储存空间,其中载入/储存物理地址是由载入/储存虚拟地址转译而成。其中在第二管线循环期间,载入/储存单元使用来自第二储存空间的指标与来自第一储存空间的载入/储存物理地址的一递增分页偏移部分,用以判断数12据的第二片段是否落在虚拟地址范围内。其中若载入/储存单元判断数据的第一与第二片段中的任一者位于虚拟地址范围内,则载入/储存单元将计数器递增。其中载入/储存单元不使用超过两个管线循环来存取高速缓存以及判断数据的第一与第二片段中的任一者是否位于虚拟地址范围内。其中只有队列项目中的每一者中的第一储存空间用以储存与载入/储存指令有关的地址。本发明提供另一种适用于微处理器的操作方法,用以计算一指定的虚拟存储器地址范围的存取次数,其中存取指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入/储存指令,载入/储存指令指定一数据的一载入/储存虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中,微处理器包括一暂存器用以储存一信息,信息用以指定一虚拟地址范围并且包括一范围地址用以指定一起始虚拟地址范围,其中虚拟存储器地址范围位于一虚拟存储器分页中,微处理器还包括一计数器用以储存一计数值,计数值代表虚拟地址范围的存取次数,并且虚拟地址范围是由暂存器中的信息所指定,微处理器还包括具有多个队列项目的一队列,队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中地址与载入/储存指令有关,并且指针表示载入/储存虚拟地址的一分页地址部分与中断点地址的一分页地址部分是否相符合,微处理器还包括具有一载入/储存单元的一载入/储存单元管线。上述方法包括在一第一管线循环期间(1)将数据的第一片段载入/储存至一高速缓存或从高速缓存中载入/储存数据的第一片段;(2)使用载入/储存虚拟地址来判断数据的第一片段是否位于虚拟地址范围内;(3)将指标储存至第二储存空间;以及(4)将一载入/储存物理地址储存至第一储存空间,其中载入/储存物理地址是由载入/储存虚拟地址转译而成。上述方法还包括在一第二管线循环期间(5)将数据的第二片段载入/储存至高速缓存或从高速缓存中载入/储存数据的第二片段;(6)使用来自第二储存空间的指标与来自第一储存空间的载入/储存物理地址的一递增分页偏移部分,用以判断数据的第二片段是否落在虚拟地址范围内;(7)若载入/储存单元判断数据的第一与第二片段中的任一者位于虚拟地址范围内,则将计数器递增。其中不使用超过两个管线循环来执行步骤(1)到(7)。其中只有队列项目中的每一者中的第一储存空间用以储存与载入/储存指令有关的地址。本发明提供另一种微处理器,用以禁止多个程序存取一指定的虚拟存储器地址范围,其中存取指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入指令,载入指令指定一数据的一载入虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中。微处理器包括一暂存器、一队列以及具有一载入单元的一载入管线。暂存器用以储存一信息,信息用以指定一虚拟存储器地址范围,并且信息包括一范围地址用以指定一起始虚拟存储器地址范围,其中虚拟存储器地址范围位于一虚拟存储器分页中。队列包括多个队列项目,队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中地址与载入指令有关,并且指针用以表示载入虚拟地址的一分页地址部分与中断点地址的一分页地址部分是否相符合。载入管线耦接至暂存器与队列,其中载入管线于一第一管线循环期间从一高速缓存中读取数据的第一片段,并且载入管线于一第二管线循环期间从高速缓存中读取数据的第二片段。其中在第一管线循环期间,载入单元使用载入虚拟地址来判断数据的第一片段是否落在虚13拟存储器地址范围内,将指针储存至第二储存空间,并且将一载入物理地址储存至第一储存空间,其中载入物理地址是由载入虚拟地址转译而成。其中在第二管线循环期间,载入单元使用来自第二储存空间的指标与来自第一储存空间的载入物理地址的一递增分页偏移部分,用以判断数据的第二片段是否落在虚拟存储器地址范围内。其中若载入单元判断数据的第一与第二片段中的任一者位于虚拟存储器地址范围内,并且程序禁止存取虚拟存储器地址范围,则载入单元禁止将数据载入至载入指令所指定的一目标暂存器。其中载入单元不使用超过两个管线循环来读取来自高速缓存的数据的第一与第二片段以及判断数据的第一与第二片段中的任一者是否位于虚拟存储器地址范围内。其中只有队列项目中的每一者中的第一储存空间用以储存与载入指令有关的地址。本发明提供另一种适用于微处理器的操作方法,用以禁止多个程序存取一指定的虚拟存储器地址范围,其中存取指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入指令,载入指令指定一数据的一载入虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中,微处理器包括一暂存器用以储存一信息,信息用以指定一虚拟存储器地址范围并且包括一范围地址用以指定一起始虚拟存储器地址范围,其中虚拟存储器地址范围位于一虚拟存储器分页中,微处理器还包括具有多个队列项目的一队列,队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中地址与载入指令有关,并且指针表示载入虚拟地址的一分页地址部分与中断点地址的一分页地址部分是否相符合,微处理器还包括具有一载入单元的一载入管线。上述方法包括在一第一管线循环期间(1)从一高速缓存中读取数据的第一片段;(2)使用载入虚拟地址来判断数据的第一片段是否位于虚拟存储器地址范围内;(3)将指标储存至第二储存空间;以及(4)将一载入物理地址储存至第一储存空间,其中载入物理地址是由载入虚拟地址转译而成。上述方法包括在一第二管线循环期间(5)从高速缓存中读取数据的第二片段;(6)使用来自第二储存空间的指标与来自第一储存空间的载入物理地址的一递增分页偏移部分,用以判断数据的第二片段是否落在虚拟存储器地址范围内;(7)若载入单元判断数据的第一与第二片段中的任一者位于虚拟存储器地址范围内,并且程序无法存取虚拟存储器地址范围,则禁止将数据载入至由载入指令所指定的一目标暂存器。其中不使用超过两个管线循环来执行步骤(1)到(7)。其中只有队列项目中的每一者中的第一储存空间用以储存与载入指令有关的地址。为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。图1为本发明实施例的微处理器的方块图;图2为本发明实施例的图1的微处理器的载入单元的方块图;图3为包含图2的载入单元的图1中微处理器的操作流程图;图4为本发明实施例的跨越快取线的载入指令的方块图;图5为本发明另一实施例的图1中微处理器的载入单元的方块图;图6为包含图5的载入单元的图1的微处理器的操作流程图。具体实施例方式本发明提供一种能够解决上述问题的方法,此方法不需使用额外的管线循环,而是需要在每个载入队列项目中设置每个中断点暂存器的一单一附加位(singleadditionalbit)以及需要些许的附加逻辑电路。本发明实施例具有以下几点特征(1)中断点范围不能跨越分页边界(pageboundaries);(2)两个片段所具有的不同的地址位不会被转译(虚拟转译成物理)。因此,只要两条快取线位于相同的物理分页,第一与第二片段中被转译的虚拟地址位皆会与一中断点范围的对应位相符或皆不相符。具体而言,当载入管线处理第一片段时(即对第一片段的虚拟地址执行中断点检查、产生物理地址、存取高速缓存以及将载入队列项目的地址字段中的虚拟地址替换为物理地址),载入管线也将一命中分页指标(hit_pageindication)储存至载入队列项目中,上述命中分页指标用以表示第一片段的虚拟分页位(即必须被转译用以取得物理分页的虚拟地址位)是否与对应的中断点地址位相符。当载入管线处理第二片段执行中断点检查时,载入管线使用命中分页指标作为一替代指标(surrogate),用以取代比较第二片段的虚拟分页位与对应的中断点地址位的动作。值得注意的是,虽然虚拟地址在载入单元处理第一片段时已经被物理地址重写,因而导致无法执行上述比较第二片段的虚拟分页位与对应的中断点地址位的动作,但通过使用命中分页指标,此种情况是可以接受的。请参考图1,图1为本发明实施例的微处理器100的方块图。微处理器100包括以管线型式耦接成的指令快取106、指令解码器108、暂存器别名表(registeraliastable;RAT)134、保留站(reservationstation)136以及执行单元138。执行单元138包括一存储器子系统182,存储器子系统182包括一载入队列181、载入单元185、储存队列184以及储存单元183。微处理器100也包括耦接至存储器子系统182的数据快取186。微处理器100也包括耦接至执行单元138的中断点暂存器162。微处理器100还包括耦接至暂存器别名表134、保留站136、中断点暂存器162与执行单元138的重新排序缓冲器(reorderbuffer;ROB)172。以下将配合图23以及图56描述载入单元185的细部运作。请参考图2,图2为本发明实施例的图1中微处理器100的载入单元185的方块图。载入单元185接收一载入指令与地址操作数并计算来自地址操作数中的一载入虚拟地址234。图2显示了图1中微处理器100的中断点暂存器162。在一实施例中,中断点暂存器162包含x86架构的除错中断点暂存器,使得程序设计者能够通过此除错中断点暂存器来指定一个或多个地址范围。图2显示了图1中微处理器100的载入队列181中的载入队列项目222。载入队列181包括多个载入队列项目222,图2只显示其中一个已被分配到一载入指令的载入队列项目222,并且图1中微处理器100的保留站136将此载入指令发送至载入单元185。各个载入队列项目222包含一地址字段(addressfield)224、一第一指标字段(firstindicatorfield)228以及一第二指标字段(secondindicatorfield)226。第一指针字段228表示载入指令的第一片段的载入虚拟地址234是否落在被指定在中断点暂存器162中的任一中断点地址范围内。第二指针字段226表示载入指令的第一片段的虚拟分页地址位(将在以下描述)是否与中断点地址232中的一者的对应位相符。载入单元185中的转译查询缓冲器(TranslationLookasideBuffer;TLB)218根据所接收的载入虚拟地址234输出一载入物理地址236,并且熟知虚拟存储器系统技艺者应能理解,载入物理地址236具有被转译成物理分页地址的载入虚拟地址234的虚拟分页地址位。2:1多工器208的一输入端接收载入虚拟地址234,另一输入端接收载入物理地址236。当载入单元185产生载入虚拟地址234时,载入单元185控制2:1多工器208用以将载入虚拟地址234载入至载入队列项目222中的地址字段224。当转译查询缓冲器218产生载入物理地址236时,载入单元185将载入物理地址236载入至地址字段224。载入单元185包括分页比较器204用以接收载入虚拟地址234的较高位(upperbits)。在一实施例中,载入虚拟地址234的较高位包括虚拟地址位[47:12]。在4千字节(KB)存储器分页的情况下,虚拟地址位[47:12]称为虚拟分页地址位并且用以指定虚拟存储器分页。在一虚拟存储器系统中,虚拟分页地址位为必须由一虚拟存储器分页地址转译成一物理存储分页地址的位。分页比较器204也接收来自中断点暂存器162的中断点地址232。具体而言,分页比较器204接收中断点地址232的较高位,并且上述中断点地址232的较高位对应至分页比较器204所接收的载入虚拟地址234的较高位。分页比较器204比较载入虚拟地址234的较高位与各个中断点地址232的较高位,并且产生一符合信号(matchsignal)252。若上述比较动作有产生符合结果,则符合信号252为真值(true)。载入单元185包括一2:1多工器212。2:1多工器212具有一输入端接收分页比较器204所输出的符合信号252,而另一输入端接收来自载入队列项目222的第二指针字段226的数值。控制逻辑电路248产生一第二片段控制信号(pieCe2controlSignal)254用以控制21多工器212。第二片段控制信号254在处理第二片段这段期间为真值,而在处理第一片段这段期间为伪值(false)。因此,当载入指令的第一片段被处理时,第二片段控制信号254会控制2:1多工器212选择符合信号252;而当载入指令的第二片段被处理时,第二片段控制信号254会控制2:1多工器212选择第二指标字段226。2:1多工器212将所选择的输入值提供至一命中分页输出(hit-page0utput)262。当载入单元185在处理第一片段时,控制逻辑电路248会使得命中分页输出262的值被载入至载入队列项目222中的第二指标字段226。载入单元185也包括一递增器216用以接收来自载入队列项目222的地址字段224的较低位(lowerbits)。在一实施例中,较低位包括位[11:0]。由于位[11:0]用以指定一4千字节分页中的偏移量,因此位[11:0]称为偏移位元(offsetbits)。递增器216将偏移位元的最低有效快取线位递增,并且通过此递增动作连带将其它较低/偏移位元递增。在一实施例中,一条快取线的大小为64位,因此位[5:0]用以指定一快取线中的偏移量,而位[6]即为最低有效快取线位。递增器216将递增结果238输出至2:1多工器214的一输入端。2:1多工器214的另一输入端接收载入虚拟地址234的对应的较低/偏移位元。当载入指令的第二片段被处理时,第二片段控制信号254会控制2:1多工器214选择递增结果238;而当载入指令的第一片段被处理时,第二片段控制信号254会控制21多工器214选择载入虚拟地址234的较低/偏移位元。2:1多工器214将所选择的输入值提供至一输出端,该输出端为较低/偏移位元255。载入单元185也包括偏移量比较器206用以从2:1多工器214的输出端接收较低/偏移位元255。偏移量比较器206也接收中断点地址232的较低位g及来自中断点暂存器162的信息,其中上述中断点地址232的较低位对应至来自2:1多工器214的较低/偏移位元255,并且上述信息显示中断点虚拟地址范围的大小。偏移量比较器206比较所接收的位并产生一命中偏移信号(hit-offsetsignal)264。若上述比较动作有产生符合结果(即较低/偏移位元255落在任一被指定在中断点暂存器162中的范围内),则命中偏移信号264为真值。在一实施例中,偏移量比较器206只会比较位[11:2]并且另外检查与载入指令以及中断点地址232有关的字节致能(byteenables),用以产生命中偏移信号264。双输入与门(2-inputANDGate)242接收命中分页输出262与命中偏移信号264用以产生一brklor2信号266。若第一片段的载入虚拟地址234落在被指定在中断点暂存器162中的任一中断点地址范围内,则brklor2信号266在处理第一片段这段期间为真值。若第二片段的载入虚拟地址234(实际上是第一片段的具有已递增的最低有效快取线位的载入虚拟地址234)落在被指定在中断点暂存器162中的任一中断点地址范围内,则brklor2信号266在处理第二片段这段期间为伪值。当载入单元185在处理第一片段时,控制逻辑电路248会使得brklor2信号266的值被载入至载入队列项目222中的第一指标字段228。双输入或门(2-inputORGate)244接收brklor2信号266与来自载入队列项目222的第一指针字段228的数值,用以产生一结果信号268。双输入与门246接收第二片段控制信号254与双输入或门244所输出的结果信号268,用以产生一brk信号272。因此在处理第二片段这段期间,若第一或第二片段中的任一者触发一中断点,则双输入与门246会产生一为真值的brk信号272。双输入与门246将brk信号272提供至第一图的微处理器100中的重新排序缓冲器172,并且重新排序缓冲器172根据所接收的brk信号272设置与载入指令有关的一项目中的位,使得微处理器100可在载入指令准备引退时执行(take)一除错中断点异常(debugbreakpointexception)请参考图3,图3为包含图2的载入单元185的第一图的微处理器100的操作流程图。流程从步骤302开始。在步骤302中,一程序设计者使用一个或多个中断点地址范围来设定中断点暂存器162。流程前进至步骤304。在步骤304中,载入单元185接收一载入指令,其中此载入指令跨越一快取线边界但不跨越一分页边界。载入单元185根据所接收的载入指令,将载入指令的第一片段沿着载入管线传送用以进行处理。在一实施例中若载入指令跨越两个分页,则载入单元185执行上述较慢的方法(即使用额外的管线循环)。流程同时前进至步骤306与312。在步骤306中,载入单元185对第一片段的载入虚拟地址234执行中断点检查。换言之,图2中的载入单元185会产生第一片段的命中分页输出262与brklor2信号266。流程前进至步骤308。在步骤308中,载入单元185将命中分页输出262储存至第二指标字段226,并且将brklor2信号266储存至第一指标字段228。流程从步骤308前进至步骤318。在步骤312中,转译查询缓冲器218产生载入物理地址236。流程从步骤312同时前进至步骤314与316。在步骤314中,载入单元185使用载入物理地址236来存取第一图的微处理器100中的数据快取186,用以取得由载入指令的第一片段所指定的快取数据。流程前进至步骤318。在步骤316中,载入单元185将载入队列项目222的地址字段224中的载入虚拟地址234替换为载入物理地址236。流程前进至步骤318。在步骤318中,载入单元185将载入指令的第二片段沿着载入管线传送用以进行处理。流程前进至步骤322。在步骤322中,图2的递增器216将载入物理地址236的最低有效快取线位递增用以产生递增结果238。流程从步骤322同时前进至步骤324与326。在步骤324中,载入单元185使用第二指针字段226与递增结果238来对第二片段执行一中断点检查。换言之,2:1多工器212选择第二指标字段226,而2:1多工器214选择递增结果238,并且21多工器214将递增结果238提供至偏移量比较器206,用以产生第二片段的命中偏移信号264。如前文所述,第二指标字段226与命中偏移信号264用以产生第二片段的brklorf信号266。流程前进至步骤328。在步骤326中,载入单元185使用递增结果238来存取数据快取186,用以取得由载入指令的第二片段所指定的快取数据。流程前进至步骤328。在步骤328中,载入单元185通过brk信号272发出一中断点消息。流程前进至步骤332。在步骤332中,载入单元185完成载入指令的执行动作(即告知重新排序缓冲器172已经完成载入指令的执行动作)。流程结束于步骤332。如图1到图4所述,微处理器100的优点在于只需使用两个管线循环(twopasses)就能够检查载入指令的中断点,其中此载入指令跨越一快取线边界但不跨越一分页边界。此外,由于微处理器100不需在各个载入队列项目222中包含一第二地址字段,因此不会增加芯片的实际面积以及功率消耗。相反地,微处理器100只需在各个载入队列项目222中设置每个中断点暂存器162的一单一附加位以及需要些许的附加逻辑电路(即2:1多工器214与双输入与门242)。请参考图5,图5为本发明另一实施例的图1中微处理器100的载入单元185的方块图。此实施例的优点在于可在处理第一片段时对两个片段执行中断点检查,并且这两个片段共享(share)分页比较器204。以下将描述图5与图2中的载入单元185的差异。如图5所示,载入单元185不包括图2中的2:1多工器212、2:1多工器214、双输入与门242、双输入或门244、双输入与门246或第二指标字段226。图5的载入单元185包括偏移量比较器206,图5的偏移量比较器206与图2的偏移量比较器206类似,皆用以对载入指令的第一片段的较低/偏移位元执行一范围检查。换言之,在此实施例中,偏移量比较器206比较所接收的载入虚拟地址234的较低/偏移位元与中断点地址232的较低/偏移位元,用以对载入指令的第一片段执行范围检查并产生一第一片段命中偏移信号562,其中若较低/偏移位元255落在任一被指定在中断点暂存器162中的范围内,则第一片段命中偏移信号562为真值。图5的载入单元185也包括偏移量比较器506,用以对载入指令的第二片段的较低/偏移位元执行一类似的范围检查。在此实施例中,递增器216接收载入虚拟地址234的较低/偏移位元。偏移量比较器506比较所接收的递增结果238与中断点地址232的较低/偏移位元,用以对载入指令的第二片段执行范围检查并产生一第二片段命中偏移信号564,其中若递增结果238(即载入指令的第二片段的较低/偏移位元)落在任一被指定在中断点暂存器162中的范围内,则第二片段命中偏移信号564为真值。双输入或门582接收第一片段命中偏移信号562与第二片段命中偏移信号564用以产生一第一输出信号586。双输入与门584接收命中分页输出262与第一输出信号586用以产生一第二输出信号588,其中若第一或第二片段中的任一者触发一中断点,则第二输出信号588为真值。双输入与门584将第二输出信号588提供至第一指标字段228,其中第一指标字段228在处理第二片段时被输出作为brk信号272。请参考图6,图6为包含图5的载入单元185的图1的微处理器100的操作流程图,其中图6与图3中的步骤302、304、312、316、318、326以及332相同。以下将描述图6与图3之间的差异。流程从步骤304同时前进至步骤605、606、607与312。在步骤605中,分页比较器204执行分页位比较。流程前进至步骤608。在步骤606中,偏移量比较器206执行第一片段的偏移位元比较。流程前进至步骤608。在步骤607中,偏移量比较器506执行第二片段的偏移位元比较。流程前进至步骤608。在步骤608中,双输入或门582与双输入与门584产生第二输出信号588,并且在处理完第一片段时将第二输出信号588储存至第一指标字段228。流程从步骤608前进至步骤318。流程从步骤312同时前进至步骤614与316。在步骤614中,载入单元185使用步骤312中所产生的第一片段的载入物理地址236来存取数据快取186。流程前进至步骤318用以将载入指令的第二片段沿着载入管线传送用以进行处理。流程从步骤318前进至步骤326。在一实施例中,在步骤326,当处理第二片段时,递增器216将载入物理地址236的最低有效快取线位递增用以产生递增结果238,并使用此递增结果238来存取数据快取186。在另一实施例中,当处理第一片段时,转译查询缓冲器218所产生的载入物理地址236的较高位与递增结果238的递增的较低/偏移位元为串接位,并且储存于地址字段224的递增的物理地址用以存取数据快取186。流程从步骤326前进至步骤628。在步骤628中,载入单元185通过brk信号272发出一中断点消息,其中brk信号272为第一指标字段228的输出值。流程从步骤628前进至步骤332。流程结束于步骤332。值得注意的是,在图2与图3的实施例中,必须加入至各个载入队列项目222中的第二指标字段226的数量是随着中断点暂存器162的数量的增加而增加。因此,若一微处理器具有相对较多的中断点暂存器162,则可能无法在载入队列项目222中加入额外的储存空间。然而,在图5与图6的实施例中,载入队列项目222中所需的储存空间并不会随着中断点暂存器162的数量的增加而增加。此优点可通过增加额外的偏移量比较器506来实现。本发明的实施例不限定于执行载入指令,亦能执行跨越两条快取线的储存指令。具体而言,图5与图6的实施例是适用于执行储存指令。此外,本发明的实施例不限定于执行除错中断点检查,亦能检查一跨越两条快取线的存储器指令是否落在与一除错中断点范围不同的一虚拟地址范围内。举例而言,本发明的实施例可检查一跨越快取线的存储器指令是否落在一个或多个使用者定义的虚拟地址范围内,用以计算地址范位的存取次数以便执行软件评测(softwareprofiling),效能测试(performancemeasurement)或非侵入式禾呈序码除错(non-invasivecodedebugging),其中非侵入式程序码除错是指在不产生一中断点异常的情况下检测一虚拟地址范围的存取次数。载入单元可包括一计数器,其中载入单元在每次虚拟地址范围被存取时递增上述计数器,而不是通过产生一中断点异常来检测虚拟地址范围的存取次数。上述应用特别对难以从一外部总线检测存储器存取次数的多处理器核心配置(multi-processorcoreconfigurations)有益。此夕卜,操作系统可定义一个或多个几乎所有特权程序(privilegedprograms)无法存取的虚拟地址范围,并且可通过本发明的实施例来检查一跨越快取线的存储器指令是否落在此禁止存取范围内,如果是的话,则微处理器产生一中断点异常。本发明虽以各种实施例揭露如上,然其仅为范例参考而非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰。举例而言,可使用软件来实现本发明所述的装置与方法的功能、构造、模块、仿真、描述及/或测试。此目的可通过使用一般程序语言(例如C、C++)、硬件描述语言(包括Verilog或VHDL硬件描述语言等等)、或其它可用的程序来实现。上述软件可被设置在任何计算机可用的媒体,例如半导体、磁盘、光盘(例如CD-R0M、DVD_R0M等等)中。本发明实施例中所述的装置与方法可被包括在一半导体智慧财产权核心(semiconductorintellectualpropertycore),例如以硬件描述语言(HDL)实现的微处理器核心中,并被转换为硬件型态的集成电路产品。此外,本发明所描述的装置与方法可通过结合硬件与软件的方式来实现。因此,本发明不应上述被本文中的任一实施例所限定,而当视所附的权利要求范围与其等效物所界定者为准。特别是,本发明是实现于一般用途计算机的微处理器装置中。最后,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。20权利要求一种微处理器,用以对一跨越快取线的载入/储存指令执行一中断点检查,上述载入/储存指令指定一数据的一载入/储存虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器包括一中断点暂存器,用以储存一中断点地址;一队列,包括多个队列项目,上述队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中上述地址与上述载入/储存指令有关,并且上述指标用以表示上述载入/储存虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分是否相符合;以及一载入/储存单元管线,具有一载入/储存单元,并耦接至上述中断点暂存器与上述队列,其中上述载入/储存单元管线于一第一管线循环期间执行上述跨越快取线的载入/储存指令以便通过一高速缓存来存取上述数据的上述第一片段,并且上述载入/储存单元管线于一第二管线循环期间执行上述跨越快取线的载入/储存指令以便通过上述高速缓存来存取上述数据的上述第二片段;其中在上述第一管线循环期间,上述载入/储存单元使用上述载入/储存虚拟地址来执行一第一片段中断点检查,将上述指标储存至上述第二储存空间,并且将一载入/储存物理地址储存至上述第一储存空间,其中上述载入/储存物理地址是由上述载入/储存虚拟地址转译而成;其中在上述第二管线循环期间,上述载入/储存单元使用来自上述第二储存空间的上述指标与来自上述第一储存空间的上述载入/储存物理地址的一递增分页偏移部分,用以执行一第二片段中断点检查;其中上述载入/储存单元不使用超过两个上述管线循环来存取上述高速缓存以及对上述载入/储存指令执行上述中断点检查;其中只有上述队列项目中的每一者中的上述第一储存空间用以储存与上述载入/储存指令有关的上述地址。2.根据权利要求1所述的微处理器,其中在上述第一管线循环期间,上述载入/储存单元管线使用上述载入/储存物理地址来存取上述高速缓存以便载入/储存上述数据的上述第一片段,并且在上述第二管线循环期间,上述载入/储存单元管线使用上述载入/储存物理地址的上述递增分页偏移部分来存取上述高速缓存以便载入/储存上述数据的上述第二片段,上述载入/储存物理地址是由上述载入/储存虚拟地址转译而成,并且上述载入/储存物理地址是来自于上述第一储存空间。3.根据权利要求1所述的微处理器,其中上述载入/储存单元管线包括多个分页地址比较器,比较上述载入/储存虚拟地址的上述分页地址部分与上述中断点地址的上述分页地址部分用以产生一第一数值,上述第一数值用以表示上述载入/储存虚拟地址的上述分页地址部分与上述中断点地址的上述分页地址部分是否相符合,其中上述载入/储存单元将上述第一管线循环期间所产生的上述第一数值储存至上述第二储存空间;一多工器,耦接至上述分页地址比较器,上述多工器选择上述分页地址比较器于上述第一管线循环期间所产生的上述第一数值,用以执行上述第一片段中断点检查,并且在上述第二管线循环期间选择来自上述第二储存空间的上述指标,用以执行上述第二片段中断点检查;以及多个分页偏移比较器,于上述第一管线循环期间比较上述载入/储存虚拟地址的一分页偏移部分与上述中断点地址的一分页偏移部分,用以产生一第二数值,其中上述第二数值用以表示上述载入/储存虚拟地址的上述分页偏移部分与上述中断点地址的上述分页偏移部分是否相符合,并且于上述第二管线循环期间比较来自上述第一储存空间的上述载入/储存物理地址的上述递增分页偏移部分与上述中断点地址的上述分页偏移部分,用以产生一第三数值,其中上述第三数值用以表示上述载入/储存物理地址的上述递增分页偏移部分与上述中断点地址的上述分页偏移部分是否相符合。4.根据权利要求3所述的微处理器,其中上述载入/储存单元于上述第一管线循环期间使用上述分页地址比较器所产生的上述第一数值与上述分页偏移比较器所产生的上述第二数值来执行上述第一片段中断点检查,并且上述载入/储存单元于上述第二管线循环期间使用来自上述第二储存空间的上述指标与上述分页偏移比较器所产生的上述第三数值来执行上述第二片段中断点检查。5.一种适用于微处理器的操作方法,上述微处理器包括一高速缓存用以对一跨越快取线的载入/储存指令执行一中断点检查,上述载入/储存指令指定一数据的一载入/储存虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器还包括一中断点暂存器用以储存一中断点地址,上述微处理器还包括具有多个队列项目的一队列,上述队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中上述地址与上述载入/储存指令有关,并且上述指标用以表示上述载入/储存虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分是否相符合,上述微处理器还包括具有一载入/储存单元的一载入/储存单元管线,上述方法包括在一第一管线循环期间执行与上述数据的上述第一片段有关的一第一片段中断点检查,其中上述执行上述第一片段中断点检查的步骤包括比较上述中断点地址与上述载入/储存虚拟地址;将上述指标储存至上述第二储存空间;以及将一载入/储存物理地址储存至上述第一储存空间,其中上述载入/储存物理地址是由上述载入/储存虚拟地址转译而成;以及在一第二管线循环期间执行与上述数据的上述第二片段有关的一第二片段中断点检查,其中上述执行上述第二片段中断点检查的步骤包括检查来自上述第二储存空间的上述指标,并且比较上述中断点地址的一分页偏移部分与来自上述第一储存空间的上述载入/储存物理地址的一递增分页偏移部分;其中不使用超过两个上述管线循环来存取上述高速缓存以及对上述载入/储存指令执行上述中断点检查;其中只有上述队列项目中的每一者中的上述第一储存空间用以储存与上述载入/储存指令有关的上述地址。6.根据权利要求5所述的适用于微处理器的操作方法,其中在上述第一管线循环期间使用上述载入/储存物理地址来存取上述高速缓存以便载入/储存上述数据的上述第一片段,并且在上述第二管线循环期间使用上述载入/储存物理地址的上述递增分页偏移部分来存取上述高速缓存以便载入/储存上述数据的上述第二片段,其中上述载入/储存物理地址是由上述载入/储存虚拟地址转译而成,并且上述载入/储存物理地址是来自于上述第一储存空间。7.根据权利要求5所述的适用于微处理器的操作方法,其中于上述第一管线循环期间比较上述中断点地址与上述载入/储存虚拟地址的步骤包括比较上述载入/储存虚拟地址的上述分页地址部分与上述中断点地址的上述分页地址部分用以产生一第一数值,上述第一数值表示上述载入/储存虚拟地址的上述分页地址部分与上述中断点地址的上述分页地址部分是否相符合;其中将上述指标储存至上述第二储存空间的步骤包括将上述第一数值储存至上述第二储存空间。8.根据权利要求7所述的适用于微处理器的操作方法,其中上述执行上述第一片段中断点检查的步骤包括选择上述第一数值用以执行上述第一片段中断点检查;其中上述执行上述第二片段中断点检查的步骤包括选择来自上述第二储存空间的上述指标用以执行上述第二片段中断点检查。9.根据权利要求8所述的适用于微处理器的操作方法,其中上述执行上述第一片段中断点检查的步骤包括使用一第二数值与上述第一数值来执行上述第一片段中断点检查,其中上述第二数值是通过比较上述载入/储存虚拟地址的上述分页偏移部分与上述中断点地址的上述分页偏移部分而产生,并且上述第二数值表示上述载入/储存虚拟地址的上述分页偏移部分与上述中断点地址的上述分页偏移部分是否相符合;其中上述执行上述第二片段中断点检查的步骤包括使用来自上述第二储存空间的上述指标与一第三数值来执行上述第二片段中断点检查,其中上述第三数值是通过比较来自上述第一储存空间的上述载入/储存物理地址的上述递增分页偏移部分与上述中断点地址的上述分页偏移部分而产生,并且上述第三数值表示上述递增载入/储存物理地址的上述分页偏移部分与上述中断点地址的上述分页偏移部分是否相符合。10.一种微处理器,用以对一跨越快取线的载入/储存指令执行一中断点检查,上述载入/储存指令指定一数据的一载入/储存虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器包括一中断点暂存器,用以储存一中断点地址;以及一载入/储存单元,耦接至上述中断点暂存器,上述载入/储存单元包括一分页地址比较器,比较上述载入/储存虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分,用以产生一第一指标;一第一分页偏移比较器,比较上述载入/储存虚拟地址的一分页偏移部分与上述中断点地址的一分页偏移部分,用以产生一第二指标;一递增器,将上述载入/储存虚拟地址的上述分页偏移部分递增一条快取线的大小,用以产生一递增分页偏移部分;以及一第二分页偏移比较器,比较上述中断点地址的上述分页偏移部分与上述递增分页偏移部分,用以产生一第三指标;其中若上述第一指标为真值并且上述第二与第三指标中的至少一者为真值时,则上述载入/储存单元表示上述载入/储存指令的一中断点。11.根据权利要求10所述的微处理器,其中上述载入/储存指令并不跨越一存储器分页边界。12.根据权利要求10所述的微处理器,还包括一队列,包括多个队列项目,上述队列项目中的每一者包括一储存空间用以储存与上述载入/储存指令有关的一地址,其中只有上述队列项目中的每一者中的上述储存空间用以储存与上述载入/储存指令有关的上述地址。13.根据权利要求12所述的微处理器,其中上述载入/储存单元于一第一管线循环期间执行以下步骤将上述载入/储存虚拟地址转译成一载入/储存物理地址;使用上述载入/储存物理地址来存取上述微处理器的一高速缓存,以便载入/储存上述数据的上述第一片段;以及将上述载入/储存物理地址储存至上述载入/储存指令的上述队列项目中的上述储存空间;其中上述载入/储存单元于一第二管线循环期间执行以下步骤使用上述递增分页偏移部分来存取上述高速缓存,以便载入/储存上述数据的上述第二片段;其中上述载入/储存单元不使用超过两个上述管线循环来存取上述高速缓存以及对上述载入/储存指令执行上述中断点检查,其中上述存取上述高速缓存的步骤包括将上述数据的上述第一与第二片段载入/储存至上述高速缓存或从上述高速缓存中载入/储存上述数据的上述第一与第二片段。14.一种适用于微处理器的操作方法,用以对一跨越快取线的载入/储存指令执行一中断点检查,上述载入/储存指令指定一数据的一载入/储存虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器包括一中断点暂存器用以储存一中断点地址,上述方法包括(1)比较上述载入/储存虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分,用以产生一第一指标;(2)比较上述载入/储存虚拟地址的一分页偏移部分与上述中断点地址的一分页偏移部分,用以产生一第二指标;(3)将上述载入/储存虚拟地址的上述分页偏移部分递增一条快取线的大小,用以产生一递增分页偏移部分;(4)比较上述中断点地址的上述分页偏移部分与上述递增分页偏移部分,用以产生一第三指标;以及(5)若上述第一指标为真值并且上述第二与第三指标中的至少一者为真值时,则表示上述载入/储存指令的一中断点。15.根据权利要求14所述的适用于微处理器的操作方法,其中上述载入/储存指令并不跨越一存储器分页边界。16.根据权利要求14所述的适用于微处理器的操作方法,其中上述微处理器还包括具有多个队列项目的一队列,上述队列项目中的每一者包括一储存空间用以储存与上述载入/储存指令有关的一地址,其中只有上述队列项目中的每一者中的上述储存空间用以储存与上述载入/储存指令有关的上述地址。17.根据权利要求14所述的适用于微处理器的操作方法,还包括(6)将上述载入/储存虚拟地址转译成一载入/储存物理地址;(7)使用上述载入/储存物理地址来存取上述微处理器的一高速缓存以便载入/储存上述数据的上述第一片段;(8)将上述载入/储存物理地址储存至上述载入/储存指令的上述队列项目中的上述储存空间;以及(9)使用上述递增分页偏移部分来存取上述高速缓存以便载入/储存上述数据的上述第二片段。18.根据权利要求17所述的适用于微处理器的操作方法,其中于一第一管线循环期间执行上述步骤(6)、(7)以及(8),并且于一第二管线循环期间执行上述步骤(9);其中不使用超过两个上述管线循环来存取上述高速缓存以及对上述载入/储存指令执行上述中断点检查,其中上述存取上述高速缓存的步骤包括将上述数据的上述第一与第二片段载入/储存至上述高速缓存或从上述高速缓存中载入/储存上述数据的上述第一与第二片段。19.根据权利要求14所述的适用于微处理器的操作方法,其中于一第一管线循环期间执行上述步骤(1)、(2)、(3)以及(4),并且于一第二管线循环期间执行上述步骤(5)。20.一种微处理器,用以计算一指定的虚拟存储器地址范围的存取次数,其中存取上述指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入/储存指令,上述载入/储存指令指定一数据的一载入/储存虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器包括一暂存器,用以储存一信息,上述信息用以指定一虚拟地址范围,并且上述信息包括一范围地址用以指定一起始虚拟地址范围,其中上述虚拟存储器地址范围位于一虚拟存储器分页中;一计数器,用以储存一计数值,上述计数值代表上述虚拟地址范围的存取次数,并且上述虚拟地址范围是由上述暂存器中的上述信息所指定;一队列,包括多个队列项目,上述队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中上述地址与上述载入/储存指令有关,并且上述指标用以表示上述载入/储存虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分是否相符合;以及具有一载入/储存单元的一载入/储存单元管线,耦接至上述暂存器与上述队列,其中上述载入/储存单元管线于一第一管线循环期间将上述数据的上述第一片段载入/储存至一高速缓存或从上述高速缓存中载入/储存上述数据的上述第一片段,并且上述载入/储存单元管线于一第二管线循环期间将上述数据的上述第二片段载入/储存至上述高速缓存或从上述高速缓存中载入/储存上述数据的上述第二片段;其中在上述第一管线循环期间,上述载入/储存单元使用上述载入/储存虚拟地址来判断上述数据的上述第一片段是否落在上述虚拟地址范围内,将上述指标储存至上述第二储存空间,并且将一载入/储存物理地址储存至上述第一储存空间,其中上述载入/储存物理地址是由上述载入/储存虚拟地址转译而成;其中在上述第二管线循环期间,上述载入/储存单元使用来自上述第二储存空间的上述指标与来自上述第一储存空间的上述载入/储存物理地址的一递增分页偏移部分,用以判断上述数据的上述第二片段是否落在上述虚拟地址范围内;其中若上述载入/储存单元判断上述数据的上述第一与第二片段中的任一者位于上述虚拟地址范围内,则上述载入/储存单元将上述计数器递增;其中上述载入/储存单元不使用超过两个上述管线循环来存取上述高速缓存以及判断上述数据的上述第一与第二片段中的任一者是否位于上述虚拟地址范围内;其中只有上述队列项目中的每一者中的上述第一储存空间用以储存与上述载入/储存指令有关的上述地址。21.一种适用于微处理器的操作方法,用以计算一指定的虚拟存储器地址范围的存取次数,其中存取上述指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入/储存指令,上述载入/储存指令指定一数据的一载入/储存虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器包括一暂存器用以储存一信息,上述信息用以指定一虚拟地址范围并且包括一范围地址用以指定一起始虚拟地址范围,其中上述虚拟存储器地址范围位于一虚拟存储器分页中,上述微处理器还包括一计数器用以储存一计数值,上述计数值代表上述虚拟地址范围的存取次数,并且上述虚拟地址范围是由上述暂存器中的上述信息所指定,上述微处理器还包括具有多个队列项目的一队列,上述队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中上述地址与上述载入/储存指令有关,并且上述指标表示上述载入/储存虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分是否相符合,上述微处理器还包括具有一载入/储存单元的一载入/储存单元管线,上述方法包括在一第一管线循环期间(1)将上述数据的上述第一片段载入/储存至一高速缓存或从上述高速缓存中载入/储存上述数据的上述第一片段;(2)使用上述载入/储存虚拟地址来判断上述数据的上述第一片段是否位于上述虚拟地址范围内;(3)将上述指标储存至上述第二储存空间;以及(4)将一载入/储存物理地址储存至上述第一储存空间,其中上述载入/储存物理地址是由上述载入/储存虚拟地址转译而成;在一第二管线循环期间(5)将上述数据的上述第二片段载入/储存至上述高速缓存或从上述高速缓存中载入/储存上述数据的上述第二片段;(6)使用来自上述第二储存空间的上述指标与来自上述第一储存空间的上述载入/储存物理地址的一递增分页偏移部分,用以判断上述数据的上述第二片段是否落在上述虚拟地址范围内;(7)若上述载入/储存单元判断上述数据的上述第一与第二片段中的任一者位于上述虚拟地址范围内,则将上述计数器递增;其中不使用超过两个上述管线循环来执行上述步骤(1)到(7);其中只有上述队列项目中的每一者中的上述第一储存空间用以储存与上述载入/储存指令有关的上述地址。22.一种微处理器,用以禁止多个程序存取一指定的虚拟存储器地址范围,其中存取上述指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入指令,上述载入指令指定一数据的一载入虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器包括一暂存器,用以储存一信息,上述信息用以指定一虚拟存储器地址范围,并且上述信息包括一范围地址用以指定一起始虚拟存储器地址范围,其中上述虚拟存储器地址范围位于一虚拟存储器分页中;一队列,包括多个队列项目,上述队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中上述地址与上述载入指令有关,并且上述指标用以表示上述载入虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分是否相符合;以及一载入管线,具有一载入单元,并耦接至上述暂存器与上述队列,其中上述载入管线于一第一管线循环期间从一高速缓存中读取上述数据的上述第一片段,并且上述载入管线于一第二管线循环期间从上述高速缓存中读取上述数据的上述第二片段;其中在上述第一管线循环期间,上述载入单元使用上述载入虚拟地址来判断上述数据的上述第一片段是否落在上述虚拟存储器地址范围内,将上述指标储存至上述第二储存空间,并且将一载入物理地址储存至上述第一储存空间,其中上述载入物理地址是由上述载入虚拟地址转译而成;其中在上述第二管线循环期间,上述载入单元使用来自上述第二储存空间的上述指标与来自上述第一储存空间的上述载入物理地址的一递增分页偏移部分,用以判断上述数据的上述第二片段是否落在上述虚拟存储器地址范围内;其中若上述载入单元判断上述数据的上述第一与第二片段中的任一者位于上述虚拟存储器地址范围内,并且上述程序禁止存取上述虚拟存储器地址范围,则上述载入单元禁止将上述数据载入至上述载入指令所指定的一目标暂存器;其中上述载入单元不使用超过两个上述管线循环来读取来自上述高速缓存的上述数据的上述第一与第二片段以及判断上述数据的上述第一与第二片段中的任一者是否位于上述虚拟存储器地址范围内;其中只有上述队列项目中的每一者中的上述第一储存空间用以储存与上述载入指令有关的上述地址。23.根据权利要求22所述的微处理器,其中若上述载入单元判断上述数据的上述第一与第二片段中的任一者位于上述虚拟存储器地址范围内,并且上述程序禁止存取上述虚拟存储器地址范围,则上述载入单元产生一中断点异常。24.一种适用于微处理器的操作方法,用以禁止多个程序存取一指定的虚拟存储器地址范围,其中存取上述指定的虚拟存储器地址范围的步骤包括执行一跨越快取线的载入指令,上述载入指令指定一数据的一载入虚拟地址,其中上述数据的一第一片段位于一第一快取线中,并且上述数据的一第二片段位于一第二快取线中,上述微处理器包括一暂存器用以储存一信息,上述信息用以指定一虚拟存储器地址范围并且包括一范围地址用以指定一起始虚拟存储器地址范围,其中上述虚拟存储器地址范围位于一虚拟存储器分页中,上述微处理器还包括具有多个队列项目的一队列,上述队列项目中的每一者包括用以储存一地址的一第一储存空间与用以储存一指标的一第二储存空间,其中上述地址与上述载入指令有关,并且上述指针表示上述载入虚拟地址的一分页地址部分与上述中断点地址的一分页地址部分是否相符合,上述微处理器还包括具有一载入单元的一载入管线,上述方法包括在一第一管线循环期间(1)从一高速缓存中读取上述数据的上述第一片段;(2)使用上述载入虚拟地址来判断上述数据的上述第一片段是否位于上述虚拟存储器地址范围内;(3)将上述指标储存至上述第二储存空间;以及(4)将一载入物理地址储存至上述第一储存空间,其中上述载入物理地址是由上述载入虚拟地址转译而成;在一第二管线循环期间(5)从上述高速缓存中读取上述数据的上述第二片段;(6)使用来自上述第二储存空间的上述指标与来自上述第一储存空间的上述载入物理地址的一递增分页偏移部分,用以判断上述数据的上述第二片段是否落在上述虚拟存储器地址范围内;(7)若上述载入单元判断上述数据的上述第一与第二片段中的任一者位于上述虚拟存储器地址范围内,并且上述程序无法存取上述虚拟存储器地址范围,则禁止将上述数据载入至由上述载入指令所指定的一目标暂存器;其中不使用超过两个上述管线循环来执行上述步骤(1)到(7);其中只有上述队列项目中的每一者中的上述第一储存空间用以储存与上述载入指令有关的上述地址。25.根据权利要求24所述的适用于微处理器的操作方法,还包括若上述载入单元判断上述数据的上述第一与第二片段中的任一者位于上述虚拟存储器地址范围内,并且上述程序无法存取上述虚拟存储器地址范围,则产生一中断点异常。全文摘要本发明提供一种微处理器,用以对一跨越快取线的载入/储存指令执行一中断点检查,载入/储存指令指定一数据的一载入/储存虚拟地址,其中数据的一第一片段位于一第一快取线中,并且数据的一第二片段位于一第二快取线中。微处理器包括一中断点暂存器、一队列以及具有一载入/储存单元的一载入/储存单元管线。其中在第一管线循环期间,载入/储存单元使用载入/储存虚拟地址来执行一第一片段中断点检查,将指标储存至第二储存空间,并且将一载入/储存物理地址储存至第一储存空间,其中载入/储存物理地址是由载入/储存虚拟地址转译而成。文档编号G06F9/30GK101894010SQ20101024903公开日2010年11月24日申请日期2010年8月6日优先权日2009年8月24日发明者布莱恩·W·伯格,柯林·艾迪申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1