CN109313594A - 用于指令包的奇偶校验 - Google Patents

用于指令包的奇偶校验 Download PDF

Info

Publication number
CN109313594A
CN109313594A CN201780038165.XA CN201780038165A CN109313594A CN 109313594 A CN109313594 A CN 109313594A CN 201780038165 A CN201780038165 A CN 201780038165A CN 109313594 A CN109313594 A CN 109313594A
Authority
CN
China
Prior art keywords
odd check
instruction packet
packet
described instruction
odd
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
CN201780038165.XA
Other languages
English (en)
Other versions
CN109313594B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN109313594A publication Critical patent/CN109313594A/zh
Application granted granted Critical
Publication of CN109313594B publication Critical patent/CN109313594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1032Simple parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供对指令进行差错检查的系统和方法,对指令进行差错检查的方法包含用于以下操作的汇编器:创建具有一或多个指令的指令包,确定所述指令包的奇偶校验是否匹配预定奇偶校验,以及如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验。具有所述预定奇偶校验的所述指令包存储在存储器中,并且最终可被处理器检索以用于执行。如果在从所述存储器检索的所述指令包中存在差错,那么基于将所述指令包的所述奇偶校验与所述预定奇偶校验进行比较,检测到所述差错。

Description

用于指令包的奇偶校验
技术领域
所公开的方面涉及处理系统中的指令处理。更具体地,示范性方面涉及使用奇偶校验位检测指令包中的差错。
背景技术
在处理器的常规构架中,处理器可从存储位置例如指令高速缓存器或主存储器接收处理循环中的一或多个指令。在每一处理循环中,处理器可在一或多个执行单元中并行地执行一或多个指令。可在一或多个指令中的任一指令中,在指令的生命周期中涉及的阶段或组件例如指令的存储、传送、执行等中的任一个中发生位翻转或差错。
举例来说,存储位置例如高速缓存器或主存储器可使用例如静态随机存取存储器(SRAM)、双数据速率(DDR)存储器等技术实施,这可能容易发生差错。也可能会在将指令从存储位置传送到处理器的执行单元时涉及的各个网络总线和电线中引入位翻转。此外,执行单元也可以在指令上操作时促成逻辑差错。
在指令的生命周期的每一阶段中添加差错检查可为昂贵的且在一些情况下,不可行。举例来说,将奇偶校验信息添加到指令高速缓存器的每一高速缓存行或主存储器/DDR中的每一存储位置可为昂贵的,且即使即使可在存储位置中检测到差错(且在一些情况下,经校正),但仍可在指令处理的下游引入位翻转。此外,为输送指令的总线中的每一个,或为在指令上操作的每一执行单元添加差错检查机制可为不可能的。因此,精确定位差错的来源可为困难的,且如果任由差错发展,那么所述差错可导致各种异常或系统故障。
因此,相应地需要有效差错检查机制,其可为在指令的生命周期的任何阶段中和指令在存储位置之间的任何组件存储位置或输送中引入的差错提供端到端解决方案。
发明内容
本发明的示范性方面是针对对指令进行差错检查的系统和方法。汇编器创建具有一或多个指令的指令包,确定所述指令包的奇偶校验是否匹配预定奇偶校验,以及如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验。具有所述预定奇偶校验的所述指令包存储在存储器中,并且最终可被处理器检索以用于执行。如果在从所述存储器检索的所述指令包中存在差错,那么基于将所述指令包的所述奇偶校验与所述预定奇偶校验进行比较,检测到所述差错。以此方式,提供用于指令包的端到端差错检查能力。
因此,示范性方面是针对一种对指令进行差错检查的方法,所述方法包括:创建具有一或多个指令的指令包;确定所述指令包的奇偶校验是否匹配预定奇偶校验;和如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验。将具有所述预定奇偶校验的所述指令包存储在存储器中,且如果在从存储器检索的指令包中存在差错,那么基于将所述指令包的所述奇偶校验与所述预定奇偶校验进行比较,确定所述差错。
另一示范性方面是针对一种设备,其包括:处理器,其被配置成创建具有一或多个指令的指令包;确定所述指令包的奇偶校验是否匹配预定奇偶校验;和如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验。存储器被配置成存储具有所述预定奇偶校验的所述指令包,且如果在从存储器检索的指令包中存在差错,那么基于在所述处理器的奇偶校验块中将所述指令包的所述奇偶校验与所述预定奇偶校验进行比较,确定所述差错。
又一示范性方面是针对一种设备,其包括:用于创建具有一或多个指令的指令包的装置;用于确定所述指令包的奇偶校验是否匹配预定奇偶校验的装置;和用于如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验的装置。所述设备另外包括用于存储具有所述预定奇偶校验的所述指令包的装置,以及用于如果在从存储器检索的指令包中存在差错,那么基于所述指令包的所述奇偶校验与所述预定奇偶校验的比较确定所述差错的装置。
又一示范性方面是针对一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时使得所述处理器执行对指令进行差错检查的方法,所述非暂时性计算机可读存储媒体包括:用于创建具有一或多个指令的指令包的代码;用于确定所述指令包的奇偶校验是否匹配预定奇偶校验的代码;用于如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验的代码;和用于将具有所述预定奇偶校验的所述指令包存储在存储器中的代码。所述非暂时性计算机可读存储媒体另外包括用于基于所述指令包的所述奇偶校验与所述预定奇偶校验进行比较,确定从所述存储器检索的所述指令包中是否存在差错的代码。
附图说明
呈现附图以辅助描述本发明的方面,且仅是为了说明而非限制所述方面的目的提供所述附图。
图1说明根据本公开的方面的处理系统。
图2说明根据本公开的方面的实例指令包。
图3说明根据本公开的方面的用于对指令进行差错检查的方法。
图4说明其中可有利地利用本公开的方面的示范性计算装置。
具体实施方式
在以下针对本发明的特定方面的描述和相关图式中公开本发明的方面。可在不脱离本发明的范围的情况下设计替代方面。另外,将不会详细描述或将省略本发明的众所周知的元件以免混淆本发明的相关细节。
词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面不必解释为比其它方面优选或有利。同样,术语“本发明的方面”并不要求本发明的所有方面都包含所论述的特征、优点或操作模式。
本文中所使用的术语仅是出于描述特定方面的目的,且并不意图限制本发明的方面。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”和“所述”意图还包括复数形式。将进一步理解,术语“包括”和/或“包含”当在本文中使用时指定所叙述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
另外,就待由例如计算装置的元件执行的动作序列来说描述许多方面。将认识到,本文中描述的各种动作可由特定电路(例如,专用集成电路(ASIC)),由正被一或多个处理器执行的程序指令或由所述两个的组合来执行。另外,本文中所描述的这些动作序列可被视为全部在任何形式的计算机可读存储媒体内体现,在所述计算机可读存储媒体中存储有对应的计算机指令集,所述计算机指令在执行时将致使相关联的处理器执行本文中所描述的功能性。因此,本发明的各种方面可以数个不同形式来体现,预期所有形式属于所主张的标的物的范围内。另外,对于本文所描述的方面中的每一个,任何此类方面的对应形式可在本文中描述为例如“被配置成”执行所描述动作的“逻辑”。
在本公开的示范性方面中,用于对指令进行差错检查的机制可内置到指令自身中,(其中应认识到,常规指令不具有差错检查能力,例如内置或编码于指令中的奇偶校验位)。举例来说,考虑包括一或多个指令群组或块的指令包,极大可能地在指令包中存在某些未用位。所述未用位可为在构架上预留的位、指令字的部分中的未用位或不被指令块用尽的高速缓存行、可被硬件/执行单元忽略的位模式等。在示范性方面中,指令包中的未用位中的一或多个可用于差错检测的目的。举例来说,未用位可重新设定目的为奇偶校验位(例如,通过汇编器),即改变为构成指令包的奇偶校验以匹配预定奇偶校验,例如奇数或偶数。指令包接着可存储在存储器(例如,主存储器,例如DDR、闪存存储器、随机存取存储器(RAM)等)中,并且随后供应到指令高速缓存器,举例来说,可从所述指令高速缓存器检索到指令包以供处理器执行。如果指令包的奇偶校验在上述过程的任一点都不匹配预定奇偶校验(例如,如由硬件检测到),那么可确定指令包具有差错。
基于以上述方式从未用位创建的奇偶校验,如果在指令包中检测到差错(即,指令包的奇偶校验不匹配预定奇偶校验),那么各种动作过程是可能的。在一些情况下,指令包可标记为具有差错并且被记录以用于未来分析或恢复。
在一些情况下,即使指令包不具有未用位,仍有可能在根据示范性方面的指令包中并入有奇偶校验位。举例来说,指令包可包括呈在所属领域中已知的超长指令字(VLIW)形式的指令,其中两个或更多个指令一起提供为VLIW包。VLIW包中的两个或更多个指令被设计成并行地执行。如果在VLIW包中存在一或多个未用位,那么一或多个未用位中的未用位可用以将VLIW包的奇偶校验改变为预定或期望奇偶校验(例如,奇数或偶数)。然而,如果不存在未用位,但是如果存在可能分组成单个VLIW包的小于最大数目的指令,那么不操作(NOP)字段(即,不被执行的伪指令)可添加到VLIW包,且NOP字段的位可用作奇偶校验位。在未用位字段不容易获得的情况下,其它在构架上预留的字段例如可指定VLIW包的端点的位模式例如也可用于创建奇偶校验位。
现将参考以下各图论述上述和其它示范性方面。VLIW包的实例将用以解释一些示范性方面,但应理解,本公开的各方面可容易扩展到用于包括一或多个指令的指令包的任何其它指令格式。
现在参考图1,说明示范性处理系统100的示意性表示。如所示出,处理系统100可包含处理器150,其可包括用于创建根据本公开的各方面的指令包中的奇偶校验的汇编器152。汇编器152可实施于软件中并且用于汇编将被处理器例如处理器110执行的指令。虽然已单独地示出了处理器150和处理器110,但这仅是出于说明起见,且在各种实施方案中,处理器150和110可为执行汇编器的相同处理器或处理单元并且包括用于由汇编器产生的指令的下游执行的执行单元。
如所示出,由汇编器152产生的指令和/或指令包可通过中间网络/存储媒体(大体由参考编号154识别)并且存储在存储器156中,所述存储器可为主存储器(例如,DDR)、闪存存储器、RAM等。指令可从存储器156提供给指令高速缓存器108(例如,如所属领域中已知,基于各种基于需求的提取、预取,或其组合)。
处理器110示出为耦合到指令高速缓存器108。处理器110可被配置成从指令高速缓存器108接收指令并且使用例如执行管线112执行所述指令。一或多个其它高速缓存器例如在所属领域中已知的数据高速缓存器、2级(L2)高速缓存器也可存在于处理系统100中,但为简单起见,不说明这些高速缓存器。
在处理器110中,示出执行管线112,其可包含一或多个管线化阶段,代表性地说明为:指令提取(IF)阶段、指令解码(ID)阶段、一或多个执行(EX1、EX2等)阶段以及写回(WB)阶段。所属领域的技术人员将认识到如此项技术中已知的对执行管线112的大量修改和添加。
在一个方面中,指令高速缓存器108可包括数个高速缓存行,其中代表性地示出了高速缓存行102。高速缓存行102可包括一或多个指令或由一或多个指令形成的指令包。应理解,多于一个指令或指令包或其组合可包含在单个高速缓存行中;且此外,指令或指令包可跨越多于一个高速缓存行。然而,为公开内容的简单起见,不详尽地描述一或多个高速缓存行的指令和/或指令包的各种布置,应记住,所公开的方面适用于一或多个高速缓存行中的指令和/或指令包的各种可能的布置。如所示出,高速缓存行102包含指令集102a-d,其可为VLIW指令。指令102a-d可分别占用通道A到D,其中执行管线112可被配置成一次执行一个指令,或在VLIW指令的情况下,同时或并行地作用于两个或更多个通道A到D中的两个或更多个指令。指令102a-d可通过各种互连件和总线(共同表示为图1中的总线104)提供给执行管线112。
如可了解,可在指令102a-d中的任何指令中出现位差错或位翻转,其中这些差错可在以下情况下出现:在其存储位置中,例如在指令高速缓存器108中;在其例如在总线104上的输送中;或在其在执行管线112中的执行期间。包括指令102a-d的VLIW包的集体奇偶校验期望匹配预定奇偶校验(例如,奇数或偶数奇偶校验)。在示范性方面中,如果包括指令102a-d的VLIW包的集体奇偶校验最初不匹配预定奇偶校验,那么VLIW包的奇偶校验可能已(例如,通过汇编器152或其它软件)通过使用未用位改变为匹配预定奇偶校验(例如,奇数或偶数奇偶校验)。将参考图2解释可用于以此方式改变VLIW包的奇偶校验以匹配预定奇偶校验的此类未用位的各种实例。
在图1中,可提供指定为奇偶校验114的块以检查VLIW包的奇偶校验是否偏离预定奇偶校验。如所示出,VLIW包的指令102a-d可从执行单元阶段中的任一个供应到奇偶校验114以用于各种实施方案。如果VLIW包的奇偶校验偏离预定奇偶校验,那么奇偶校验114可触发差错。如所属领域的技术人员可理解,当使用单个位用于奇偶校验时,可检测到单个位差错。因此,奇偶校验114可包含用于基于例如从执行单元112供应的指令的奇偶校验检测到单个位差错的逻辑。类似奇偶校验检查逻辑可添加到处理系统100的任何其它组件或阶段以检查奇指令例如指令102a-d的生命周期中的任一点处的偶校验和差错(如果存在的话)。在本文中不进行详细论述,但有可能将用于单个位差错的差错检查的上述方面扩展到更复杂的差错检测,并且在一些情况下,扩展到(例如,通过实施差错校正码(ECC))可检测多于一个位中的差错并且在一些情况下还校正所述差错的差错校正。此类复杂的差错检测和校正技术可适用于例如其中在指令包内发现多个未用位并且供汇编器152用于创建ECC位的情况。
现在参考图2,由参考编号200指定的指令包示出为包括高速缓存行102的指令102a-d。指令包200可为如上文在一些实例中所论述的VLIW包。图2示出其中指令包200的位(例如,重新设定为用于奇偶校验位目的的未用位或预留位)可用于奇偶校验的实例。对于指令包200,汇编器152可确定指令包200的奇偶校验是否已为预定奇偶校验(例如,偶数或奇数),且如果是,将指令包200存储在例如存储器156内,而无需针对奇偶校验进行进一步修改。如果指令200的奇偶校验不是预定奇偶校验,那么汇编器152可使用指令包200的位(例如,重新设定为用于指定奇偶校验位目的的未用位或预留字段)作为奇偶校验位以组成指令包200的匹配预定奇偶校验的奇偶校验并且将具有期望奇偶校验的指令包200存储在存储器156内。在其中测试指令包200以用于差错校正下游(例如,在奇偶校验114中)的任一点,如果指令200的奇偶校验不匹配预定奇偶校验,那么确定指令包200具有差错。
如果以此方式确定差错,那么可记录所述差错以用于未来分析,或可产生异常。不在本公开中详细解释在此类差错确定之后的校正性行动并且可实行任何适合的动作。应了解,可忽略用于奇偶校验的指令包200的未用位(这是由于其未被使用),并且因此对用于构成指令包200的奇偶校验的这些未用位的任何修改将不影响指令包200的指令102a-d的正常操作/执行。
现将论述指令包200的可用于奇偶校验的位的数个实例。在一个实例中,指令中的一个例如指令102a可具有一或多个未用位。举例来说,指令102a可具有不要求在可用以指令102a的指令空间中可用的所有位(例如,16或32位)的编码。位202可为指令102a中的此类未用位。汇编器152可在指令包200的奇偶校验尚不匹配预定奇偶校验的情况下,修改未用位以使指令包200的奇偶校验匹配预定奇偶校验
在另一实例中,汇编器152可能能够利用预留字段供用作奇偶校验位。在这点上,指令的未使用的编码可重新设定为用于用作奇偶校验位的目的。举例来说,如果存在指令的三种表现(flavor),例如移位指令的三种表现,例如逻辑右移、算术右移和左移,那么可基于三个不同编码(例如,用于移位指令的操作代码中的2位字段的“00”、“01”和“10”)区分这三种表现;但这些编码中仅一个在2位字段的左侧或最高有效位位置中具有“1”,这意指2位字段的右侧或最低有效位位置可当最高有效位位置是“1”时重新设定为用于供在奇偶校验中使用的目的。
在另一实例中,汇编器可实现经选择形成指令包的指令可能都不具有可用于奇偶校验的未用位。在此情况下,汇编器可引入不操作(NOP)作为所述指令中的一个。NOP可为不被执行的伪指令。如所示出,在一个实例中,指令102c可创建为NOP 204,其中指令102c的所有位基本上都未被使用。因此,在此情况下,指令102c的位中的任一个都可用于奇偶校验。
在一些实例中,汇编器152可使用VLIW包的指令的特定于VLIW包格式例如用于指定指令的大小、指令的数目、指令边界等的编码来创建奇偶校验位。考虑在图2中指定为VLIW包200a的指令包200的表示,在用于指令102a的字段中可为包括关于后续指令例如用于指令102b-d的字段中的指令1-3的信息的首码。所述首码可包含表达VLIW包200a中的后续指令的数目、指令1-3的对应指令长度等的信息,但可能不要求指令102a的所有可用位表达此信息。因此,汇编器152可能够使用首码的一或多个位用于VLIW包200a的奇偶校验指定。
在指令包200作为VLIW包200b的表示中,示出了编码的不同样式,其中对应指令102a-d的字段204a-d用以指示VLIW包200b是否继续(针对字段204a-d为“K”),即VLIW包200b的指令跟在对应指令之后,或VLIW包200b是否停止(针对字段204d为“S”)。如果两个位可用于这些字段204a-d中的每一个,但在以上实例中,一个位可足以区分两种可能性(例如,“K”或“S”),那么汇编器152可使用字段204a-d中的一或多个的其它位用于VLIW包200b的奇偶校验指定。
因此,可以看到,汇编器152可使用上述用于从未用位创建奇偶校验位或将指令包200的位重新设定为用于指定指令包200的奇偶校验目的的选项或其组合或变化形式中的任何一或多个。因此,应了解,所述方面包含用于执行本文中所公开的过程、功能和/或算法的各种方法。举例来说,如图3中所说明,方面可包含(例如,由汇编器152执行以供在处理器110中执行指令的)对指令进行差错检查的方法300。
如所示出,框302可包括创建具有一或多个指令的指令包(例如,在汇编器152中创建包括指令102a-d的指令包200,其中非限制性地,汇编器152可由相同处理器110或不同处理器150执行,且其中指令包200可为VLIW包)。
在框304中,方法300可包括确定指令包的奇偶校验是否匹配预定奇偶校验(例如,汇编器152可确定指令包200的奇偶校验是否匹配预定偶数或奇数奇偶校验)。
如果在框304中,确定指令包的奇偶校验不匹配预定奇偶校验,那么在框306中,使用指令包的位改变指令包的奇偶校验以匹配预定奇偶校验。举例来说,汇编器152可使用指令包200的位(例如,未用位、NOP字段的位、预留位等)作为改变指令包的奇偶校验以匹配预定奇偶校验的奇偶校验位。
在框308中,将具有匹配预定奇偶校验的奇偶校验的指令包存储在例如存储器156内(在执行框306中的步骤之后,或在确定指令包的奇偶校验已匹配预定奇偶校验的情况下跳过框306并且从框304转到框308)。
从框308,方法300可涉及例如将指令包200存储在指令高速缓存器108中,以及例如从此处,在处理器110的执行管线112中进行提取、解码和执行的后续阶段。在这些阶段中的任一个中,可检查指令包200的奇偶校验(例如,通过用于处理器110的执行管线112的IF、ID、EX1、EX2、WB等阶段的奇偶校验114)。如果奇偶校验不匹配预定奇偶校验,那么确定差错,可记录所述差错以用于未来分析,或可产生异常。在确定差错的情况下也可实施任何适当的校正性行动(这超过了本公开的范围)。
现参考图4,描绘了根据示范性方面被配置的计算装置的框图并且一般将其指定为400。计算装置400包含图1的处理器110。在示范性方面中,处理器110可执行例如汇编器152的汇编器并且被配置成执行图3的方法300。处理器110可以通信方式耦合到存储器156,其中在存储器156和处理器110之间代表性地示出指令高速缓存器108,如参考图1所论述。在处理器110中还示出执行管线112和奇偶校验114,不过为清楚起见已从此视图省略图1中示出的执行管线112的细节。示出指令高速缓存器中的指令包200,且所述指令包可能属于高速缓存行102。为简单起见,在图4中也不说明各种其它细节,例如可存在于处理器110和存储器156之间的一或多个高速缓存器和其它互连件。
在一些方面中,图4的计算装置400可配置为无线通信装置,例如移动装置或用户终端。因此,在一些方面中,图4可包含用虚线示出的一些任选块。举例来说,计算装置400可以任选地包含显示器428和显示控制器426,其中显示控制器426耦合到处理器110并且耦合到显示器428;耦合到处理器110的译码器/解码器(编解码器)434(例如,音频和/或语音编解码器);耦合到编解码器434的扬声器436和麦克风438;和耦合到无线天线442并且耦合到处理器110的无线控制器440(其可包含调制解调器)。
在一特定方面中,中存在这些任选框中的一或多个的情况下,处理器110、显示控制器426、存储器432、编解码器434和无线控制器440可包含在系统级封装或芯片上系统装置422中。输入装置430、电源供应器444、显示器428、输入装置430、扬声器436、麦克风438、无线天线442和电源供应器444可在芯片上系统装置422外部并且可耦合到芯片上系统装置422的组件,例如接口或控制器。
应注意,虽然图4描绘计算装置(如上所述,在一些方面中,其可用于无线通信),但处理器110和存储器432也可集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、计算机、手提式计算机、平板计算机、通信装置、移动电话、服务器或其它类似装置中。
所属领域的技术人员应了解,可使用多种不同技术和技艺中的任一个来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能提及的数据、指令、命令、信息、信号、位、符号和码片。
此外,所属领域的技术人员应了解,结合本文中所公开的方面描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件、或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就各种说明性组件、块、模块、电路和步骤的功能性加以描述。此类功能性是实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。本领域技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。
结合本文中所公开的方面描述的方法、序列和/或算法可以直接以硬件、以由处理器执行的软件模块或以硬件和软件模块的组合来体现。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可抽换磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可以从存储媒体读取信息且将信息写入所述存储媒体。在替代性方案中,存储媒体可与处理器成一体式。
因此,本发明的一方面可包含体现在指令包中使用奇偶校验位进行差错检测的方法的计算机可读媒体。因此,本发明不限于所说明的实例,且任何用于执行本文中所描述的功能性的装置包含于本发明的方面中。
虽然前述公开内容示出本发明的说明性方面,但应注意,可在不脱离如由所附权利要求书界定的本发明的范围的情况下在本文中作出各种改变和修改。无需以任何特定次序来执行根据本文中所描述的本发明的方面的方法权利要求的功能、步骤和/或动作。此外,虽然可能以单数形式描述或主张本发明的元件,但除非明确陈述限于单数形式,否则也涵盖复数形式。

