CN108255745A - 处理器以及无效指令缓存的方法 - Google Patents

处理器以及无效指令缓存的方法 Download PDF

Info

Publication number
CN108255745A
CN108255745A CN201611245641.9A CN201611245641A CN108255745A CN 108255745 A CN108255745 A CN 108255745A CN 201611245641 A CN201611245641 A CN 201611245641A CN 108255745 A CN108255745 A CN 108255745A
Authority
CN
China
Prior art keywords
thread
instruction
flow
value
processor
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
CN201611245641.9A
Other languages
English (en)
Other versions
CN108255745B (zh
Inventor
埃德温·苏坦托
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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai Co Ltd
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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN201611245641.9A priority Critical patent/CN108255745B/zh
Publication of CN108255745A publication Critical patent/CN108255745A/zh
Application granted granted Critical
Publication of CN108255745B publication Critical patent/CN108255745B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本发明提供一种处理器及一种无效指令缓存的方法,其中,处理器包括多个线程和指令取得单元。指令取得单元被配置用于:在多个线程中的第一线程上执行至少一个指令取得流程,指令取得流程包括多个步骤;以及在执行指令缓存无效操作前,停止第一线程上正在执行的指令取得流程的当前步骤,使得第一线程进入休眠状态,其中,休眠状态是指线程停止工作且待指令缓存无效操作完成后可重启的状态。这样,为了执行指令缓存无效,在一个或多个线程上等待合适的执行窗口所导致的延时可以被减少。

Description

处理器以及无效指令缓存的方法
技术领域
本发明涉及计算机技术领域,特别涉及一种处理器及一种无效指令缓存的方法。
背景技术
中央处理单元(CPU)包括指令取得单元、指令缓存(IC)、执行单元(executionunit)等等。IC为执行单元与其他存储介质(例如,内存或上一级缓存)之间的临时存储介质,用于存储编码的指令,IC的容量比内存和上一级缓存小但交换速度快。存储在IC中的指令只是内存和上一级缓存中的一小部分,但这一小部分是短时间内执行单元即将访问的。这样,就可避开内存和上一级缓存,直接从IC中调用,从而可以提高读取速度。
IC包括许多个项(entry),编码的指令被分别存储在这许多个项中。IC无效(invalidation)操作指删除IC中执行单元不需要执行的一个项、多个项或所有项。现有技术中,执行IC无效操作会造成额外的延时。特别是对于多线程(multi-threaded)处理器,一个IC可对应多个线程,其中,线程是程序执行流中的最小实体单元。这样,延时会随着线程数量的增加而增加。
发明内容
本发明实施例提供一种处理器及一种无效指令缓存的方法,可以为执行指令缓存(IC)无效操作即时停止对应所述IC的线程,等IC无效操作完成后可再重启停止的线程,从而可以减少等待线程出现合适执行窗口所产生的延时。
本发明实施例提供一种处理器,所述处理器包括多个线程和指令取得单元,所述指令取得单元被配置用于:在所述多个线程中的第一线程上执行至少一个指令取得流程,所述指令取得流程包括多个步骤;以及在执行指令缓存无效操作前,停止所述第一线程上正在执行的指令取得流程的当前步骤,使得所述第一线程进入休眠状态,其中,所述休眠状态是指线程停止工作且待所述指令缓存无效操作完成后可重启的状态。在一些实施例中,所述第一线程的数量为一个或多个。
在一些实施例中,所述至少一个指令取得流程中的每个对应一个程序计数器的值。在一些实施例中,程序计数器(PC)用于存储执行的指令的地址
在一些实施例中,所述多个线程还包括第二线程,所述指令取得单元还被配置用于:所述指令缓存无效操作完成后,基于在所述第一线程上最近执行的一个或多个指令取得流程,在所述第二线程上获取正确的程序计数器的值。
在一些实施例中,所述指令取得单元还被配置用于:根据在所述第二线程获取的正确的程序计数器的值,在完成所述指令缓存无效操作后重启休眠的所述第一线程。
在一些实施例中,所述处理器还包括:存储单元,用于存储与所述一个或多个指令取得流程对应的至少一个时间点数据和至少一个程序计数器的值。在一些实施例中,所述至少一个时间点数据记录所述一个或多个指令取得流程的至少一个步骤的开始执行时间。在一些实施例中,所述至少一个程序计数器的值对应所述一个或多个指令取得流程中相关的至少一个指令地址。
在一些实施例中,在所述第二线程上获取正确的程序计数器的值包括:从所述存储单元获取多个时间点数据;比较所述多个时间点数据以获取最早时间点数据;以及获取所述最早时间点数据对应的程序计数器的值作为所述正确的程序计数器的值。
在一些实施例中,所述多个线程还包括第三线程,所述指令缓存无效操作在所述第三线程上执行。在一些实施例中,所述处理器与其他处理器通信,所述指令缓存无效操作在所述其他处理器的第四线程上执行。
本发明实施例还提供一种无效指令缓存的方法,所述方法包括:在多个线程中的第一线程上执行至少一个指令取得流程,所述指令取得流程包括多个步骤;以及在执行指令缓存无效操作前,停止所述第一线程上正在执行的指令取得流程的当前步骤,使得所述第一线程进入休眠状态,其中,所述休眠状态是指线程停止工作且待所述指令缓存无效操作完成后可重启的状态。在一些实施例中,所述第一线程的数量为一个或多个。
在一些实施例中,所述至少一个指令取得流程中的每个对应一个程序计数器的值。
在一些实施例中,所述方法还包括:所述指令缓存无效操作完成后,基于在所述第一线程上最近执行的一个或多个指令取得流程,在所述多个线程中的第二线程上获取正确的程序计数器的值。
在一些实施例中,所述方法还包括:根据在所述第二线程获取的正确的程序计数器的值,在完成所述指令缓存无效操作后重启休眠的所述第一线程。
在一些实施例中,在所述多个线程中的第二线程上获取正确的程序计数器的值包括:存储与所述一个或多个指令取得流程对应的至少一个时间点数据和至少一个程序计数器的值。在一些实施例中,所述至少一个时间点数据记录所述一个或多个指令取得流程中的至少一个步骤的开始执行时间。在一些实施例中,所述至少一个程序计数器的值对应所述一个或多个指令取得流程中相关的至少一个指令地址。
在一些实施例中,在所述多个线程中的第二线程上获取正确的程序计数器的值还包括:获取多个时间点数据;比较所述多个时间点数据以获取最早时间点数据;以及获取所述最早时间点数据对应的程序计数器的值作为所述正确的程序计数器的值。
在一些实施例中,所述多个线程还包括第三线程,所述指令缓存无效操作在所述第三线程上执行。在一些实施例中,所述指令缓存无效操作在第四线程上执行,其中,所述第四线程和所述多个线程在不同的处理器中。
与现有技术相比,本发明实施例的技术方案具有以下优点:
在需要进行IC无效操作时,立刻停止对应IC的一个或多个线程,等IC无效操作完成后,可根据正确的PC值,重新启动所述一个或多个线程。这样,在需要进行IC无效操作时,不需要等所述一个或多个线程准备好有合适的执行窗口,从而可减少等待所导致的延时。特别对于多线程处理器,可以较大地减少这样的等待延时。
进一步地,指令取得单元被配置用于通过一个线程执行优先逻辑(prioritylogic)以获取正确的PC值,因此不需要在其他单元中,比如执行单元或提交(commit)单元中,增加额外的硬件。
附图说明
图1示出了本发明一个实施例的处理器的结构示意图;
图2示出了本发明一个实施例的一个线程上执行的指令取得流程的流程示意图;
图3示出了本发明另一个实施例的一个线程上执行的指令取得流程的流程示意图;
图4示出了本发明一个实施例的冲洗一个线程的例子的流程示意图;
图5示出了本发明另一个实施例的处理器的结构示意图;
图6示出了本发明一个实施例的两个线程上执行的指令取得流程的流程示意图;
图7示出了本发明一个实施例的冲洗两个线程的例子的流程示意图;
图8示出了本发明一个实施例的应用于处理器的无效指令缓存的方法的流程示意图;以及
图9示出了本发明一个实施例的图8中步骤805的子步骤的流程示意图。
具体实施方式
本发明实施例提供一种处理器及一种无效指令缓存的方法,可以为执行指令缓存(IC)无效操作即时停止对应所述IC的线程,等IC无效操作完成后可再重启停止的线程,从而可以减少等待线程出现合适执行窗口所产生的延时。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。以特定实施例作为参考,对本发明进行说明。因此,公开的实施例不应解释为对本发明的不当的限制。
图1示出了本发明一个实施例的处理器100的结构示意图。参考图1,所述处理器100包括两个线程101和103、指令取得单元105以及存储单元107。具体地,所述指令取得单元105及所述存储单元107分别与两个线程101和103连接。
在一些实施例中,所述指令取得单元105可在线程101上执行IC取得控制逻辑(fetch control logic),所述IC取得控制逻辑包括指令取得流程(pipeline)。所述指令取得单元105执行所述IC取得控制逻辑,从IC取得执行单元需要的指令并传送至下游单元进行下一步处理(比如,解码)。其中,所述IC对应线程101。需要说明地,每个指令取得流程对应一个程序计数器(PC)的值,所述PC值对应指令取得流程中相关指令的地址。图2示出了本发明一个实施例的线程101执行的指令取得流程200的流程示意图。所述指令取得流程200包括步骤201、步骤203及步骤205。步骤201读IC及PC中的指令传输后备缓冲器(ITLB)。步骤203输出IC标签以及比较标签(TAG)和ITLB输出。步骤205执行分支预测(branchprediction)及选择获得指令的方式。所述指令取得流程200对应的PC值为pc。需要说明地,对于一个线程上的指令取得流程,一个步骤在一个时钟周期中执行。
图3示出了本发明另一个实施例的线程101上执行的两个指令取得流程301和302的流程示意图。所述指令取得流程301包括步骤3011、步骤3013及步骤3015。所述指令取得流程302包括步骤3021、步骤3023及步骤3025。需要说明地,步骤3011和3021与步骤201的操作相同,所述步骤3013和3023与步骤203的操作相同,所述步骤3015和3025与步骤205的操作相同。所述指令取得流程301对应的PC值为pc’,所述指令取得流程302对应的PC值为pc’+1。
在一些实施例中,所述存储单元107可存储指令取得流程中步骤的开始执行时间及对应的PC值。在一些实施例中,所述存储单元107包括一组寄存器,所述一组寄存器中的多个寄存器分别对应指令取得流程中的多个步骤。在一些实施例中,参考图2,所述存储单元107包括第一寄存器、第二寄存器及第三寄存器分别存储步骤201、步骤203及步骤205的开始执行时间,以及还分别存储所述指令取得流程200对应的PC值pc。在另一个实施例中,参考图3,所述存储单元107包括第一寄存器、第二寄存器及第三寄存器。当指令取得流程301完成后,所述第一寄存器、所述第二寄存器及所述第三寄存器分别存储步骤3011、步骤3013及步骤3015的开始执行时间,以及还分别存储所述指令取得流程301对应的PC值pc’。当步骤3023完成后,所述第一寄存器、所述第二寄存器及所述第三寄存器分别存储步骤3021、步骤3023及步骤3015的开始执行时间,以及所述第一寄存器和所述第二寄存器还分别存储所述指令取得流程302对应的PC值pc’+1,所述第三寄存器还存储所述指令取得流程301对应的PC值pc’。当指令取得流程302完成后,所述第一寄存器、所述第二寄存器及所述第三寄存器分别存储步骤3021、步骤3023及步骤3025的开始执行时间,以及还分别存储所述指令取得流程302对应的PC值pc’+1。
在一些实施例中,当所述指令取得单元105获知线程101对应的IC将要执行IC无效操作时(即,删除所述IC中的一个项,多个项或所有项),被配置用于立即冲洗(flush)线程101,以停止线程101当前执行的指令取得流程,使得线程101进入休眠状态。当所述IC无效操作完成后,所述指令取得单元105可以重启处在休眠状态的线程101。
在一些实施例中,其他处理器发送一个无效冲洗信号至所述指令取得单元105,通知所述指令取得单元105将要执行所述IC无效操作的信息。图4示出了本发明一个实施例的冲洗线程101的流程示意图。所述冲洗后的指令取得流程400包括与步骤201操作相同的步骤401、被冲洗状态403以及休眠状态405。
在一些实施例中,冲洗线程101后,所述指令取得单元105还被配置用于在线程103上执行优先逻辑。所述优先逻辑包括:通过线程103从所述存储单元107获取当前存储的开始执行时间;比较获取的开始执行时间以获取其中最早的开始执行时间;以及通过线程103从所述存储单元107获取所述最早的开始执行时间对应的PC值作为正确的PC值。参考图3,例如,若当执行指令缓存无效操作前步骤3023完成后,则当前所述正确的PC值为步骤3015对应的pc’。
在一些实施例中,所述指令取得单元105还被配置用于重启休眠的线程101,从所述正确的PC对应的指令取得流程的第一个步骤(如图2中的步骤201、或图3中的步骤3011和步骤3021)开始执行指令取得流程,以取得所述正确的PC值对应的指令。
图5示出了本发明另一个实施例的处理器500的结构示意图。参考图5,所述处理器500包括四个线程501、503、505及507、指令取得单元502以及存储单元504。具体地,所述指令取得单元502及所述存储单元504分别与所述四个线程501、503、505及507连接。
在一些实施例中,所述指令取得单元502可在线程501和503上分别执行IC取得控制逻辑,所述IC取得控制逻辑包括指令取得流程。所述IC对应线程501和503。需要说明地,每个指令取得流程对应一个PC值。图6示出了本发明一个实施例的线程501和503上分别执行的指令取得流程601和602的流程示意图。所述指令取得流程601包括步骤6011、步骤6013及步骤6015,所述指令取得流程602包括步骤6021、步骤6023及步骤6025。所述指令取得流程602比所述指令取得流程601晚一个时钟周期开始,即步骤6013和步骤6021在同一个时钟周期中执行。所述指令取得流程601对应的PC值为pc”,所述指令取得流程602对应的PC值为pc”+1。需要说明地,步骤6011和6021与步骤201的操作相同,步骤6013和6023与步骤203的操作相同,步骤6015和6025与步骤205的操作相同。
在一些实施例中,所述存储单元504可存储指令取得流程中步骤的开始执行时间及对应的PC值。在一些实施例中,所述存储单元504包括多个寄存器组,每个寄存器组对应一个线程,每个寄存器组中的多个寄存器分别对应所述线程上执行的指令取得流程中的多个步骤。在一些实施例中,参考图6,所述存储单元504包括两个寄存器组,第一寄存器组包括第一寄存器、第二寄存器及第三寄存器,第二寄存器组包括第四寄存器、第五寄存器及第六寄存器。在一些实施例中,当指令取得流程602完成后,所述第一寄存器和所述第二寄存器分别存储步骤6013和6015的开始执行时间,及分别存储所述指令取得流程601对应的PC值pc”,所述第三寄存器存储所述指令取得流程601后续指令取得流程的第一个步骤开始执行时间及所述后续指令取得流程对应的PC值,所述第四寄存器、第五寄存器及所述第六寄存器分别存储步骤6021、6023及6025的开始执行时间,及分别存储所述指令取得流程602对应的PC值pc”+1。
在一些实施例中,当所述指令取得单元502将要执行IC无效操作时,被配置用于立即冲洗所述线程501和503,以停止线程501和503当前执行的指令取得流程,使得线程501和503进入休眠状态。所述指令取得单元502还用于在所述线程505上执行IC无效操作,以移除IC中的一个项、多个项或全部项,其中,线程501和503共享所述IC。当IC无效操作完成后,所述指令取得单元502可以重启线程501和503。图7示出了本发明一个实施例的冲洗线程501和503的流程示意图。所述指令取得流程701在线程501上执行,所述指令取得流程702在线程503上执行。所述指令取得流程701包括与步骤201操作相同的步骤7011、与步骤203操作相同的步骤7013、被冲洗状态7015及休眠状态7017。所述指令取得流程702包括与步骤201操作相同的步骤7021,被冲洗状态7023及休眠状态7025。
在一些实施例中,冲洗线程501和503后,所述指令取得单元502还被配置用于在线程507上执行优先逻辑。所述优先逻辑包括:通过线程507从所述存储器504获取当前存储的开始执行时间及对应的PC值;比较获取的开始执行时间以获取其中最早的开始执行时间;以及通过线程507从所述存储器504获取所述最早的开始执行时间对应的PC值作为正确的PC值。参考图6,例如,若当执行指令缓存无效操作前步骤6025完成后,则当前所述正确的PC值为步骤6013对应的pc”。
在一些实施例中,所述指令取得单元502还被配置用于重启休眠的线程501和503,其中,线程501从第一个步骤(如步骤201、步骤6011、步骤6021)开始执行指令取得流程,以取得所述正确的PC值对应的指令。在一些实施例中,线程503在重启线程501一个时钟周期后,从第一个步骤开始执行指令取得流程,以取得PC+1值对应的指令。在一些实施例中,线程501和503可同时重启,线程503可执行其他程序。
本发明实施例提供的处理器可以在要进行IC无效操作时,停止对应IC的一个或多个线程,等IC无效操作完成后,可以根据正确的PC值,重新启动所述一个或多个线程。因此,可以减少等待所导致的延时。特别对于多线程处理器,可以较大地减少这样的等待延时。进一步地,所述处理器不需要在所属单元中,比如执行单元或提交单元中,增加额外的硬件,以获取正确的PC值。
需要说明地,在停止所述IC对应的线程并执行IC无效操作时,其他线程可以正常执行其他程序,所述IC无效操作对所述其他线程可以没有影响。
本发明实施例还提供一种应用于处理器(例如,处理器100或500)的无效指令缓存的方法。图8示出了本发明一个实施例的应用于处理器的无效指令缓存的方法800的流程示意图。所述方法800包括以下多个步骤。
步骤801中,处理器的指令取得单元在多个线程中的第一线程上执行至少一个指令取得流程,一个完整的指令取得流程包括多个步骤。其中,所述至少一个指令取得流程中的每个对应一个程序计数器的值。在一些实施例中,所述第一线程的数量为一个或多个。
步骤803中,在执行指令缓存无效操作前,所述指令取得单元冲洗所述第一线程上正在执行的指令取得流程的当前步骤,使得所述第一线程进入休眠状态,其中,所述休眠状态是指线程停止工作且待所述指令缓存无效操作完成后可重启的状态。
步骤805中,所述指令缓存无效操作完成后,基于在所述第一线程上最近执行的一个或多个指令取得流程,所述指令取得单元在所述多个线程中的第二线程上获取正确的程序计数器的值。
步骤807中,所述指令取得单元根据在所述第二线程获取的正确的程序计数器的值,在完成所述指令缓存无效操作后重启休眠的所述第一线程。
在一些实施例中,参考图9,步骤805包括步骤8051,8053,8055及8057。步骤8051中,所述处理器中的存储单元存储与所述最近执行的一个或多个指令取得流程对应的至少一个时间点数据和至少一个程序计数器的值。在一些实施例中,所述至少一个时间点数据记录所述最近执行的一个或多个指令取得流程的步骤的开始执行时间,以及所述至少一个程序计数器的值对应所述最近执行的一个或多个指令取得流程中相关指令的地址。
步骤8053中,所述指令取得单元从所述存储单元获取多个时间点数据;步骤8055中,所述指令取得单元比较所述多个时间点数据以获取最早时间点数据;以及步骤8057中,所述指令取得单元获取所述最早时间点数据对应的程序计数器的值作为所述正确的程序计数器的值。
在一些实施例中,所述多个线程还包括第三线程,所述指令缓存无效操作在所述第三线程上执行。在一些实施例中,所述处理器与其他处理器通信,所述指令缓存无效操作在所述其他处理器的第四线程上执行。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (22)

1.一种处理器,其特征在于,包括多个线程和指令取得单元,所述指令取得单元被配置用于:
在所述多个线程中的第一线程上执行至少一个指令取得流程,所述指令取得流程包括多个步骤;以及
在执行指令缓存无效操作前,停止所述第一线程上正在执行的指令取得流程的当前步骤,使得所述第一线程进入休眠状态,其中,所述休眠状态是指线程停止工作且待所述指令缓存无效操作完成后可重启的状态。
2.如权利要求1所述的处理器,其特征在于,所述至少一个指令取得流程中的每个对应一个程序计数器的值。
3.如权利要求2所述的处理器,其特征在于,所述多个线程还包括第二线程,所述指令取得单元还被配置用于:所述指令缓存无效操作完成后,基于在所述第一线程上最近执行的一个或多个指令取得流程,在所述第二线程上获取正确的程序计数器的值。
4.如权利要求3所述的处理器,其特征在于,所述指令取得单元还被配置用于:根据在所述第二线程获取的正确的程序计数器的值,在完成所述指令缓存无效操作后重启休眠的所述第一线程。
5.如权利要求3所述的处理器,其特征在于,还包括:存储单元,用于存储与所述一个或多个指令取得流程对应的至少一个时间点数据和至少一个程序计数器的值。
6.如权利要求5所述的处理器,其特征在于,所述至少一个时间点数据记录所述一个或多个指令取得流程中的至少一个步骤的开始执行时间。
7.如权利要求5所述的处理器,其特征在于,所述至少一个程序计数器的值对应所述一个或多个指令取得流程中相关的至少一个指令地址。
8.如权利要求5所述的处理器,其特征在于,在所述第二线程上获取正确的程序计数器的值包括:从所述存储单元获取多个时间点数据;比较所述多个时间点数据以获取最早时间点数据;以及获取所述最早时间点数据对应的程序计数器的值作为所述正确的程序计数器的值。
9.如权利要求1所述的处理器,其特征在于,所述第一线程的数量为一个或多个。
10.如权利要求1所述的处理器,其特征在于,所述多个线程还包括第三线程,所述指令缓存无效操作在所述第三线程上执行。
11.如权利要求1所述的处理器,其特征在于,所述处理器与其他处理器通信,所述指令缓存无效操作在所述其他处理器的第四线程上执行。
12.一种无效指令缓存的方法,其特征在于,包括:
在多个线程中的第一线程上执行至少一个指令取得流程,所述指令取得流程包括多个步骤;以及
在执行指令缓存无效操作前,停止所述第一线程上正在执行的指令取得流程的当前步骤,使得所述第一线程进入休眠状态,其中,所述休眠状态是指线程停止工作且待所述指令缓存无效操作完成后可重启的状态。
13.如权利要求12所述的方法,其特征在于,所述至少一个指令取得流程中的每个对应一个程序计数器的值。
14.如权利要求13所述的方法,其特征在于,还包括:所述指令缓存无效操作完成后,基于在所述第一线程上最近执行的一个或多个指令取得流程,在所述多个线程中的第二线程上获取正确的程序计数器的值。
15.如权利要求14所述的方法,其特征在于,还包括:根据在所述第二线程获取的正确的程序计数器的值,在完成所述指令缓存无效操作后重启休眠的所述第一线程。
16.如权利要求14所述的方法,其特征在于,在所述多个线程中的第二线程上获取正确的程序计数器的值包括:存储与所述一个或多个指令取得流程对应的至少一个时间点数据和至少一个程序计数器的值。
17.如权利要求16所述的方法,其特征在于,所述至少一个时间点数据记录所述一个或多个指令取得流程中的至少一个步骤的开始执行时间。
18.如权利要求16所述的方法,其特征在于,所述至少一个程序计数器的值对应所述一个或多个指令取得流程中相关的至少一个指令地址。
19.如权利要求16所述的方法,其特征在于,在所述多个线程中的第二线程上获取正确的程序计数器的值还包括:获取多个时间点数据;比较所述多个时间点数据以获取最早时间点数据;以及获取所述最早时间点数据对应的程序计数器的值作为所述正确的程序计数器的值。
20.如权利要求12所述的方法,其特征在于,所述第一线程的数量为一个或多个。
21.如权利要求12所述的方法,其特征在于,所述多个线程还包括第三线程,所述指令缓存无效操作在所述第三线程上执行。
22.如权利要求12所述的方法,其特征在于,所述指令缓存无效操作在第四线程上执行,其中,所述第四线程和所述多个线程在不同的处理器中。
CN201611245641.9A 2016-12-29 2016-12-29 处理器以及无效指令缓存的方法 Active CN108255745B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611245641.9A CN108255745B (zh) 2016-12-29 2016-12-29 处理器以及无效指令缓存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611245641.9A CN108255745B (zh) 2016-12-29 2016-12-29 处理器以及无效指令缓存的方法

Publications (2)

Publication Number Publication Date
CN108255745A true CN108255745A (zh) 2018-07-06
CN108255745B CN108255745B (zh) 2020-11-06

Family

ID=62719877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611245641.9A Active CN108255745B (zh) 2016-12-29 2016-12-29 处理器以及无效指令缓存的方法

Country Status (1)

Country Link
CN (1) CN108255745B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1183152A (zh) * 1995-04-28 1998-05-27 现代电子美国公司 在超标量处理器中检测和执行俘获的装置
JP2004213544A (ja) * 2003-01-08 2004-07-29 Matsushita Electric Ind Co Ltd マルチプロセッサ装置
CN101131674A (zh) * 2006-08-24 2008-02-27 国际商业机器公司 使高速缓存线暂时无效和重新有效的方法和数据处理系统
CN101201732A (zh) * 2007-10-09 2008-06-18 浙江大学 32位的多模式微处理器
CN101763285A (zh) * 2010-01-15 2010-06-30 西安电子科技大学 零开销切换多线程处理器及其线程切换方法
CN103593169A (zh) * 2013-11-29 2014-02-19 深圳中微电科技有限公司 一种多线程处理器中的指令输出装置、方法及其处理器
CN103907090A (zh) * 2011-11-10 2014-07-02 甲骨文国际公司 降低用于支持未命中先行的硬件成本
CN103955407A (zh) * 2014-04-24 2014-07-30 深圳中微电科技有限公司 在处理器中减小纹理延迟的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1183152A (zh) * 1995-04-28 1998-05-27 现代电子美国公司 在超标量处理器中检测和执行俘获的装置
JP2004213544A (ja) * 2003-01-08 2004-07-29 Matsushita Electric Ind Co Ltd マルチプロセッサ装置
CN101131674A (zh) * 2006-08-24 2008-02-27 国际商业机器公司 使高速缓存线暂时无效和重新有效的方法和数据处理系统
CN101201732A (zh) * 2007-10-09 2008-06-18 浙江大学 32位的多模式微处理器
CN101763285A (zh) * 2010-01-15 2010-06-30 西安电子科技大学 零开销切换多线程处理器及其线程切换方法
CN103907090A (zh) * 2011-11-10 2014-07-02 甲骨文国际公司 降低用于支持未命中先行的硬件成本
CN103593169A (zh) * 2013-11-29 2014-02-19 深圳中微电科技有限公司 一种多线程处理器中的指令输出装置、方法及其处理器
CN103955407A (zh) * 2014-04-24 2014-07-30 深圳中微电科技有限公司 在处理器中减小纹理延迟的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李钟等: "Prophet推测多线程系统设计与实现", 《计算机科学》 *

Also Published As

Publication number Publication date
CN108255745B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
US7689867B2 (en) Multiprocessor breakpoint
TW559732B (en) Method and apparatus for maintaining processor ordering
US8595744B2 (en) Anticipatory helper thread based code execution
US7401209B2 (en) Limiting entries searched in load reorder queue to between two pointers for match with executing load instruction
TW200530912A (en) Transitioning from instruction cache to trace cache on label boundaries
TW201734767A (zh) 用於使用者等級執行緒暫止的方法、設備及指令
US10049043B2 (en) Flushing control within a multi-threaded processor
KR20170001568A (ko) 영구 커밋 프로세서들, 방법들, 시스템들 및 명령어들
CN104461468B (zh) 基于处理器指令快速完成的精确异常维护方法及装置
WO2021218633A1 (zh) Cpu指令处理方法、控制器和中央处理单元
WO2018004974A1 (en) Processors, methods, and systems to identify stores that cause remote transactional execution aborts
US20120110304A1 (en) Pipelined serial ring bus
US7725659B2 (en) Alignment of cache fetch return data relative to a thread
US20080010440A1 (en) Means for supporting and tracking a large number of in-flight stores in an out-of-order processor
TW202111524A (zh) 經由跳過無分歧的快取線改善分歧預測通量的設備及系統
EP0592404A1 (en) Apparatus and method for providing a stall cache
US11030018B2 (en) On-demand multi-tiered hang buster for SMT microprocessor
KR19990013425A (ko) 데이타 처리 시스템과, 데이타 처리 시스템의 데이타 포착 방법과, 프로그램 저장 장치
US9170920B2 (en) Identifying and tagging breakpoint instructions for facilitation of software debug
JP2020510255A (ja) キャッシュ・ミス・スレッド・バランシング
CN107924310A (zh) 使用避免转出表(pat)预测计算机处理器中的存储器指令转出
CN108255745A (zh) 处理器以及无效指令缓存的方法
CN105786758B (zh) 一种具有数据缓存功能的处理器装置
Shibata et al. An implementation of auto-memoization mechanism on arm-based superscalar processor
US7130988B2 (en) Status register update logic optimization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant