CN109358903A - 数据访问设备和访问错误通知方法 - Google Patents

数据访问设备和访问错误通知方法 Download PDF

Info

Publication number
CN109358903A
CN109358903A CN201810652432.9A CN201810652432A CN109358903A CN 109358903 A CN109358903 A CN 109358903A CN 201810652432 A CN201810652432 A CN 201810652432A CN 109358903 A CN109358903 A CN 109358903A
Authority
CN
China
Prior art keywords
bus
access
slave
bus master
error notification
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
CN201810652432.9A
Other languages
English (en)
Other versions
CN109358903B (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN109358903A publication Critical patent/CN109358903A/zh
Application granted granted Critical
Publication of CN109358903B publication Critical patent/CN109358903B/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Abstract

本申请涉及数据访问设备和访问错误通知方法。实现了通过总线主设备针对推测性访问的错误通知和通过总线从设备针对非推测性访问的错误通知,同时抑制了总线主设备的电路规模。总线请求包括用于选择针对访问的错误通知是由总线从设备还是由总线主设备来执行的模式信息。在总线请求中包括指示由总线从设备来执行错误通知的模式信息的情况下,当发生针对该总线请求中的访问的错误时,总线从设备执行错误通知。在已经固定了推测性加载访问的指令的执行并且已经从总线从设备接收到用于加载访问的错误信息的情况下,总线主设备基于该错误信息来执行错误通知。

Description

数据访问设备和访问错误通知方法
相关申请的交叉引用
这里通过参考并入2017年6月22日提交的日本专利申请No.2017-121981的全部公开内容,包括说明书、附图和摘要。
技术领域
本发明涉及数据访问设备和访问错误通知方法。
背景技术
为了提高访问性能,有时使用针对诸如RAM(随机访问存储器)之类的总线从设备执行推测性加载的访问方法。关于在访问总线从设备时在总线从设备中检测到的错误,可以立即通过总线从设备向错误处理单元等通知该错误。然而,在该访问是推测性访问的情况下,可能有必要避免向错误处理单元等的错误通知。关于这一点,美国专利No.5,864,692记载到,关于在与推测性指令相关联的处理中发生的错误,在确定该指令是否实际上是必需的之前不应该报告该错误。
例如,对于推测性加载,由于预测失败而导致的分支取消等原因,所获取的读取数据可能变得无效。在这种情况下,有必要防止在用于加载访问的总线从设备中检测到的错误的通知。作为实现这一点的配置,可以考虑这样的配置:其中当与推测性加载相关联地发生错误时,总线从设备通知总线主设备错误发生,而不是立即向错误处理单元等通知该错误,并且总线主设备在推测性加载是必需的已经被固定的时候执行错误通知。
也就是,关于非推测性访问中的错误,需要总线从设备执行错误通知,而关于推测性访问中的错误,需要总线主设备执行错误通知。
发明内容
由于总线从设备无法区分来自总线主设备的访问是否是推测性的,所以有必要统一决定是由总线从设备还是由总线主设备来执行错误通知。因此,在由总线主设备对其进行推测性访问的总线从设备和由总线主设备对其仅进行非推测性访问的总线从设备都是总线主设备的访问对象的情况下,需要两种不同的总线配置。第一总线配置假设进行了推测性访问,并且包括与作为推测性访问的目的地的总线从设备耦合的总线。第二总线配置假设只有非推测性访问,并且是与只接收非推测性访问的总线从设备耦合的总线。因此,必须为总线主设备提供实现针对第一总线配置的总线主设备功能的电路和实现针对第二总线配置的总线主设备功能的电路,这导致总线主设备的电路规模的增加。
其他目的和新颖特征将从说明书和附图的描述中显而易见。
根据实施例,总线请求包括用于选择是由总线从设备还是由总线主设备来执行针对访问的错误通知的模式信息。在总线请求包括指示由总线从设备来执行错误通知的模式信息的情况下,当已经发生针对总线请求中的访问的错误时,总线从设备执行错误通知。在已经固定了推测性加载访问的指令执行并且已经从总线从设备接收到针对加载访问的错误信息的情况下,总线主设备基于该错误信息来执行错误通知。
根据前述的实施例,可以实现通过总线主设备针对推测性访问的错误通知和通过总线从设备针对非推测性访问的错误通知,同时抑制总线主设备的电路规模。
附图说明
图1是图示了通过总线从设备的错误通知的示意图。
图2是图示了通过总线主设备的错误通知的示意图。
图3是根据相关技术的数据访问设备的框图。
图4是根据第一实施例的数据访问设备的配置示例的框图。
图5是图示了根据第一实施例的数据访问设备中如何执行总线从设备的错误通知的示意图。
图6是示出根据第一实施例的数据访问设备中如何执行通过总线主设备的错误通知的示意图。
图7是根据第一实施例的数据访问设备中的错误通知操作的示例的流程图。
图8是根据第二实施例的数据访问设备的配置示例的框图。
图9是根据第三实施例的数据访问设备的配置示例的框图。
具体实施方式
为了使解释清楚,以下描述和附图被适当地省略和简化。在整个附图中,相同的组件用相同的附图标记来标注,并且根据需要省略了冗余描述。
<在实施例之前的论述>
首先,在描述实施例之前,先描述相关的技术。图1是图示了通过总线从设备的错误通知的示意图。图2是图示了通过总线主设备的错误通知的示意图。下面参考图1和图2来描述错误通知。
首先,参考图1来描述通过总线从设备92A的错误通知。在总线从设备92A已经检测到针对通过总线主设备91A的访问的某种错误的情况下,总线从设备92A向总线主设备91A发送指示错误发生的总线响应,并且还执行对错误处理单元93的错误通知。错误通知包括指示错误发生的因素等、访问目的地地址和访问类型的错误的内容。访问类型是指示访问类型(例如,加载访问、存储访问和用专有控制的访问)的信息。在通过总线主设备91A的访问是非推测性访问的情况下(例如,在加载访问指令被固定之后的访问,或者在存储访问指令被固定之后的访问),通过总线从设备的该错误通知应该被执行。
接下来,参考图2来描述通过总线主设备91B的错误通知。在进行访问时,总线主设备91B在总线主设备91B中提供的访问信息存储单元910中保持访问目的地地址和访问类型。在总线从设备92B已经检测到针对通过总线主设备91B的访问的某种错误的情况下,总线从设备92B向总线主设备91B发送指示错误发生的总线响应。该总线响应包括错误的内容。此时,总线从设备92B不执行向错误处理单元93的错误通知。已经从总线从设备92B接收到指示错误发生的总线响应的总线主设备91B读出存储在访问信息存储单元910中的信息,并且在对总线从设备92B的访问的指令执行被固定的时候执行向错误处理单元93的错误通知。也就是,在通过总线主设备的错误通知的情况下,处理等待指令执行的固定,然后由总线主设备91B来执行向错误处理单元93的错误通知。通过总线主设备的该错误通知应该在通过总线主设备91B的访问是推测性加载访问的情况下被执行。
图3是根据相关技术的数据访问设备9的框图。在图3中所图示的配置中,数据访问设备9包括总线95A和总线95B,以均通过CPU 94实现对总线从设备92A的访问和对总线从设备92B的访问。数据访问设备9的CPU 94包括总线主设备91A和总线主设备91B,总线主设备91A控制经由总线95A的访问,总线主设备91B控制经由总线95B的访问。数据访问设备9还包括被连接到总线95A的总线从设备92A和被连接到总线95B的总线从设备92B。也就是,数据访问设备9包括第一总线配置和第二总线配置,第一总线配置包括总线主设备91B、总线95B和总线从设备92B,第二总线配置包括总线主设备91A、总线95A和总线从设备92A。
在第一总线配置中,如参考图2描述的那样通过总线主设备91B执行向错误处理单元93的错误通知,无论访问是推测性还是非推测性的。在第二总线配置中,如参考图1描述的那样通过总线从设备92A执行向错误处理单元93的错误通知。在第二总线配置中,进行非推测性访问,但不进行推测性访问。如图3中所图示的,数据访问设备9可以包括不处理通过总线主设备的错误通知的总线主设备,诸如被耦合到总线95A的DMAC(直接存储器访问控制器)。也就是,第一总线配置假设进行了推测性访问,而第二总线配置假设只有非推测性访问。
如上所述,在根据相关技术的数据访问设备9中,CPU 94必须包括用于第一总线配置的总线主设备91B和用于第二总线配置的总线主设备91A。因此,导致总线主设备的电路规模的增加。此外,必须要提供用于第一配置的总线95B和用于第二配置的总线95A。这导致数据访问设备9的电路规模的增加。
<第一实施例>
接下来,描述第一实施例。图4是根据第一实施例的数据访问设备1的配置示例的框图。图5是图示了根据第一实施例的数据访问设备1中如何执行通过总线从设备200的错误通知的示意图。图6是图示了根据第一实施例的数据访问设备1中如何执行通过总线主设备100的错误通知的示意图。
如图4中所图示的,数据访问设备1包括包含总线主设备100的CPU 10、总线从设备200、DMAC 300、总线400和错误处理单元500。这些在下面描述的组件通过硬件电路来实现。然而,一部分或全部的配置可以通过软件来实施。
在本实施例中,通过使用一个总线400来进行从CPU 10或DMAC 300对总线从设备200的访问。也就是,总线400是公共总线,总线从设备200、总线主设备100和DMAC 300被耦合到该公共总线。在数据访问设备1中,CPU 10的总线主设备100和DMAC 300对总线从设备200进行访问。尽管在具有图4所示配置的数据访问设备1中,总线从设备200可从总线主设备100和DMAC 300访问,但是总线从设备200也可以只可从总线主设备100访问。也就是,数据访问设备1可以不包括DMAC 300。此外,图4所示的一个或多个总线从设备200是作为推测性访问对象的总线从设备,并且其余的(一个或多个)总线从设备200则不是推测性访问对象。然而,所有图示的总线从设备200均可以是推测性访问对象。
CPU 10执行存储在存储器中的程序。在程序的执行中,CPU 10基于分支预测来推测性地执行指令。也就是,从总线主设备100对总线从设备200的访问包括推测性访问。CPU10对如果针对其进行推测性访问则推测性访问不会引起问题的总线从设备200(即,其中即使进行推测性访问也不会引起预期操作的总线从设备200)进行推测性访问。换言之,CPU10只对如果针对其进行了推测性访问则会引起非预期操作的总线从设备200进行非推测性访问。也就是,对于CPU 10,只有数据访问设备1中包括的总线从设备200的预定总线从设备200是推测性访问对象。
总线主设备100(第一总线主设备)向总线从设备200通知总线请求并对总线从设备200进行访问。总线请求包括用于选择是由总线从设备还是由总线主设备来执行针对访问的错误通知的模式信息。因此,总线请求包括访问信息(地址和访问类型)和模式信息。此外,总线主设备100包括作为缓冲存储器的访问信息存储单元110,并且在向总线从设备200通知总线请求时将访问信息存储在访问信息存储单元110中。访问信息包括访问目的地地址和访问类型。
在对总线从设备200进行非推测性访问的情况下,总线主设备100向总线从设备200通知总线请求,同时使总线请求包括指示总线从设备执行错误通知的模式信息。也就是,在这种情况下,如图5中所图示的,总线主设备100发出指定“从设备”作为模式的总线请求。非推测性访问的示例包括加载访问(通过加载指令的访问)、存储访问(通过存储指令的访问)、具有专用控制的访问(通过用于专有控制功能的指令的访问,诸如LDL(加载链接的)指令和STC(存储条件的)指令)。
如上所述,与通过CPU 10的分支预测相关联地,总线主设备100可以进行对总线从设备200的推测性访问。在对诸如存储器之类的总线从设备200进行推测性加载访问的情况下,总线主设备100向总线从设备200通知总线请求,同时使总线请求包括指示通过总线主设备执行错误通知的模式信息。也就是,在这种情况下,如图6中所图示的,总线主设备100发出指定“主设备”作为模式的总线请求。然后,在推测性加载访问的指令执行已经被固定并且已经从总线从设备200接收到用于该加载访问的错误信息的情况下,总线主设备100执行对错误处理单元500的错误通知。在本实施例中,在向错误处理单元500的错误通知时,总线主设备100向错误处理单元500通知从总线从设备200接收到的错误信息和存储在访问信息存储单元110中的访问信息。具体地,在本实施例中,总线主设备100将错误内容和访问信息存储在错误处理单元500中设置的错误信息保持寄存器510中。
DMAC 300(第二总线主设备)是仅对总线从设备200进行非推测性访问的总线主设备的示例。DMAC 300向总线从设备200通知上述的总线请求并且对总线从设备200进行访问。DMAC 300不进行推测性访问。因此,当对总线从设备200进行访问时,DMAC 300向总线从设备200通知总线请求,同时使总线请求包括指示通过总线从设备执行错误通知的模式信息。也就是,如在图5中所图示的示例中那样,DMAC 300发出指定“从设备”作为模式的总线请求。
总线从设备200是作为来自总线主设备100的访问的对象的任何设备,并且例如可以是存储器或外围I/O(输入/输出)设备。总线从设备200进行从总线主设备100或DMAC 300发送的总线请求所指定的访问。例如,对于加载访问,总线从设备200读出指定地址处的数据,并且将读取的数据作为总线响应发送给请求者。此外,对于存储访问,总线从设备200将数据存储在指定地址处。
总线从设备200通过总线响应向请求者通知所请求的访问是否已经成功完成。在所请求的访问没有成功完成的情况下,也就是,在总线从设备200已经检测到针对所请求的访问的错误的情况下,总线从设备200发回错误信息作为总线响应。
在总线请求中包括指示总线从设备来执行错误通知的模式信息的情况下,也就是,在总线从设备200已经接收到指定“从设备”作为模式的总线请求的情况下,如图5中所图示的,总线从设备200向请求者通知作为错误信息的指示错误发生的信息(从设备错误)。尽管图5图示了总线主设备100和总线从设备200之间的发送和接收,然而在错误已经发生时,总线从设备200还向DMAC 300通知指示错误发生(从设备错误)的信息,该信息作为针对来自DMAC 300的总线请求的错误信息。在本实施例中,在总线从设备200已经接收到指定“从设备”的总线请求的情况下,总线从设备200在已经发生错误时将错误信息发送给请求者。然而,这样的错误信息的发送可以被省略。此外,总线从设备200可以将包括错误的内容的错误信息发送给请求者。
此外,在总线请求包括指示总线从设备来执行错误通知的模式信息的情况下,当已经发生针对该总线请求中的访问的错误时,总线从设备200执行向错误处理单元500的错误通知。具体地,在本实施例中,对于包括指示总线从设备来执行错误通知的模式信息的总线请求,在检测到错误的时候,总线从设备200将错误的内容和访问信息存储在错误处理单元500中设置的错误信息保持寄存器510中。
同时,在总线请求包括指示由总线主设备来执行错误通知的模式信息的情况下,也就是,在总线从设备200已经接收到指定“主设备”作为模式的总线请求的情况下,如图6中所图示的,总线从设备200向请求者通知指示错误发生(从设备错误)的信息和所检测到的错误的内容,作为错误信息。
换言之,在总线请求包括指示总线主设备来执行错误通知的模式信息的情况下,当已经发生针对该总线请求中的访问的错误时,总线从设备200将该错误信息发送给是请求者的总线主设备100。因此,在指令的执行已经被固定的情况下,由总线主设备100来执行错误通知。换言之,在加载数据变得无效已经被固定的情况下(即,在已经发现分支预测失败的情况下),不执行错误通知。
错误处理单元500是基于从总线主设备100或总线从设备200通知的信息来执行预定处理的模块。例如,错误处理单元500可以将重置数据访问设备1的任何组件(例如CPU10)的处理或者显示和输出错误的内容的处理作为预定处理来执行。在本实施例中,错误处理单元500包括错误信息保持寄存器510,并且基于存储在错误信息保持寄存器510中的错误的内容和访问信息来执行预定处理。因为以这种方式来执行向错误处理单元500的通知,所以可以根据错误来执行适当的处理。
接下来,描述数据访问设备1中的错误通知操作。图7是根据第一实施例的数据访问设备1中的错误通知操作的示例的流程图。下面参考图7的流程图来描述错误通知操作的流程。
在步骤101(S101)中,总线主设备100或DMAC 300发出总线请求。
在步骤102(S102)中,作为在步骤101中发出的总线请求的访问对象的总线从设备200根据所接收的总线请求来进行访问。总线从设备200还监视是否与访问相关联地发生错误。在总线从设备200未检测到错误的情况下,处理移动到步骤103。同时,在总线从设备200检测到错误的情况下,处理移动到步骤104。
在步骤103(S103)中,总线从设备200向在步骤101中已经发出总线请求的总线主设备100或DMAC 300发送指示所请求的访问已正常进行的总线响应。
同时,在步骤104(S104)中,总线从设备200检查在接收到的总线请求中包括的模式信息。在模式信息指示总线从设备来执行错误通知的情况下,处理移动到步骤105。在模式信息指示总线主设备来执行错误通知的情况下,处理移动到步骤106。
在步骤105(S105)中,总线从设备200向在步骤101中发出了总线请求的总线主设备100或DMAC 300发送包括错误信息的总线响应,并且还执行对错误处理单元500的错误通知。
在步骤106(S106)中,总线从设备200向在步骤101中发出总线请求的总线主设备100发送指示错误信息的总线响应。然后,发出总线请求的总线主设备100接收该总线响应。
在步骤106之后,在步骤107(S107)中,总线主设备100确定与在步骤101中发出的总线请求有关的指令的执行是否已经被固定。在指令的执行已经被固定的情况下,即在推测成功的情况下,处理移动到步骤108。在指令的执行还没有被固定的情况下,即在推测失败的情况下,不执行向错误处理单元500的错误通知。
在步骤108(S108)中,总线主设备100执行向错误处理单元500的错误通知。尽管在图7的示例中图示了在接收到总线响应之后固定指令的执行的流程图,然而可以在接收到总线响应之后来确定推测的成功或失败。在任何情况下,通过总线主设备100的错误通知在来自总线从设备200的错误信息已经被接收并且指令的执行已经被固定的时候被执行。
如上所述,总线请求包括数据访问设备1中的模式信息。根据该模式信息,通过总线主设备100的错误通知和通过总线从设备200的错误通知被切换。因此,根据数据访问设备1,可以实现适当的错误通知,而不用像在上述相关技术中那样将第一总线配置和第二总线配置彼此分开。也就是,可以实现通过总线主设备的针对推测性访问的错误通知和通过总线从设备的针对非推测性访问的错误通知,同时抑制总线主设备的电路规模。此外,因为可以共享一个总线400,所以不同于上述的相关技术,不需要为第一总线配置提供总线95B并且为第二总线配置提供总线95A。因此,同样关于这一点,也可以抑制电路规模。
另外,在本实施例中,总线主设备100包括在其中存储如上所述的访问信息的访问信息存储单元110,并且在执行错误通知时向错误处理单元500通知被存储在访问信息存储单元110中的访问信息。因此,同样在针对推测性访问的错误通知中,也可以向错误处理单元500通知诸如地址和访问类型之类的访问信息。
此外,如在图8中所图示的,根据实施例的数据访问设备可以被配置成至少包括总线主设备100和总线从设备200。在图8中所图示的配置中,总线主设备100向总线从设备200通知包括模式信息的总线请求,模式信息用于选择是由总线从设备还是由总线主设备来执行针对访问的错误的通知,并且对总线从设备200进行访问。在总线请求包括指示总线从设备来执行错误通知的模式信息的情况下,当已经发生针对总线请求中的访问的错误时,总线从设备200向任何给定的通知目的地通知错误。此外,在总线请求包括指示总线主设备来执行错误通知的模式信息的情况下,当已经发生针对该总线请求中的访问的错误时,总线从设备200向总线主设备100发送错误信息。在进行推测性访问的情况下,总线主设备100使总线请求包括指示总线主设备来执行错误通知的模式信息。然后,在推测性加载访问的指令执行已经被固定(即,推测已经成功)并且已经从总线从设备200接收到针对该加载访问的错误信息的情况下,总线主设备100向任何给定的通知目的地通知错误。根据这个配置,通过总线主设备100的错误通知和通过总线从设备200的错误通知根据模式信息而被切换。因此,可以在电路规模被抑制的同时实现适当的错误通知。
<第二实施例>
接下来,描述第二实施例。第二实施例与第一实施例的不同之处在于,用于在访问信息存储单元110中保持访问信息的时段被设置得较短。
如上所述,关于CPU 10对如果针对其进行推测性访问则推测性访问不会引起任何问题的总线从设备200(例如,针对其发现如果进行了推测性访问,则推测性访问不会引起任何异常的存储器)的加载访问,进行推测性访问。CPU 10对这样的总线从设备200的存储访问是非推测性访问。也就是,在存储指令的执行已经被固定之后进行存储访问。同时,对于如果针对其进行推测性访问(例如,外围I/O设备)则会由推测性访问引起非预期操作的总线从设备200而言,要进行的所有访问都是非推测性的。
在进行推测性访问的情况下,有必要在总线请求发出之后还继续在访问信息存储单元110中继续保持访问信息,以便允许总线主设备100如上所述地执行包括访问信息的错误通知。同时,在进行非推测性访问的情况下,在发出总线请求之后不必在访问信息存储单元110中保持访问信息。
因此,在本实施例中,对于对总线从设备200的推测性加载访问,总线主设备100将针对该访问的访问信息保持在访问信息存储单元110中,至少直到从总线从设备200接收到对该访问(总线响应)的响应为止。更详细地,在推测成功的情况下执行以下操作。总线主设备100在访问信息存储单元110中保持针对该访问的访问信息,直到对总线从设备200的推测性加载访问的总线响应被接收并且加载访问的指令的执行被固定为止,然后将其删除。然而,当需要错误通知时,总线主设备100在执行错误通知之后执行删除。在推测失败的情况下,执行以下操作。总线主设备100在访问信息存储单元110中保持用于该访问的访问信息,直到对总线从设备200的推测性加载访问的总线响应被接收并且加载访问的指令执行的取消被固定为止,然后将其删除。
此外,对于对总线从设备200的另一访问(即,非预测性访问),当执行对总线从设备200的总线请求的通知时,总线主设备100从访问信息存储单元110中删除关于该访问的访问信息。
上面描述了第二实施例。根据本实施例,在进行非推测性访问的情况下,被存储在访问信息存储单元110中的访问信息被提前删除。也就是,可以提前释放访问信息存储单元110中的存储区域。因此,可以推进后续访问的开始。
<第三实施例>
接下来,描述第三实施例。本实施例与第一实施例或第二实施例的不同之处在于,可以切换第一状态和第二状态。第一状态是如下的状态,其中不仅对于来自总线主设备100的推测性访问,而且对于来自总线主设备100的非推测性访问,都由总线主设备100来执行错误通知。第二状态是如下的状态,其中只对于推测性访问,错误通知才由总线主设备100来执行。下面描述与上述实施例的该不同之处。
在诸如对保护区域的访问中,由编程错误引起的访问错误在将由CPU 10执行的软件开发阶段中发生。在第一实施例或第二实施例中描述的数据访问设备1中,在软件执行期间,错误从总线主设备100被通知和/或错误从总线从设备200被通知。在以这种方式在多个位置处发生错误通知的情况下,通知发生定时的顺序可能与来自软件的指令的顺序不同。如果错误通知的顺序与来自软件的指令的顺序不同,则通过使用错误通知对软件的调试很可能变得非常困难。因此,在本实施例中,使发生错误通知的位置唯一,从而使调试变得容易。
图9是根据第三实施例的数据访问设备2的配置示例的框图。数据访问设备2包括模式固定信息存储单元150,并且关于这一点而在配置上与数据访问设备1不同。
模式固定信息存储单元150是在其中存储模式固定信息的寄存器,模式固定信息指示访问错误的通知是否被固定为由总线主设备来执行。在模式固定信息存储单元150中,第一值(例如,1)和第二值(例如,0)被存储为模式固定信息。第一值指示针对来自CPU 10的访问的错误通知被固定为由总线主设备100来执行。第二值指示针对来自CPU 10的访问的错误通知不被固定为由总线主设备100来执行。被存储在模式固定信息存储单元150中的模式固定信息是可重写的。具体而言,例如,可以通过由CPU 10来执行用于重写被存储在模式固定信息存储单元150中的信息的程序来重写模式固定信息。
此外,在本实施例中,总线主设备100以下面的方式发出总线请求。在上述第一值被存储在模式固定信息存储单元150中的情况下,总线主设备100发出指定“主设备”作为用于所有访问的模式的总线请求。也就是,不管访问是推测性还是非推测性的,总线主设备100都使总线请求包括指示总线主设备来执行错误通知的模式信息。在上述第一值未被存储在模式固定信息存储单元150中的情况下,换言之,在上述第二值被存储在模式固定信息存储单元150中的情况下,总线主设备100在进行推测性加载访问时发出指定“主设备”作为模式的总线请求,并且在进行非推测性访问(推测性加载访问之外的任何访问)时发出指定“从设备”作为模式的总线请求。也就是,总线主设备100在进行推测性加载访问时使总线请求包括指示总线主设备来执行错误通知的模式信息,并且在进行非推测性加载访问时使总线请求包括指示总线从设备来执行错误通知的模式信息。
因此,在第一值被存储在模式固定信息存储单元150中的情况下,只有总线主设备100执行错误通知。通过总线从设备200的错误通知不被执行。在第二值被存储在模式固定信息存储单元150中的情况下,关于错误通知,操作与在第一实施例或第二实施例中描述的数据访问设备1中的操作类似。如上所述,可以通过重写模式固定信息存储单元150中的信息来切换执行错误通知的方法。
此外,在本实施例中,在第一值被存储在模式固定信息存储单元150中的情况下,CPU 10以访问指令的顺序输出从总线主设备100输出的错误通知(具体地,错误的内容和访问信息)。以从CPU 10输出的指令的顺序的错误通知被输出到软件调试系统3,软件调试系统3被耦合到错误处理单元500和数据访问设备2。软件调试系统3是用于通过程序员进行软件调试的计算机。例如,可以经由专用接口或经由错误处理单元500来执行从数据访问设备2到软件调试系统3的错误通知的输出。
例如,当软件被开发时,第一值被存储在模式固定信息存储单元150中。这使得可以以指令的顺序向程序员呈现错误,从而使软件易于调试。然后,在软件开发完成之后,直到开始数据访问设备2的大量生产为止,第二值被存储在模式固定信息存储单元150中。因此,可以将数据访问设备2的配置改变成如下的配置,其中通过在总线主设备100或总线从设备200中执行错误通知。
上面描述了第三实施例。根据本实施例,在第一值被存储在模式固定信息存储单元150中的情况下,总线主设备100发出指定“主设备”作为模式的总线请求,而不管是推测性访问还是非推测性访问。因此,可以临时改变错误通知的方法,从而使调试变得容易。
以上,已经通过实施例的方式具体描述了本申请的发明人所做出的发明。然而,自然应当理解,本发明不限于前述的实施例,而是可以在不脱离其主旨的范围内以各种方式进行改变。

Claims (8)

1.一种数据访问设备,包括:
总线从设备;和
总线主设备,所述总线主设备向所述总线从设备通知总线请求并对所述总线从设备进行访问,
其中,所述总线请求包括模式信息,所述模式信息用于选择是由所述总线从设备还是由所述总线主设备来执行针对所述访问的错误通知,
其中,在所述总线请求中包括指示由所述总线从设备来执行错误通知的模式信息的情况下,当已经发生针对所述总线请求中的所述访问的错误时,所述总线从设备执行错误通知,
其中,在所述总线请求中包括指示由所述总线主设备来执行错误通知的模式信息的情况下,当已经发生针对所述总线请求中的所述访问的错误时,所述总线从设备向所述总线主设备发送错误信息,
其中,在进行推测性加载访问的情况下,所述总线主设备使所述总线请求包括指示由所述总线主设备来执行错误通知的模式信息,以及
其中,在已经固定所述推测性加载访问的指令执行并且已经从所述总线从设备接收到针对所述加载访问的所述错误信息的情况下,所述总线主设备执行错误通知。
2.根据权利要求1所述的数据访问设备,
其中,所述总线主设备包括在其中存储访问信息的访问信息存储单元,以及
其中,在已经固定所述推测性加载访问的指令执行并且已经从所述总线从设备接收到针对所述加载访问的所述错误信息的情况下,所述总线主设备通知所述错误信息和被存储在所述访问信息存储单元中的信息。
3.根据权利要求2所述的数据访问设备,其中,
对于对所述总线从设备的所述推测性加载访问,至少直到从所述总线从设备接收到对所述访问的响应为止,所述总线主设备将针对所述访问的访问信息保持在所述访问信息存储单元中,以及
对于对所述总线从设备的另一访问,当对所述总线从设备的所述总线请求的通知已经被执行时,所述总线主设备从所述访问信息存储单元中删除针对所述访问的访问信息。
4.根据权利要求1所述的数据访问设备,还包括在其中存储模式固定信息的模式固定信息存储单元,所述模式固定信息指示针对访问的错误通知是否被固定为由所述总线主设备来执行,
其中,在指示针对访问的错误通知被固定为由所述总线主设备来执行的所述模式固定信息被存储在所述模式固定信息存储单元中的情况下,所述总线主设备使所述总线请求包括指示对于所有访问都由所述总线主设备来执行错误通知的模式信息,以及
其中,在指示针对访问的错误通知被固定为由所述总线主设备来执行的所述模式固定信息没有被存储在所述模式固定信息存储单元中的情况下,所述总线主设备使所述总线请求在进行所述推测性加载访问时包括指示错误通知由所述总线主设备来执行的模式信息,并且使所述总线请求在进行除所述推测性加载访问之外的访问时包括指示错误通知由所述总线从设备来执行的模式信息。
5.根据权利要求4所述的数据访问设备,其中,被存储在所述模式固定信息存储单元中的信息是可重写的。
6.根据权利要求1所述的数据访问设备,还包括基于所通知的信息来执行预定处理的错误处理单元,
其中,所述总线主设备和所述总线从设备执行向所述错误处理单元的错误通知。
7.一种数据访问设备,包括:
总线从设备;
第一总线主设备和第二总线主设备,所述第一总线主设备和所述第二总线主设备中的每一个总线主设备向所述总线从设备通知总线请求并且对所述总线从设备进行访问;和
公共总线,所述总线从设备、所述第一总线主设备和所述第二总线主设备被耦合到所述公共总线,
其中,所述第一总线主设备偶尔对所述总线从设备进行推测性访问,
其中,所述第二总线主设备对所述总线从设备不执行推测性访问,
其中,所述总线请求包括用于选择是由所述总线从设备还是由总线主设备来执行针对访问的错误通知的模式信息,
其中,在所述总线请求中包括指示由所述总线从设备来执行错误通知的模式信息的情况下,当已经发生针对所述总线请求中的所述访问的错误时,所述总线从设备执行错误通知,
其中,在所述总线请求中包括指示由所述总线主设备来执行错误通知的模式信息的情况下,当已经发生针对所述总线请求中的所述访问的错误时,所述总线从设备向所述第一总线主设备或所述第二总线主设备发送错误信息,
其中,在进行推测性加载访问的情况下,所述第一总线主设备使所述总线请求包括指示由所述总线主设备来执行错误通知的模式信息,
其中,在已经固定所述推测性加载访问的指令执行并且已经从所述总线从设备接收到针对所述加载访问的所述错误信息的情况下,所述第一总线主设备执行错误通知,以及
其中,在对所述总线从设备进行访问的情况下,所述第二总线主设备使所述总线请求包括指示由所述总线从设备来执行错误通知的模式信息。
8.一种访问错误通知方法,包括:
由总线主设备发出总线请求并且对总线从设备进行访问,所述总线请求包括模式信息,所述模式信息用于选择是由所述总线从设备还是由所述总线主设备来执行针对所述访问的错误通知;
在所述总线请求中包括指示由所述总线从设备来执行错误通知的模式信息的情况下,当已经发生针对所述总线请求中的所述访问的错误时,由所述总线从设备向对所述错误执行预定处理的错误处理单元通知所述错误;
在所述总线请求中包括指示由所述总线主设备来执行错误通知的模式信息的情况下,当已经发生针对所述总线请求中的所述访问的错误时,由所述总线从设备向所述总线主设备发送错误信息;
在进行推测性加载访问的情况下,由所述总线主设备使所述总线请求包括指示由所述总线主设备来执行错误通知的模式信息;以及
在已经固定所述推测性加载访问的指令执行并且已经从所述总线从设备接收到针对所述加载访问的所述错误信息的情况下,由所述总线主设备来执行向所述错误处理单元的错误通知。
CN201810652432.9A 2017-06-22 2018-06-22 数据访问设备和访问错误通知方法 Active CN109358903B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-121981 2017-06-22
JP2017121981A JP6726136B2 (ja) 2017-06-22 2017-06-22 データアクセス装置及びアクセスエラーの通知方法

Publications (2)

Publication Number Publication Date
CN109358903A true CN109358903A (zh) 2019-02-19
CN109358903B CN109358903B (zh) 2023-10-24

Family

ID=62110853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810652432.9A Active CN109358903B (zh) 2017-06-22 2018-06-22 数据访问设备和访问错误通知方法

Country Status (4)

Country Link
US (1) US10540222B2 (zh)
EP (1) EP3428799B1 (zh)
JP (1) JP6726136B2 (zh)
CN (1) CN109358903B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10930366B2 (en) 2019-07-17 2021-02-23 Micron Technology, Inc. Storage device with test interface

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692169A (en) * 1990-12-14 1997-11-25 Hewlett Packard Company Method and system for deferring exceptions generated during speculative execution
US5717931A (en) * 1994-12-20 1998-02-10 Motorola, Inc. Method and apparatus for communicating between master and slave electronic devices where the slave device may be hazardous
US20060253737A1 (en) * 2005-04-26 2006-11-09 Matsushita Electric Industrial Co., Ltd. Debugging mechanism and debugging register
US20070294487A1 (en) * 2006-06-14 2007-12-20 Yoshiteru Mino Unified memory system
CN101154171A (zh) * 2006-09-29 2008-04-02 富士通株式会社 错误处理方法和信息处理装置
US20110219208A1 (en) * 2010-01-08 2011-09-08 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US20140143612A1 (en) * 2012-11-16 2014-05-22 International Business Machines Corporation Selective posted data error detection based on history
CN104346251A (zh) * 2013-08-09 2015-02-11 瑞萨电子株式会社 半导体集成电路设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259343A (ja) * 1993-03-10 1994-09-16 Hitachi Ltd 多重バス制御方式及びそれを用いたシステム
US5864692A (en) 1996-12-16 1999-01-26 Hewlett-Packard Company Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions
US6763415B1 (en) * 2001-06-08 2004-07-13 Advanced Micro Devices, Inc. Speculative bus arbitrator and method of operation
JP5215655B2 (ja) * 2007-12-27 2013-06-19 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理装置におけるバスアクセス制御方法
US8825933B2 (en) * 2011-11-30 2014-09-02 Andes Technology Corporation Bus apparatus with default speculative transactions and non-speculative extension
US10394641B2 (en) * 2017-04-10 2019-08-27 Arm Limited Apparatus and method for handling memory access operations

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692169A (en) * 1990-12-14 1997-11-25 Hewlett Packard Company Method and system for deferring exceptions generated during speculative execution
US5717931A (en) * 1994-12-20 1998-02-10 Motorola, Inc. Method and apparatus for communicating between master and slave electronic devices where the slave device may be hazardous
US20060253737A1 (en) * 2005-04-26 2006-11-09 Matsushita Electric Industrial Co., Ltd. Debugging mechanism and debugging register
US20070294487A1 (en) * 2006-06-14 2007-12-20 Yoshiteru Mino Unified memory system
CN101154171A (zh) * 2006-09-29 2008-04-02 富士通株式会社 错误处理方法和信息处理装置
US20110219208A1 (en) * 2010-01-08 2011-09-08 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US20140143612A1 (en) * 2012-11-16 2014-05-22 International Business Machines Corporation Selective posted data error detection based on history
CN104346251A (zh) * 2013-08-09 2015-02-11 瑞萨电子株式会社 半导体集成电路设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王炳文;段小虎;张婷婷;: "基于可编程逻辑的I~2C总线控制器设计及应用" *

Also Published As

Publication number Publication date
US10540222B2 (en) 2020-01-21
CN109358903B (zh) 2023-10-24
US20180373582A1 (en) 2018-12-27
JP2019008437A (ja) 2019-01-17
JP6726136B2 (ja) 2020-07-22
EP3428799B1 (en) 2024-02-21
EP3428799A1 (en) 2019-01-16

Similar Documents

Publication Publication Date Title
US9052887B2 (en) Fault tolerance of data processing steps operating in either a parallel operation mode or a non-synchronous redundant operation mode
US6912621B2 (en) Method and apparatus for updating data in mass storage subsystem using emulated shared memory
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
US4924466A (en) Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system
JPH02267634A (ja) 割込み処理装置
NO802759L (no) Multiprogrammert databehandlingssystem.
JPH02255932A (ja) マルチプロセツサ・システム
JP4874165B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
JPH03212755A (ja) マルチプロセッサ・システムおよび割り込み方法
US7281163B2 (en) Management device configured to perform a data dump
US6892319B2 (en) Method for verifying abstract memory models of shared memory multiprocessors
US20060265523A1 (en) Data transfer circuit and data transfer method
CN109358903A (zh) 数据访问设备和访问错误通知方法
JP4920567B2 (ja) 設備機器ネットワークシステムおよびデータアクセス制御方法
JPS623361A (ja) ステ−タス通報方式
JPH07306795A (ja) 二重系計算機のデータベース等価処理装置
JP2825589B2 (ja) バス制御方式
JP2679440B2 (ja) 情報処理装置
US7574341B1 (en) Speculative expectation based event verification
JP3371978B2 (ja) 情報処理装置
EP0500284A1 (en) Method and apparatus for querying a memory system
JP2929967B2 (ja) ファイルシステム
JP2008242592A (ja) メモリ監視回路、情報処理装置、及びメモリ監視方法
JPH01310466A (ja) マルチプロセッサシステム
JPH01140357A (ja) メモリアクセス制御装置

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