Claims (30)

1.一种对指令进行差错检查的方法,所述方法包括:
创建具有一或多个指令的指令包;
确定所述指令包的奇偶校验是否匹配预定奇偶校验;
如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验;和
将具有所述预定奇偶校验的所述指令包存储在存储器中。
2.根据权利要求1所述的方法,其另外包括基于将所述指令包的所述奇偶校验与所述预定奇偶校验进行比较,确定在从所述存储器检索的所述指令包中是否存在差错。
3.根据权利要求2所述的方法,其另外包括确定所述指令包中存在差错并且产生异常。
4.根据权利要求2所述的方法,其另外包括确定所述指令包中存在差错并且记录所述差错以用于在调试器中进行分析。
5.根据权利要求2所述的方法,其包括确定在处理器中的所述指令包的执行期间在所述指令包中存在差错。
6.根据权利要求1所述的方法,其中所述指令包是超长指令字VLIW包。
7.根据权利要求6所述的方法,其另外包括确定所述VLIW包包括小于最大可能数目的指令,在所述VLIW包中插入不操作NOP字段,以及使用所述NOP字段的位作为所述指令包的所述位以改变所述指令包的奇偶校验。
8.根据权利要求1所述的方法,其中所述位属于所述VLIW包的字段,所述字段用于传达有关所述VLIW包的指令的信息。
9.根据权利要求1所述的方法,其中所述位是所述指令包的未用位。
10.根据权利要求1所述的方法,其中所述预定奇偶校验是奇数奇偶校验或偶数奇偶校验中的一个。
11.一种设备,其包括:
处理器,其被配置成:
创建具有一或多个指令的指令包;
确定所述指令包的奇偶校验是否匹配预定奇偶校验;和
如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验;和
存储器,其被配置成存储具有所述预定奇偶校验的所述指令包。
12.根据权利要求11所述的设备,其中所述处理器的奇偶校验块被配置成基于所述指令包的所述奇偶校验与所述预定奇偶校验的比较,确定在从所述存储器检索的所述指令包中是否存在差错。
13.根据权利要求12所述的设备,其中所述处理器进一步被配置成在检测到差错的情况下产生异常。
14.根据权利要求12所述的设备,其中所述处理器进一步被配置成在检测到差错的情况下记录所述指令包以用于将来在调试器中进行分析。
15.根据权利要求11所述的设备,其中所述指令包是超长指令字VLIW包。
16.根据权利要求15所述的设备,其中汇编器被配置成确定所述VLIW包包括小于最大可能数目的指令,并且在所述VLIW包中插入不操作NOP字段,其中所述NOP字段的位用作所述指令包的所述位以匹配所述预定奇偶校验。
17.根据权利要求11所述的设备,其中所述奇偶校验位属于所述VLIW包的字段,所述字段用于传达有关所述VLIW包的指令的信息。
18.根据权利要求11所述的设备,其中所述奇偶校验位是所述指令包的未用位。
19.根据权利要求11所述的设备,其中所述预定奇偶校验是奇数奇偶校验或偶数奇偶校验中的一个。
20.根据权利要求10所述的设备,其集成到选自由以下组成的群组的装置内:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理PDA、固定位置数据单元和计算机。
21.一种设备,其包括:
用于创建具有一或多个指令的指令包的装置;
用于确定所述指令包的奇偶校验是否匹配预定奇偶校验的装置;和
用于如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验的装置;和
用于存储具有所述预定奇偶校验的所述指令包的装置。
22.根据权利要求21所述的设备,其另外包括用于基于所述指令包的所述奇偶校验与所述预定奇偶校验的比较,确定在从所述用于存储的装置检索的所述指令包中是否存在差错的装置。
23.根据权利要求22所述的设备,其另外包括用于在检测到差错的情况下产生异常的装置。
24.根据权利要求21所述的设备,其中所述预定奇偶校验是奇数奇偶校验或偶数奇偶校验中的一个。
25.一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时使得所述处理器执行对指令进行差错检查的方法,所述非暂时性计算机可读存储媒体包括:
用于创建具有一或多个指令的指令包的代码;
用于确定所述指令包的奇偶校验是否匹配预定奇偶校验的代码;
用于如果所述指令包的所述奇偶校验不匹配所述预定奇偶校验,那么使用所述指令包的位改变所述指令包的奇偶校验以匹配所述预定奇偶校验的代码;和
用于将具有所述预定奇偶校验的所述指令包存储在存储器中的代码。
26.根据权利要求25所述的非暂时性计算机可读存储媒体,其另外包括用于基于将所述指令包的所述奇偶校验与所述预定奇偶校验进行比较,确定在从所述存储器检索的所述指令包中是否存在差错的代码。
27.根据权利要求26所述的非暂时性计算机可读存储媒体,其另外包括用于确定所述指令包中存在差错的代码和用于产生异常的代码。
28.根据权利要求26所述的非暂时性计算机可读存储媒体,其另外包括用于确定所述指令包中存在差错的代码和用于记录所述差错以用于在调试器中进行分析的代码。
29.根据权利要求25所述的非暂时性计算机可读存储媒体,其中所述位是所述指令包的未用位。
30.根据权利要求25所述的非暂时性计算机可读存储媒体,其中所述预定奇偶校验是奇数奇偶校验或偶数奇偶校验中的一个。
CN201780038165.XA 2016-06-24 2017-06-02 用于指令包的奇偶校验 Active CN109313594B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/192,981 2016-06-24
US15/192,981 US10108487B2 (en) 2016-06-24 2016-06-24 Parity for instruction packets
PCT/US2017/035713 WO2017222784A1 (en) 2016-06-24 2017-06-02 Parity for instruction packets

