CN100511167C - 监控多处理器系统中的存储单元的方法和设备 - Google Patents

监控多处理器系统中的存储单元的方法和设备 Download PDF

Info

Publication number
CN100511167C
CN100511167C CN 200580036488 CN200580036488A CN100511167C CN 100511167 C CN100511167 C CN 100511167C CN 200580036488 CN200580036488 CN 200580036488 CN 200580036488 A CN200580036488 A CN 200580036488A CN 100511167 C CN100511167 C CN 100511167C
Authority
CN
China
Prior art keywords
equipment
mode
storer
memory content
data
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.)
Expired - Fee Related
Application number
CN 200580036488
Other languages
English (en)
Other versions
CN101048749A (zh
Inventor
T·科特克
S·特里特勒
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN101048749A publication Critical patent/CN101048749A/zh
Application granted granted Critical
Publication of CN100511167C publication Critical patent/CN100511167C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/3824Operand accessing
    • 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/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种用于监控具有至少两个计算单元的系统中的存储单元的方法和设备,其中包含转换装置,通过该转换装置在系统的至少两个工作模式之间能进行转换,其中这样构造所述设备,使得实现存储器内容和/或该存储器内容在其下被拟订的工作模式的一同记录。

Description

监控多处理器系统中的存储单元的方法和设备
背景技术
在技术应用中,如尤其是在汽车中或者在工业品质领域(即例如机械领域)中和在自动化领域中,对于对安全性要求严格的应用,不断地采用越来越多的基于微处理器或者计算机的控制和调节系统。在此,双计算机系统或者双处理器系统(双核)如今是对安全性要求严格的应用的常用计算机系统,尤其是在汽车中诸如是防抱死系统、电子稳定程序(ESP)、如线控驾驶(Drive-by-Wire或者Steer-by-Wire)以及线控停车(Break-by-Wire)那样的线传控制(X-by-wire)系统等等的常用计算机系统,或者在其它联网系统中也是常用计算机系统。为了满足未来应用中的高的安全性要求,必需强大的错误机制和错误处理机制,尤其是以便应对例如在使计算机系统的半导体结构变小时形成的瞬时错误。在此,保护该核本身(即处理器)是相对困难的。如所提及的那样,对此的解决方案是应用双计算机系统或者双核系统来检测错误。
因此,这种具有至少两个集成执行单元的处理器单元被称为双核架构或者多核架构。按照如今的现有技术主要出于以下两个原因建议这种双核架构或者多核架构:
因此,一方面,能够通过以下方式实现功率提高,即实现性能提高,即这两个执行单元或者核被视为和被处理为一个半导体模块上的两个计算单元。在该配置中,这两个执行单元或者核执行不同程序或任务。由此,能实现功率提高,因此,该配置被称为功率模式或者性能模式。
实现双核或者多核架构的第二原因是安全性提高,其方式是这两个执行单元冗余地执行相同的程序。这两个执行单元或者CPU(即核)的结果被比较,并且在比较一致性时能识别出错误。以下将该配置称为安全模式(Safety-Mode)或者也称为错误识别模式。
因此,如今一方面存在为了识别硬件错误而冗余地工作的双处理器或者多处理器系统(参见双核或者主机检验器(Master-Checker)系统),而另一方面有在其处理器上执行不同数据的双处理器或者多处理器系统。如果现在将这两种工作方式结合到双处理器或多处理器系统中(出于简单的原因现在还仅仅提及双处理器系统,但是下面的发明完全一样能被用于多处理器系统),则这两个处理器在性能模式下获得不同的数据并且在错误识别模式下获得相同的数据。
通常,如今的处理器的时钟频率明显地比以其来访问尤其是在外部的存储器的频率高。为了补偿该时间差,采用高速缓存存储器。于是,通过这种快速缓冲存储器与相对应的主存储器一起工作能够明显减小访问时间。
在实现特别是双处理器系统(双核)时,为每个处理器都设置一个高速缓存。在该系统中,高速缓存用作快速中间存储器,以便处理器不必总是从缓慢的主存储器中获取数据。为了能够实现这一点,在实现高速缓存时必须非常注意其访问持续时间。该访问持续时间由从高速缓存中获取数据的实际访问时间以及由将数据转交给处理器的时间来构成。
在多处理器系统中,尤其是在具有两个处理器的双计算机系统中,多个处理器执行相同或者不同的任务。如果多个处理器执行不同的任务,则在处理器与主存储器之间大多给每个处理器分别在其中耦合一个高速缓存。该高速缓存对去耦合主存储器和处理器的不同工作速度是必需的:现在如果双计算机系统在其中两个处理器执行不同任务的模式下工作,则给这些处理器的高速缓存加载不同的数据。现在如果转换到安全模式,在该安全模式下,处理器执行相同的任务并且比较输出数据,则在转换之前必须擦除高速缓存内容或将该高速缓存内容表征为无效的。
现在,本发明的任务是说明一种方法和设备或实现方案,以便避免制动动力的缺陷,以便不必在每次从性能模式转换到安全模式时完全擦除高速缓存或者表明无效。
这样一种实现方案迄今还没有公知。该实现方案使得双处理器系统能有效运行,以致在没有功率损耗地工作时能转换到两个模式(即安全模式与性能模式)。此外,在此还提及了处理器,但是这在概念上同样也包括核或计算单元在内。
发明实施例和优点说明
为了解决该任务,本发明公开了一种用于监控具有至少两个计算单元的系统中的存储单元的方法和设备,其中包含转换装置,通过该转换装置能在系统的至少两个工作模式之间进行转换,其中这样构造该设备,使得实现存储器内容和/或该存储器内容在其下已被拟订的工作模式的一同记录(Mitprotokollierung)。同样,根据本发明公开了相对应的系统和相对应的存储单元、尤其是高速缓存存储器。
通过一同记录何时何物被写入高速缓存,完整的数据不必在模式变换时被表征为无效的。高速缓存因此不必如此频繁地被再加载,并且整个系统的性能相应提高。
此外,用于进行数据分配的单元由至少一个在具有至少两个计算单元的系统中的数据源构成,其中包括转换装置(模式转换(ModeSwitch)),通过该转换装置能在系统的至少两个工作模式之间进行转换,其中这样构造该单元,使得数据分配和/或数据源(特别是指令存储器、数据存储器、高速缓存)与工作模式相关。类似地,示出了具有这种单元的系统。
在此,第一工作模式与安全模式相对应,在该安全模式,两个计算单元执行相同的程序和/或数据并且设置有比较装置,该比较装置对在执行相同程序时形成的状态比较一致性。
根据本发明的单元或根据本发明的方法能够在高速缓存应用中没有功率损耗地在双处理器系统中实现这两个模式。
如果这两个处理器在错误识别模式(F模式)下工作,则这两个处理器获得相同的数据/指令,而如果这两个处理器在性能模式(P模式)下工作,则每个处理器都能访问存储器。于是,该单元管理对仅仅简单存在的存储器或者外围设备的访问。
在F模式,该单元接收处理器(在此称为主机)的数据/地址并将该数据/地址转发给如存储器、总线等等那样的组件。第二处理器(在此为从机)想要进行相同的访问。数据分配单元在第二端口上收到这,但是没有将问询转交给其它组件。数据分配单元将与主机相同的数据递交给从机并且比较这两个处理器的数据。如果数据不同,则数据分配单元(在此为DVE)通过错误信号表明这一点。因此,主机只在总线/存储器上工作,而从机获得同一数据(如双核系统中的运行方式)。
在P模式,这两个处理器执行不同的程序部分。存储器访问因此也是不同的。DVB因此收到处理器的请求并且向其已请求的处理器发还结果/所请求的数据。如果现在这两个处理器想要同时访问一组件,则一处理器被置于等待状态,直到使用另一处理器。
这两个模式之间的转换和因此数据分配单元的不同的工作方式通过控制信号来实现。这能由这两个处理器之一生成或者在外部生成。
根据本发明,因此在工作模式中区分性能模式与安全模式,并且在一同记录时注意到,在性能模式下哪些存储器内容已被拟订。适宜地,同样或者代替其而在一同记录时注意到,在安全模式下哪些存储器内容已被拟订。在此,为了一同记录能拟订一表格,并且该表根据描述至少一个计算单元的工作模式的模式信号来评价。
有利地,在该存储器内容中,数据与其它存储器内容(尤其是指令不同,并且附加地在该表格中一同记录,存储单元中的性能模式下和/或安全模式下的数据是否变化。
很有利的是,在一同记录时附加地记录,相应的存储器内容是否有效。因此,在启动计算单元时,所有存储器内容(尤其是所有数据)可以是无效的。
适宜地,给各计算单元设置一存储单元,并且对各存储单元实现一同记录,其中附加地给各存储单元进行一同记录的比较。特别是对于两个计算单元在一同记录的范围内仅仅拟订一个表格,或者对于每个计算单元在一同记录的范围内拟订一个表格,其中表格条目能在表格之间进行交换。
有利的是,表格条目在一致性上进行比较。同样有利的是,在安全模式下评价有效性信息。
如果双处理器系统在F模式下有时钟偏移地运行而在P模式下没有时钟偏移地运行,则DVB单元相应地延迟从机的数据或如此长地存储主机的输出数据,直到主机的输出数据能与从机的输出数据进行比较,以用于识别错误。
参照图1更进一步阐述时钟偏移。
图1示出了双计算机系统,其具有第一计算机100(尤其是主计算机)和第二计算机101(尤其是从计算机)。在此,整个系统以能被预定的时钟或以能被预定的时钟周期(clock cycle)CLK来运行。通过计算机100的时钟输入端CLK1以及通过计算机101的时钟输入端CLK2将时钟输送给该双计算机系统。除此以外,在该双计算机系统中还示例性地包含用于识别错误的特定特征,其中亦即第一计算机100以及第二计算机101以时间偏移(尤其是能被预定的时间偏移)或能被预定的时钟偏移工作。在此,对于时间偏移能预定每个任意时刻,并且也能预定关于时钟周期的偏移的每个任意时钟。这可以是时钟周期(clock cycle)的整数偏移,但是同样也如在该例子中所示出的那样,例如偏移1.5个时钟周期,其中在此第一计算机100正是在第二计算机101之前的1.5个时钟周期地工作或运行。通过该偏移能够避免,同相错误(即所谓的共模失效(common mode failure))以相同方式干扰计算机或者处理器(即双核系统的核)并且因此不被识别。也就是说,这种同相错误由于偏移而在程序流程中的不同时刻碰到计算机并且因此对于两个计算机造成不同的效果,由此能识别出错误。由此避免了没有时钟偏移的相同方式的错误作用在比较中可能不能被识别出。为了在双计算机系统中实现在时间或者时钟方面的偏移(在此特别是为1.5个时钟周期),实现偏移模块112至115。
为了识别出所述的同相错误,该系统正好例如被设计用于以预定的时间偏移或者时钟周期偏移工作,尤其是在此为1.5个时钟周期,即在该1.5个时钟周期期间,计算机(例如计算机100)直接对组件(特别是外部组件103和104)做出响应,对此,第二计算机101延迟正好1.5个时钟周期地工作。为了在这种情况下产生所希望的一个半周期延迟(即1.5个时钟周期),在时钟输入端CLK2上为计算机101馈送反相的时钟。但是,由此,在计算机的上述端子,因此也必须将其数据或指令通过总线延迟所述的时钟周期,即在此尤其是延迟1.5个时钟周期,对此正好与所述的那样设置偏移或者延迟模块112至115。除了两个计算机或者处理器100和101之外,还设置组件103和104,组件103和104通过由总线线路116A和116B及116C组成的总线116以及由总线线路117A和117B组成的总线117与这两个计算机100和101形成连接。在此,117是指令总线,在该指令总线中,用117A标识指令地址总线,而用117B标识部分指令(数据)总线。地址总线117A通过指令地址端子IA1(指令地址1)与计算机100相连,并且通过指令地址端子IA2(指令地址2)与计算机101相连。指令本身通过部分指令总线117B来传输,该部分指令总线117B通过指令端子II(指令1)与计算机100相连并且通过指令端子I2(指令2)与计算机101相连。在由117A和117B组成的指令总线117中,将组件103(例如指令存储器、尤其是可靠的指令存储器等)互连。这些组件(尤其是作为指令存储器)在该例子中也以时钟CLK来运行。此外,用116表示数据总线,该数据总线包含数据地址总线或者数据地址线路116A和数据总线或者数据线路116B。在此,116A(即数据地址线路)通过数据地址端子DA1(数据地址1)与计算机100相连,并且通过数据地址端子DA2(数据地址2)与计算机101相连。同样,数据总线或者数据线路116B通过数据端子D01(数据输出1)与计算机100相连并且通过数据端子D02(数据输出2)与计算机101相连。此外,数据总线线路116C属于数据总线116,该数据总线线路116C通过数据端子DI1(数据输入1)和数据端子D12(数据输入2)分别与计算机100或计算机101相连。在由线路116A、116B和116C组成的数据总线116中互连组件104(例如数据存储器、尤其是可靠的数据存储器等)。在该例子中也为组件104提供时钟CLK。
在此,组件103和104代表任意组件,这些组件通过数据总线和/或指令总线与双计算机系统的计算机相连,并且根据关于在写操作和/或读操作方面的双计算机系统的数据和/或指令的访问能获得或者发出有错误的数据和/或指令。为了避免错误,虽然设置有错误识别发生器105、106和107,这些错误识别发生器105、106和107产生诸如奇偶校验位的错误识别或者也产生诸如纠错码(即ECC,Error-Correction-Code)等的另一错误代码。于是为此也设置有相对应的错误识别检验装置或者校验装置108和109,用于检查相应的错误识别(即例如奇偶校验位或者如ECC那样的另一错误代码)。
如在图1中所示的那样,在双计算机系统中关于冗余实施而比较数据和/或指令在比较器或者组件110和111中实现。但是现在,如果在计算机100与101之间存在时间偏移、尤其是存在时钟偏移或者时钟周期偏移,该时间偏移由不同步的双处理器系统或者在同步的双处理器系统中由同步中的错误或者也如在特定的例子中那样由于对错误识别所希望的时间偏移或时钟周期偏移引起,尤其是在此偏移1.5个时钟周期,则在该时间偏移或者时钟偏移中,计算机(在此尤其是计算机100)但是也涉及其它用户或者执行元件或者传感器地能将有错误的数据和/或指令写入或者读入组件(尤其是外部组件,诸如在此特别是存储器103或者104)。这样,该计算机以有错误的方式通过时钟偏移代替所设置的读访问来执行写访问。不言而喻,尤其是在没有明显的正好有错误地改变数据和/或指令的显示可能性的情况下,这些情形导致整个系统的错误,由此也产生恢复问题。
为了解决该问题,现在将如所示的那样将延迟单元102接入数据总线的线路中和/或接入指令总线中。出于清楚的原因,仅仅示出接入数据总线。在指令总线方面,这自然完全一样也是可能的和可设想的。延迟单元102(Delay Unit)如此延迟访问(在此尤其是存储器访问),以致尤其是在错误识别时例如通过比较器110和111例如至少如此长地补偿可能的时间偏移或者时钟偏移,直到在双计算机系统中产生错误信号,即在双计算机系统中执行错误识别。在此能够实现各种变型方案:
延迟写操作和读操作,仅仅延迟写操作,或者如果也不是优选地则也延迟读操作。在此,通过变化信号(尤其是错误信号)能够将被延迟的写操作转变成读操作,以便禁止有错误的写。
现在,下面参照图2示出了关于数据分配单元(DVE)的示例性实现方案,该数据分配单元(DVE)优选地由用于(通过I11OPDetect)检测转换愿望的设备、模式转换单元以及Iram和Dram控制模块构成。
I11OpDetect:两个模式之间的转换通过“转换检测(Switch-Detect)”单元来识别。该单元位于指令总线上的高速缓存与处理器之间并且察看,指令I11Op是否被加载到处理器中。如果检测到指令,则将该事件通知给模式转换单元。针对每个处理器单独存在“转换检测”单元。“转换检测”单元不必容错地实施,因为该“转换检测”单元被加倍地并且因此冗余地存在。在另一方面,可考虑的是,容错地并且因此个别地实施该单元,但是优选的是冗余的实施方案。
ModeSwitch:这两个模式之间的转换通过“转换检测”单元来触发。如果应进行从锁定模式到分离模式的转换,则两个“转换检测”单元检测到该转换,因为这两个处理器在锁定模式下执行相同的程序代码。处理器1的“转换检测”单元在处理器2的“转换检测”单元之前的1.5个时钟识别出这一点。“模式转换”单元借助等待信号使处理器1中止两个时钟。处理器2同样稍晚被中止1.5个时钟,但是仅仅中止半个时钟,以便该处理器2与系统时钟同步。接着,针对其它组件,状态信号被连接到分离模式,并且这两个处理器继续工作。现在为了两个处理器实施不同的任务,这两个处理器必须在程序代码中相继运行。这通过直接在转换到分离模式之后实现对处理器ID的读访问来实现。所读出的处理器ID对于这两个处理器中的每一个是不同的。现在如果对给定处理器ID进行比较,则接着利用条件跳转指令将相对应的处理器引到其它程序位置。在从分离模式转换到锁定模式时,处理器或这两个处理器中的一个首先发现这一点。该处理器将执行程序代码,在该程序代码中包含有转换指令。现在,这通过“转换检测”单元来注册并且将这通知给模式转换单元。该模式转换单元使相对应的处理器中止并且通过中断将同步的原望通知给第二处理器。第二处理器获得中断并且现在能执行软件例行程序,用于结束其任务。现在该处理器同样跳到用于转换的指令所位于的程序位置。其“转换检测”单元现在同样将模式变换的愿望发信号通知给模式转换单元。首先上升的系统时钟边沿现在去激活处理器1的等待信号,并且晚1.5个时钟去激活处理器2的等待信号。现在,这两个处理器再次以1.5个时钟的时钟偏移同步工作。
如果该系统处于锁定模式,则两个“转换检测”单元必须通知模式转换单元,这两个“转换检测”单元想要进入分离模式。如果仅由一个单元来实现转换愿望,则由比较单元识别该错误,因为这两个处理器之一继续将数据提供给这些比较单元,并且这些比较器单元与被中止的处理器不一致。
如果这两个处理器在分离模式并且一个处理器没有返回到锁定模式,则这能通过外部监视定时器来识别。在每个处理器的触发信号中,监视定时器注意到,等待的处理器不再报到。如果对于处理器系统仅仅存在一个监视定时器信号,则监视定时器的触发只允许在锁定模式实现。因此,监视定时器可能识别出,没有实现模式转换。模式信号作为双轨信号存在。在此,“10”代表锁定模式而“01”表示分离模式。在“00”和“01”的情况下,出现错误。
IramControl:对这两个处理器的指令存储器的访问通过IRAMControl来控制。该IRAMControl必须可靠地来设计,因为它是单个失效点。IRAMControl由两个针对每个处理器的状态自动机组成:各自作为时钟同步iramlclkreset和异步readiraml。在对安全性要求严格的模式下,这两个处理器的状态自动机互相监控,而在性能模式下,这两个处理器的状态自动机分开工作。
处理器的两个高速缓存的再加载通过两个状态自动机(亦即同步状态自动机iramclkreset和异步状态自动机readiram)来控制。通过这两个状态自动机,存储器访问也被分配到分离模式。在这种情况下,处理器1具有更高的优先级。在通过处理器1对主存储器进行访问之后,现在(如果这两个处理器又想要访问主存储器)给处理器2分配存储器访问许可。针对每个处理器实现这两个状态自动机。在锁定模式下,自动机的输出信号被比较,以便能够识别出现的错误。
用于更新锁定模式下的高速缓存2的数据在IRAM控制单元中被延迟1.5个时钟。
在SysControl的寄存器0中的位5中进行编码,涉及哪些核。核1为位0并且在核2处是高的。该寄存器被映射到地址为65528的存储范围中。
在核2的存储器访问时,首先检查计算机处于哪种模式。如果计算机处于锁定模式,则其存储器访问被抑制。该信号作为共轨信号存在,因为该信号是对安全性要求严格的。
处理器1的程序计数器被延迟1.5个时钟,以便在锁定模式下能够与处理器2的程序计数器进行比较。
在分离模式下,这两个处理器的高速缓存能够不同地被再加载。如果现在转换到锁定模式,则这两个高速缓存彼此不相关。由此,这两个处理器能够相继运行,并且因此比较器将错误发信号通知。为了避免这一点,在IRAMControl中建立标记表。在该标记表中注意到,锁定模式下或者分离模式下的高速缓存列已被写。在锁定模式下,对于高速缓存列相对应的条目在高速缓存列再加载时被设置成0,而在分离模式下(即使仅仅一个高速缓存的高速缓存列的高速缓存更新)被设置为1。现在如果处理器仅仅在锁定模式下实施存储器访问,则检查,高速缓存列在锁定模式下是否被更新,也就是这两个高速缓存中的高速缓存列是否相同。在分离模式下,处理器总是访问高速缓存列,而与Flag_Vector如何无关。该表格必须只存在一次,因为在错误时这两个处理器相继运行并且因此在比较器上可靠地识别出错误。由于对中心表格的访问时间相对高,所以该表格也被复制到每个高速缓存。
DramControl:在该组件中,对于每个处理器的地址信号、数据信号和存储器控制信号构成奇偶校验。
针对这两个处理器存在一过程,用于阻塞存储器。该过程不必可靠地被实现,因为在锁定模式下通过比较器来识别有错误的存储器访问,而在分离模式下没有实施安全性重要的应用。在此,检查处理器是否想要阻塞另一处理器的存储器。数据存储器的阻塞通过访问存储器地址$FBFF$=64511来实现。即使在处理器上在调用的时刻施加等待命令,该信号也应正好存在一个时钟长。用于管理数据存储器访问的状态自动机由两个主状态组成:
-处理器状态锁定:这两个处理器以锁定模式工作。也就是说,数据存储器锁定的功能不是必需的。处理器1协调存储器访问。
-处理器状态分离:现在,对数据存储器的访问冲突解决是必需的,并且必须能够实现存储器阻塞。
分离模式下的状态又被划分成7个状态,这7个状态解决访问冲突并且能够分别针对另一处理器阻塞数据存储器。在同时希望这两个处理器访问时,所列出的顺序同时表示优先级。
-Core1\_Lock:处理器1已阻塞数据存储器。如果在这种状态下处理器2想要访问存储器,则该处理器2通过等待信号被中止,直到处理器1再次释放数据存储器。
-Core2\_Lock:如果与前面相同的状态仅仅是,现在处理器2已阻塞了数据存储器,而处理器1在数据存储器工作时被中止。
-lock1\_wait:当处理器1同样想要为自己保留数据存储器时,该数据存储器通过处理器2被阻塞。因此,处理器1对于下一次存储器阻塞被预先登记。
-nex:这对于处理器2是相同的。数据存储器在阻塞尝试期间通过处理器1来阻塞。为存储器预先预定处理器2。在正常的没有阻塞的存储器访问时,如果之前处理器1已在其上,则在此处理器2能在处理器1之前访问。
-处理器1的存储器访问:存储器在这种情况下未被阻塞。处理器1允许访问数据存储器。如果该处理器1想要阻塞存储器,则该处理器1能在这种状态下进行这一点。
-通过处理器2的存储器访问:在同一时钟,处理器1不想访问存储器,因此存储器对于处理器2是空闲的。
-没有处理器想要访问数据存储器。
DVE如所提及的那样由检测模式转换单元的转换愿望(I11OPDetect)和Iram-和DramControl构成。
在图3中还示意性地示出了具有高速缓存的能被转换的双处理器系统。对此,在图4中示例性地公开了高速缓存存储器。必须区分数据高速缓存和指令高速缓存。在指令高速缓存中,在不能被转换的双计算机系统中没有出现相关性问题。因此,在此直到现在也没有采用探听(Snooping)。现在,在此的方法在于执行指令的探听,这些指令被加载在处理器的相应高速缓存中。
建立以下表格:
 
组0组1组2............组63 标记0标记1标记2............标记63 有效无效有效............有效
高速缓存探听表格图示
在该表格中,为每个高速缓存列设置一条目。该表格仅一次对于能被转换的多处理器系统是必需的。如果数据在锁定模式被写入,则相对应的列在该表格中被表征为有效的。如果在高速缓存列中在分离模式写入,则对于该列的相对应的条目被表征为无效的。
在分离模式,在每次高速缓存访问时仅仅检查,该高速缓存访问是否包含有效值。可是,在锁定模式下,也还询问新的表格。如果该表格中的数据被表征为无效的,则虽然在高速缓存中数据可以是有效的数据,可是这些数据不是高速缓存中的同一数据。双处理器系统的比较器因此在锁定模式可能显示出错误,因为这两个处理器可能相继运行。
如果该表格也被用于数据存储器,则还必须检查,如果数据在锁定模式被加载,则高速缓存列是否不仅在分离模式被替换,而是数据是否通过处理器在高速缓存之一中被更新。
指令高速缓存:
 
动作 高速缓存有效字段 新的上级表格 动作
启动系统 所有数据无效 所有数据无效
高速缓存列在锁定模式被加载 高速缓存列有效 高速缓存列有效
高速缓存列在分离模式被加载 高速缓存列有效 高速缓存列无效 在锁定模式访问高速缓存列时,即使该高速缓存列已经在一个高速缓存中被表征为有效的,该高速缓存列在处理器的所有高速缓存中仍被再加载
如果高速缓存列通过分离模式下的另一高速缓存列在处理器中被替换,则仅仅有效字段在该表格中必须被替换为无效的。不必注意标记字段。
如下为该表格的第二变型方案:
 
高速缓存1 高速缓存2 比较
组0组1组2............组63 标记0标记1标记2............标记63 标记0标记1标记2............标记63 有效无效有效............有效
根据变型方案2的高速缓存探听表
该表格的第二变型方案是该表格仅仅由组字段和标记字段组成,但是对此对于每个高速缓存被分开。在此,该表格虽然变得更大,可是优点在于,在分离模式对于这两个高速缓存集中地用文件表明,其内容看上去如何。于是,在锁定模式通过表格的比较确定,两个高速缓存中的数据是否相同。因此,在不同的时刻更新高速缓存列,而高速缓存列不必如在第一种方法中那样对于锁定模式被表征为无效的。
本发明的核心如上所述的那样是在高速缓存中一同记录数据。但是,此外,所示的特定实现方案也解决开头所述的任务。

Claims (32)

1.一种用于监控具有至少两个计算单元的系统的方法,所述至少两个计算单元各具有存储器,其中包含转换装置,通过该转换装置至少在系统的性能模式与系统的安全模式之间进行转换,在性能模式下,所述至少两个计算单元执行不同的程序或任务,在安全模式下,所述至少两个计算单元冗余地执行相同的程序或任务,其中实现相应存储器的存储器内容的一同记录,因此注意哪些存储器内容在哪种工作模式下已被拟订。
2.根据权利要求1所述的方法,其特征在于,在一同记录时注意到,在性能模式已拟订哪些存储器内容。
3.根据权利要求1所述的方法,其特征在于,在一同记录时注意到,在安全模式已拟订哪些存储器内容。
4.根据权利要求1所述的方法,其特征在于,为了一同记录而拟订表格,并且该表格根据说明至少一个计算单元的工作模式的模式信号来评价。
5.根据权利要求4所述的方法,其特征在于,在存储器内容中,数据不同于其它存储器内容,并且附加地在所述表格中一同记录:数据在性能模式下在存储器中是否被改变。
6.根据权利要求4所述的方法,其特征在于,在存储器内容中,数据不同于其它存储器内容,并且附加地在所述表格中一同记录:数据在安全模式下在存储器中是否被改变。
7.根据权利要求5或者6所述的方法,其特征在于,所述其它存储器内容是指令。
8.根据权利要求1或者4所述的方法,其特征在于,在一同记录时附加地记录:相应的存储器内容是否有效。
9.根据权利要求1或者4所述的方法,其特征在于,在启动计算单元时,使得所有存储器内容无效。
10.根据权利要求1所述的方法,其特征在于,为各存储器实现一同记录,其中给各存储器实现一同记录的比较。
11.根据权利要求10所述的方法,其特征在于,针对所述至少两个计算单元,在一同记录的范围内拟订一表格。
12.根据权利要求10所述的方法,其特征在于,对于每个计算单元,在一同记录的范围内拟订一表格,其中该表格条目能在表格之间被交换。
13.根据权利要求4所述的方法,其特征在于,比较表格条目的一致性。
14.根据权利要求8所述的方法,其特征在于,所述有效性信息在安全模式下被评价。
15.一种用于监控具有至少两个计算单元的系统中的存储器的设备,所述至少两个计算单元各具有存储器,其中包含转换装置,通过该转换装置至少在系统的性能模式与安全模式之间能进行转换,在性能模式下,所述至少两个计算单元执行不同的程序或任务,在安全模式下,所述至少两个计算单元冗余地执行相同的程序或任务,其中,所述设备被构造来使得通过该设备实现相应存储器的存储器内容的一同记录,并且因此注意哪些存储器内容在哪种工作模式下已被拟订。
16.根据权利要求15所述的设备,其特征在于,存储器为高速缓存存储器。
17.根据权利要求15所述的设备,其特征在于,所述存储器具有至少一个有效性字段,在该有效性字段中能录入存储器内容的有效性信息。
18.根据权利要求15所述的设备,其特征在于,在一同记录时注意到:在性能模式已拟订哪些存储器内容。
19.根据权利要求15所述的设备,其特征在于,在一同记录时注意到:在安全模式已拟订哪些存储器内容。
20.根据权利要求15所述的设备,其特征在于,所述设备被构造来使得为了一同记录而拟订一表格,并且该表格根据说明至少一个计算单元的工作模式的模式信号来评价。
21.根据权利要求20所述的设备,其特征在于,在存储器内容中,数据与其它存储器内容不同,并且所述设备被构造来使得附加地在所述表格中一同记录:数据在性能模式下在所述存储器中是否被改变。
22.根据权利要求20所述的设备,其特征在于,在存储器内容中,数据与其它存储器内容不同,并且所述设备被构造来使得附加地在所述表格中一同记录:数据在安全模式下在所述存储器中是否被改变。
23.根据权利要求21或者22所述的设备,其特征在于,所述其它存储器内容是指令。
24.根据权利要求15或者20所述的设备,其特征在于,所述设备被构造来使得在一同记录时附加地记录:相应的存储器内容是否有效。
25.根据权利要求15或者20所述的设备,其特征在于,所述设备被构造来使得在启动计算单元时使所有存储器内容无效。
26.根据权利要求15所述的设备,其特征在于,给各计算单元包含一存储器,并且所述设备被构造来使得为各存储器实现一同记录,其中为各存储器实现一同记录的比较。
27.根据权利要求26所述的设备,其特征在于,所述设备被构造来使得对于所述至少两个计算单元在一同记录的范围内包含一表格。
28.根据权利要求26所述的设备,其特征在于,所述设备被构造来使得对于每个计算单元在一同记录的范围内拟订一表格,其中表格条目能在表格之间被交换。
29.根据权利要求20所述的设备,其特征在于,所述设备被构造来使得比较表格条目的一致性。
30.根据权利要求17所述的设备,其特征在于,所述设备被构造来使得有效性信息在安全模式下被评价。
31.一种系统,其具有根据权利要求15所述的用于监控存储器的设备。
32.一种存储器,其具有根据权利要求15所述的用于监控该存储器的设备。
CN 200580036488 2004-10-25 2005-10-25 监控多处理器系统中的存储单元的方法和设备 Expired - Fee Related CN100511167C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
DE102004051950.1 2004-10-25
DE200410051952 DE102004051952A1 (de) 2004-10-25 2004-10-25 Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE102004051952.8 2004-10-25
DE102004051992.7 2004-10-25
DE102004051937.4 2004-10-25
DE102004051964.1 2004-10-25

Publications (2)

Publication Number Publication Date
CN101048749A CN101048749A (zh) 2007-10-03
CN100511167C true CN100511167C (zh) 2009-07-08

Family

ID=36129010

Family Applications (5)

Application Number Title Priority Date Filing Date
CN 200580036461 Expired - Fee Related CN100585567C (zh) 2004-10-25 2005-10-25 延迟访问多处理器系统的数据和/或指令的方法和设备
CN 200580036441 Pending CN101048745A (zh) 2004-10-25 2005-10-25 在多处理器系统中进行时钟转换的方法和设备
CN 200580036538 Pending CN101048754A (zh) 2004-10-25 2005-10-25 在多处理器系统中从至少一个数据源分配数据的方法和设备
CN 200580036488 Expired - Fee Related CN100511167C (zh) 2004-10-25 2005-10-25 监控多处理器系统中的存储单元的方法和设备
CN 200580036617 Expired - Fee Related CN100555233C (zh) 2004-10-25 2005-10-25 用于在多处理器系统中进行同步的方法和设备

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN 200580036461 Expired - Fee Related CN100585567C (zh) 2004-10-25 2005-10-25 延迟访问多处理器系统的数据和/或指令的方法和设备
CN 200580036441 Pending CN101048745A (zh) 2004-10-25 2005-10-25 在多处理器系统中进行时钟转换的方法和设备
CN 200580036538 Pending CN101048754A (zh) 2004-10-25 2005-10-25 在多处理器系统中从至少一个数据源分配数据的方法和设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN 200580036617 Expired - Fee Related CN100555233C (zh) 2004-10-25 2005-10-25 用于在多处理器系统中进行同步的方法和设备

Country Status (2)

Country Link
CN (5) CN100585567C (zh)
DE (1) DE102004051952A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
JP5218585B2 (ja) * 2011-03-15 2013-06-26 オムロン株式会社 制御装置およびシステムプログラム
JP5796311B2 (ja) * 2011-03-15 2015-10-21 オムロン株式会社 制御装置およびシステムプログラム
CN106850944A (zh) * 2016-12-13 2017-06-13 北京元心科技有限公司 智能设备唤醒方法及装置
US10353767B2 (en) * 2017-09-14 2019-07-16 Bae Systems Controls Inc. Use of multicore processor to mitigate common mode computing faults
CN110018907A (zh) * 2019-01-16 2019-07-16 阿里巴巴集团控股有限公司 提升cpu性能的方法及装置和电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1269827B (de) * 1965-09-09 1968-06-06 Siemens Ag Verfahren und Zusatzeinrichtung zur Synchronisierung von parallel arbeitenden Datenverarbeitungsanlagen

Also Published As

Publication number Publication date
CN101048745A (zh) 2007-10-03
CN100585567C (zh) 2010-01-27
CN101048747A (zh) 2007-10-03
CN101048754A (zh) 2007-10-03
CN101048761A (zh) 2007-10-03
CN101048749A (zh) 2007-10-03
CN100555233C (zh) 2009-10-28
DE102004051952A1 (de) 2006-04-27

Similar Documents

Publication Publication Date Title
US20080126718A1 (en) Method And Device For Monitoring A Memory Unit In A Mutliprocessor System
US7613948B2 (en) Cache coherency during resynchronization of self-correcting computer
CN100375050C (zh) 高可靠性处理器的片上机制
CN100511167C (zh) 监控多处理器系统中的存储单元的方法和设备
CN101925881B (zh) 多处理器系统以及多处理器系统的同步方法
CN100568199C (zh) 管理多处理器操作
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
EP0514075A2 (en) Fault tolerant processing section with dynamically reconfigurable voting
US9195553B2 (en) Redundant system control method
CN101207408A (zh) 一种用于主备倒换的综合故障检测装置和方法
CN104798059A (zh) 在检查点外部处理写入数据的多个计算机系统
JP4454538B2 (ja) 多重系電子計算機
US7409722B2 (en) Control status register access to enable domain reconfiguration
JP3329986B2 (ja) マルチプロセッサシステム
US20070294559A1 (en) Method and Device for Delaying Access to Data and/or Instructions of a Multiprocessor System
JP3746957B2 (ja) 論理分割システムの制御方法
JP2001007893A (ja) 情報処理システム及びそれに用いる障害処理方式
CN103678013A (zh) 多核处理器操作系统级进程的冗余检测系统
JP2002014943A (ja) 耐故障性システム及びその故障検出方法
JPH04241050A (ja) 計算機システムとその制御方法
DE102004051950A1 (de) Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
CN101350002A (zh) 一种基于中央资源的并行总线背板
JP2000298619A (ja) キャッシュメモリの障害処理方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090708

Termination date: 20141025

EXPY Termination of patent right or utility model