Publications (2)

Publication Number Publication Date
CN109313594A true CN109313594A (zh) 2019-02-05
CN109313594B CN109313594B (zh) 2022-06-17

Family

ID=59067918

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780038165.XA Active CN109313594B (zh) 2016-06-24 2017-06-02 用于指令包的奇偶校验

Country Status (8)

Country Link
US (1) US10108487B2 (zh)
EP (1) EP3475823B1 (zh)
JP (1) JP6943890B2 (zh)
KR (1) KR102433782B1 (zh)
CN (1) CN109313594B (zh)
BR (1) BR112018076279A8 (zh)
SG (1) SG11201810111UA (zh)
WO (1) WO2017222784A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115081429A (zh) * 2022-07-07 2022-09-20 北京微纳星空科技有限公司 一种指令校验方法、装置、设备和存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606587B2 (en) * 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
EP4400970A1 (en) * 2023-01-12 2024-07-17 NXP USA, Inc. Central processing unit system and method with improved self-checking

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041430A (en) * 1997-11-03 2000-03-21 Sun Microsystems, Inc. Error detection and correction code for data and check code fields
CN1326132A (zh) * 2000-05-25 2001-12-12 斯罗扬有限公司 具有压缩指令的处理器及处理器指令的压缩方法
US6934903B1 (en) * 2001-12-17 2005-08-23 Advanced Micro Devices, Inc. Using microcode to correct ECC errors in a processor
US20060095825A1 (en) * 2004-07-16 2006-05-04 Benq Corporation Firmware management apparatus and method
US20070168768A1 (en) * 2005-11-21 2007-07-19 Galbi Duane E ECC coding for high speed implementation
US7302619B1 (en) * 2004-07-06 2007-11-27 Mindspeed Technologies, Inc. Error correction in a cache memory
US20090217077A1 (en) * 2008-02-25 2009-08-27 International Business Machines Corporation Method, system, and computer program product for processor error checking
JP2009238168A (ja) * 2008-03-28 2009-10-15 Mitsubishi Electric Corp マイクロプロセッサ
CN102160031A (zh) * 2008-09-23 2011-08-17 高通股份有限公司 用以执行线性反馈移位指令的系统及方法
US20110307961A1 (en) * 2009-03-02 2011-12-15 Nxp B.V. Software protection
US20130036294A1 (en) * 2011-08-05 2013-02-07 Cisco Technology, Inc. System and method for instruction sets with run-time consistency check
CN103279329A (zh) * 2013-05-08 2013-09-04 中国人民解放军国防科学技术大学 支持同步edac校验的高效取指流水线
CN103534952A (zh) * 2011-04-08 2014-01-22 美光科技公司 使用低密度奇偶校验码的编码及解码技术
CN103645964A (zh) * 2013-11-22 2014-03-19 中国电子科技集团公司第三十二研究所 嵌入式处理器的高速缓存容错机制
US20140089755A1 (en) * 2012-09-27 2014-03-27 Shveta KANTAMSETTI Reliability enhancements for high speed memory - parity protection on command/address and ecc protection on data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4005405A (en) 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
US7013454B2 (en) 1999-02-22 2006-03-14 Sun Microsystems, Inc. Thread suspension system and method using trapping instructions
US6738892B1 (en) 1999-10-20 2004-05-18 Transmeta Corporation Use of enable bits to control execution of selected instructions
US7240277B2 (en) 2003-09-26 2007-07-03 Texas Instruments Incorporated Memory error detection reporting
US7370230B1 (en) 2004-01-08 2008-05-06 Maxtor Corporation Methods and structure for error correction in a processor pipeline
US20080256419A1 (en) 2007-04-13 2008-10-16 Microchip Technology Incorporated Configurable Split Storage of Error Detecting and Correcting Codes
US8135927B2 (en) * 2007-09-28 2012-03-13 International Business Machines Corporation Structure for cache function overloading
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US20140244932A1 (en) * 2013-02-27 2014-08-28 Advanced Micro Devices, Inc. Method and apparatus for caching and indexing victim pre-decode information

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041430A (en) * 1997-11-03 2000-03-21 Sun Microsystems, Inc. Error detection and correction code for data and check code fields
CN1326132A (zh) * 2000-05-25 2001-12-12 斯罗扬有限公司 具有压缩指令的处理器及处理器指令的压缩方法
US6934903B1 (en) * 2001-12-17 2005-08-23 Advanced Micro Devices, Inc. Using microcode to correct ECC errors in a processor
US7302619B1 (en) * 2004-07-06 2007-11-27 Mindspeed Technologies, Inc. Error correction in a cache memory
US20060095825A1 (en) * 2004-07-16 2006-05-04 Benq Corporation Firmware management apparatus and method
US20070168768A1 (en) * 2005-11-21 2007-07-19 Galbi Duane E ECC coding for high speed implementation
US20090217077A1 (en) * 2008-02-25 2009-08-27 International Business Machines Corporation Method, system, and computer program product for processor error checking
JP2009238168A (ja) * 2008-03-28 2009-10-15 Mitsubishi Electric Corp マイクロプロセッサ
CN102160031A (zh) * 2008-09-23 2011-08-17 高通股份有限公司 用以执行线性反馈移位指令的系统及方法
US20110307961A1 (en) * 2009-03-02 2011-12-15 Nxp B.V. Software protection
CN103534952A (zh) * 2011-04-08 2014-01-22 美光科技公司 使用低密度奇偶校验码的编码及解码技术
US20130036294A1 (en) * 2011-08-05 2013-02-07 Cisco Technology, Inc. System and method for instruction sets with run-time consistency check
US20140089755A1 (en) * 2012-09-27 2014-03-27 Shveta KANTAMSETTI Reliability enhancements for high speed memory - parity protection on command/address and ecc protection on data
CN103279329A (zh) * 2013-05-08 2013-09-04 中国人民解放军国防科学技术大学 支持同步edac校验的高效取指流水线
CN103645964A (zh) * 2013-11-22 2014-03-19 中国电子科技集团公司第三十二研究所 嵌入式处理器的高速缓存容错机制

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115081429A (zh) * 2022-07-07 2022-09-20 北京微纳星空科技有限公司 一种指令校验方法、装置、设备和存储介质

Also Published As

Publication number Publication date
US20170371739A1 (en) 2017-12-28
JP6943890B2 (ja) 2021-10-06
CN109313594B (zh) 2022-06-17
BR112018076279A2 (pt) 2019-03-26
EP3475823A1 (en) 2019-05-01
EP3475823B1 (en) 2022-04-20
US10108487B2 (en) 2018-10-23
KR102433782B1 (ko) 2022-08-17
SG11201810111UA (en) 2019-01-30
JP2019519858A (ja) 2019-07-11
BR112018076279A8 (pt) 2023-01-31
KR20190021247A (ko) 2019-03-05
WO2017222784A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
TWI488110B (zh) 狀態機引擎及其方法
TWI489779B (zh) 狀態機晶格中之布林邏輯
TWI486810B (zh) 在狀態機晶格中之計數器操作
TWI492062B (zh) 用於程式化狀態機引擎之方法與裝置
TWI569206B (zh) 用於狀態機引擎之結果產生
US9819758B2 (en) Remote debugging into mobile web applications across devices
TWI497418B (zh) 狀態機引擎、用於處置一狀態機引擎中之狀態向量資料之方法及用於組態一狀態機引擎之一狀態機晶格之方法
CN109313594A (zh) 用于指令包的奇偶校验
CN103594120B (zh) 以读代写的存储器纠错方法
TW201546817A (zh) 對選取列資料修復之驗證技術
KR101697548B1 (ko) Fifo 로드 명령
US10949290B2 (en) Validation of a symbol response memory
JP2008065441A (ja) デバッグシステム及びデバッグ回路
US8724483B2 (en) Loopback configuration for bi-directional interfaces
CN105247488A (zh) 在硬件中提供对数据帧区段的线速率合并的高性能读取-修改-写入系统
JP6189866B2 (ja) プロセッサモードを切り替えるための、呼び出される関数のアドレスの最下位ビットの使用
CN105144084A (zh) 提高处理器中返回分支指令的执行速度的方法
JP2019519858A5 (zh)
CN104536884A (zh) 代码测试方法和装置
EP3012648B1 (en) Deriving hardware acceleration of decoding from a declarative protocol description
CN106528234A (zh) 一种远程升级方法和装置

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1261188

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant