[go: up one dir, main page]

CN100585567C - Method and apparatus for delaying access to data and/or instructions of a multiprocessor system - Google Patents

Method and apparatus for delaying access to data and/or instructions of a multiprocessor system Download PDF

Info

Publication number
CN100585567C
CN100585567C CN200580036461.3A CN200580036461A CN100585567C CN 100585567 C CN100585567 C CN 100585567C CN 200580036461 A CN200580036461 A CN 200580036461A CN 100585567 C CN100585567 C CN 100585567C
Authority
CN
China
Prior art keywords
processor
processors
clock
data
mode
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
CN200580036461.3A
Other languages
Chinese (zh)
Other versions
CN101048747A (en
Inventor
T·科特克
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 CN101048747A publication Critical patent/CN101048747A/en
Application granted granted Critical
Publication of CN100585567C publication Critical patent/CN100585567C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

A method and a device for delaying access to data and/or instructions of a multiprocessor system having a first and a second processor, to which a memory unit is allocated, wherein the second processor operates with a clock offset, and the device is designed such that the first processor accesses the memory unit and the second processor obtains the data and/or instructions with a clock offset.

Description

延迟访问多处理器系统的数据和/或指令的方法和设备 Method and apparatus for delaying access to data and/or instructions of a multiprocessor system

技术领域 technical field

本发明涉及一种用于延迟对多计算机系统的数据和/或指令的访问的方法以及一种相应的延迟单元。The invention relates to a method for delaying access to data and/or instructions of a multicomputer system and to a corresponding delay unit.

背景技术 Background technique

在技术应用中,如尤其是在汽车中或者在工业品质领域(即例如机械领域)中和在自动化领域中,对于对安全性要求严格的应用,不断地采用越来越多的基于微处理器或者计算机的控制和调节系统。在此,双计算机系统或者双处理器系统(双核)如今是对安全性要求严格的应用的常用计算机系统,尤其是在汽车中诸如是防抱死系统、电子稳定程序(ESP)、如线控驾驶(Drive-by-Wire或者Steer-by-Wire)以及线控停车(Break-by-Wire)那样的线传控制(X-by-wire)系统等等的常用计算机系统,或者在其它联网系统中也是常用计算机系统。为了满足未来应用中的高的安全性要求,必需强大的错误机制和错误处理机制,尤其是以便应对例如在使计算机系统的半导体结构变小时形成的瞬时错误。在此,保护该核本身(即处理器)是相对困难的。如所提及的那样,对此的解决方案是应用双计算机系统或者双核系统来检测错误。In technical applications, such as in particular in automobiles or in the field of industrial quality (ie, for example in the field of machinery) and in the field of automation, for safety-critical applications, more and more microprocessor-based Or a computerized control and regulation system. Here, dual computer systems or dual-processor systems (dual-core) are today common computer systems for safety-critical applications, especially in automobiles such as anti-lock braking systems, electronic stability programs (ESP), e.g. Commonly used computer systems such as X-by-wire systems such as Drive-by-Wire or Steer-by-Wire and Break-by-Wire, or in other networked systems It is also a commonly used computer system. In order to meet the high safety requirements in future applications, powerful error mechanisms and error handling mechanisms are necessary, especially in order to cope with transient errors which occur, for example, when the semiconductor structures of computer systems are downsized. Here, securing the core itself (ie, the processor) is relatively difficult. As mentioned, the solution to this is to apply a dual computer system or dual core system to detect errors.

因此,这种具有至少两个集成执行单元的处理器单元被称为双核架构或者多核架构。按照如今的现有技术主要出于以下两个原因建议这种双核架构或者多核架构:Therefore, such a processor unit with at least two integrated execution units is called a dual-core architecture or a multi-core architecture. According to today's existing technology, this dual-core architecture or multi-core architecture is proposed mainly for the following two reasons:

因此,一方面,能够通过以下方式实现功率提高,即实现性能提高,即这两个执行单元或者核被视为和被处理为一个半导体模块上的两个计算单元。在该配置中,这两个执行单元或者核执行不同程序或任务。由此,能实现功率提高,因此,该配置被称为功率模式或者性能模式。Thus, on the one hand, an increase in power can be achieved by increasing the performance in that the two execution units or cores are considered and processed as two computing units on one semiconductor module. In this configuration, the two execution units or cores execute different programs or tasks. Thereby, a power boost can be achieved, so this configuration is called power mode or performance mode.

实现双核或者多核架构的第二原因是安全性提高,其方式是这两个执行单元冗余地执行相同的程序。这两个执行单元或者CPU(即核)的结果被比较,并且在比较一致性时能识别出错误。以下将该配置称为安全模式(Safety-Mode)或者也称为错误识别模式。A second reason for implementing a dual-core or multi-core architecture is increased safety in that the two execution units execute the same program redundantly. The results of the two execution units or CPUs (ie cores) are compared and errors can be identified when comparing for consistency. This configuration is referred to below as a safety mode (Safety-Mode) or also as an error detection mode.

因此,如今一方面存在为了识别硬件错误而冗余地工作的双处理器或者多处理器系统(参见双核或者主机检验器(Master-Checker)系统),而另一方面有在其处理器上执行不同数据的双处理器或者多处理器系统。Therefore, today there are dual-processor or multi-processor systems (see dual-core or master-checker systems) that work redundantly in order to recognize hardware errors on the one hand, and on the other hand there are Dual-processor or multi-processor systems with different data.

发明内容 Contents of the invention

如果现在根据下面本发明的实施形式将这两种工作方式结合到双处理器或多处理器系统中(出于简单的原因现在还仅仅提及双处理器系统,但是下面的发明完全一样能被用于多处理器系统),则这两个处理器在性能模式下获得不同的数据并且在错误识别模式下获得相同的数据。If these two modes of operation are now combined in a dual-processor or multi-processor system according to the following embodiments of the present invention (only dual-processor systems are mentioned now for reasons of simplicity, but the following inventions can be used in exactly the same way) for multiprocessor systems), the two processors get different data in performance mode and the same data in error recognition mode.

这种设备或者单元能够实现双处理器系统的有效运行,以致能在工作时在两个模式(即安全模式和性能模式)下进行转换。在此,进一步提及了处理器,但是这同样在概念上包括核或计算单元在内。Such a device or unit enables efficient operation of a dual-processor system such that it can switch between two modes (ie security mode and performance mode) during operation. Here, further reference is made to a processor, but this also conceptually includes cores or computing units.

在实现特别是双处理器系统(双核)时,通常为每个处理器都设置一个高速缓存。一个高速缓存通常是不够的,因为该高速缓存在空间上看来必须被布置在两个处理器之间。由于高速缓存与两个处理器之间的长运行时间,因此这两个处理器仅仅能以受限的时钟频率工作。在此,在该系统中,高速缓存用作快速中间存储器,以便处理器不必总是从缓慢的主存储器中获取数据。为了能够实现这一点,在实现高速缓存时必须非常注意其访问持续时间。该访问持续时间由从高速缓存中获取数据的实际访问时间以及由将数据转交给处理器的时间来构成。如果高速缓存现在在空间上远离处理器放置,则数据的传送持续很长时间并且处理器不再能以其完整的时钟工作。由于定时问题,在双处理器系统中针对每个处理器通常设置一专用的高速缓存。When implementing, in particular, a dual-processor system (dual-core), a cache is usually provided for each processor. One cache is usually not enough, since the cache must be spatially arranged between the two processors. Due to the long runtime between the cache and the two processors, the two processors can only operate at a limited clock frequency. Here, in this system, the cache is used as a fast intermediate memory so that the processor does not always have to fetch data from the slow main memory. To be able to achieve this, the cache must be implemented with great attention to its access duration. The access duration consists of the actual access time when the data is fetched from the cache and the time when the data is handed over to the processor. If the cache is now placed spatially away from the processor, the transfer of data continues for a long time and the processor can no longer work on its full clock. Due to timing issues, it is common to have a dedicated cache for each processor in a dual processor system.

本发明的任务是说明一种方法和设备,通过该方法和设备能在双处理器系统中节约一个高速缓存,或在多处理器系统中节约冗余的高速缓存。通过利用时钟偏移来实现节约。The object of the present invention is to specify a method and a device by means of which a cache memory can be saved in a dual-processor system or a redundant cache memory can be saved in a multiprocessor system. Savings are achieved by utilizing clock skew.

为了解决该任务,本发明说明了一种用于延迟对具有第一和第二处理器的多处理器系统的数据和/或指令的访问的方法和设备,给该第一和第二处理器分配一存储单元,其中第二处理器有时钟偏移地工作,并且这样构造该设备,使得第一处理器访问存储单元,而第二处理器有时钟偏移地获得数据和/或指令。有利地,存储单元是高速缓存存储器,由此能够将该存储技术的优点与本发明的优点相结合。To solve this task, the present invention describes a method and a device for delaying access to data and/or instructions of a multiprocessor system having a first and a second processor A storage unit is allocated, wherein the second processor operates with a clock offset, and the device is configured such that the first processor accesses the storage unit, while the second processor obtains data and/or instructions with a clock offset. Advantageously, the storage unit is a cache memory, whereby the advantages of this storage technology can be combined with the advantages of the invention.

适宜地,存储单元由至少一个处理器来寻址并且直接被耦合到寻址该存储单元的处理器上。Suitably, the memory unit is addressed by at least one processor and is directly coupled to the processor addressing the memory unit.

有利的是,包含延迟元件,并且这样构造该设备,使得通过延迟元件来使用时钟偏移,以便实现数据和/或指令从存储单元到第二处理器的运行时间的跨接。It is advantageous if a delay element is included and the device is configured in such a way that a clock offset is used by the delay element in order to enable a jump of data and/or instructions from the memory unit to the runtime of the second processor.

此外有利的是,设置比较装置,通过该装置比较数据和/或指令,并且该比较装置在空间上靠近随后的处理器来布置。It is also advantageous if a comparison device is provided, by means of which the data and/or instructions are compared and which is arranged spatially close to the subsequent processor.

适宜地,这样构造该设备,使得利用该时钟偏移,以便将第一处理器的比较数据引导到第二处理器。Expediently, the device is designed such that the clock offset is used in order to route the comparison data from the first processor to the second processor.

有利的是,按照改进方案,当访问时,延迟写操作和读操作或者仅仅延迟读操作或者仅仅延迟写操作。Advantageously, according to the refinement, when accessing, write operations and read operations are delayed or only read operations or only write operations are delayed.

现在如果这两个处理器有时钟偏移地运行,则利用所建议的方法和相应的设备能够省去针对从处理器的第二高速缓存。If the two processors are now operated with a clock offset, then with the proposed method and the corresponding device it is possible to dispense with a second cache for the slave processor.

在双计算机系统中,存在两个处理器,这两个处理器能够执行相同或者不同的任务。双计算机系统的两个处理器能够时钟同步地或者时钟偏移地执行这些任务。如果双处理器系统被构造用于发现错误,则为了避免共模错误有利的是,这两个处理器有时钟偏移地工作。如果选择非整数的时钟偏移>1,则该方法是最有效的。也就是说,在第一应用形式中,这两个处理器或者核执行相同的任务。In a dual computer system, there are two processors that can perform the same or different tasks. The two processors of a dual computer system can perform these tasks clock synchronously or with clock skew. If a dual-processor system is designed for error detection, it is advantageous for the two processors to operate with a clock offset in order to avoid common-mode errors. This method is most efficient if a non-integer clock offset > 1 is chosen. That is, in the first application form, the two processors or cores perform the same task.

如果这两个处理器执行不同的任务,则有利的是,这两个处理器能时钟边沿同步地运行,因为如存储器那样的外部组件能仅仅利用处理器的时钟来控制。如果现在采用例如能在这两种模式之间转换的双处理器系统,则因此优化到一工作模式。If the two processors perform different tasks, it is advantageous that the two processors can run clock edge synchronously, since external components such as memory can be controlled using only the processor's clock. If, for example, a dual-processor system is used which can switch between these two modes, an operating mode is thus optimized.

根据本发明,通过以下方式来补偿这一点,即在双处理器系统(或多处理器系统)中,该双处理器系统能在如安全模式和性能模式那样的两个模式之间进行转换,这两个处理器在安全模式下有时钟偏移地工作而在性能模式下无时钟偏移地工作。在性能模式下没有时钟偏移是有利的,因为如存储器那样的外部组件大多以较低的时钟频率运行,并且将时钟边沿仅仅和处理器相配地来设计这些外部组件。此外,第二时钟偏移的处理器在每次存储器访问时会具有等待周期,因为该第二处理器晚半个时钟地控制外部组件。According to the invention, this is compensated for by, in a dual processor system (or multiprocessor system), the dual processor system being able to switch between two modes such as a security mode and a performance mode, Both processors work with clock skew in safe mode and without clock skew in performance mode. No clock skew in performance mode is advantageous because external components such as memory mostly run at lower clock frequencies and are designed to match the clock edges only to the processor. In addition, the second clock-offset processor would have a wait cycle on each memory access because the second processor controls external components half a clock later.

通过对双处理器系统的时钟转换,在安全模式下取得错误识别中的最佳状态,而在性能模式下取得性能上的最大值。By switching clocks for dual-processor systems, the best state in error identification is achieved in safe mode and the maximum in performance is achieved in performance mode.

因此,本发明有利地从一种用于延迟对具有第一和第二处理器的多处理器系统的数据和/或指令的访问的方法和设备出发,给该第一和第二处理器分配一存储单元,其中第一和第二处理器有时钟偏移地工作,并且这样构造该设备,使得两个处理器有时钟偏移地访问相同的存储单元。Therefore, the present invention advantageously starts from a method and a device for delaying access to data and/or instructions of a multiprocessor system having first and second processors to which A storage unit in which the first and second processors operate with a clock offset, and the device is constructed such that both processors access the same storage unit with a clock offset.

适宜地,在此,当访问时,延迟写操作和读操作,其中该设备能在延迟访问与不延迟访问之间进行转换。除此之外,公开了一种具有这样的设备的多处理器系统。Suitably, write operations and read operations are hereby delayed when accessed, wherein the device is capable of switching between delaying access and not delaying access. Among other things, a multiprocessor system having such a device is disclosed.

在至少一个模式下,这两个处理器有时钟偏移地工作。该时钟偏移既能彼此相对偏移整个时钟又能彼此相对偏移部分时钟。另一变型方案是,在这两个模式下应用不同的时钟频率。在对安全性要求严格的模式下,例如将比在性能模式下更低的时钟用于进行干扰抑制。在此,这两种变型方案也能相互结合。In at least one mode, the two processors operate with clock skew. The clock offsets can be both full clocks and partial clocks relative to each other. Another variant is to use different clock frequencies in the two modes. In safety-critical modes, for example, a lower clock rate is used for interference suppression than in performance mode. Here, too, the two variants can be combined with one another.

在此,第一工作模式与安全模式相对应,在该安全模式中,两个计算单元执行相同的程序和/或数据,并且设置比较装置,这些比较装置对在执行相同的程序时形成的状态比较一致性。In this case, the first operating mode corresponds to a safety mode in which both computing units execute the same program and/or data, and comparison means are provided which compare the states formed during the execution of the same program. Compare consistency.

根据本发明的单元或根据本发明的方法能够在双处理器系统中最佳地实现这两个模式。The unit according to the invention or the method according to the invention can optimally realize both modes in a dual processor system.

如果这两个处理器工作在错误识别模式(F模式),则这两个处理器获得相同的数据/指令,而如果这两个处理器工作在性能模式(P模式),则每个处理器都能访问该存储器。于是,该单元管理对仅仅简单存在的存储器或者外围设备的访问。If the two processors work in error recognition mode (F mode), the two processors get the same data/instructions, and if the two processors work in performance mode (P mode), each processor can access the memory. This unit then manages access to memory or peripherals that are only briefly present.

在F模式下,该单元接收处理器(在此称为主机)的数据/地址并且将这些数据/地址转发给如存储器、总线等的组件。第二处理器(在此称为从机)想要进行相同的访问。数据分配单元在第二端口收到这个访问,但是不将该问询转发给其它组件。该数据分配单元将与主机相同的数据递交给从机并且比较这两个处理器的数据。如果这些数据不同,则数据分配单元(在此为DVE)通过错误信号表明这一点。因此,在总线/存储器上仅仅主机工作,而从机得到同一数据(如在双核系统中的运行方式)。In F-mode, the unit receives data/addresses from the processor (referred to herein as the host) and forwards these data/addresses to components such as memory, bus, etc. A second processor (referred to herein as a slave) wants to make the same access. The data distribution unit receives this access at the second port, but does not forward the query to other components. The data distribution unit hands over the same data as the master to the slave and compares the data of the two processors. If these data differ, the data allocation unit (here DVE) indicates this by an error signal. Therefore, only the master works on the bus/memory, and the slaves get the same data (as in the way a dual-core system operates).

在P模式下,这两个处理器执行不同的程序部分。因此,存储器访问也是不同的。因此,DVE收到处理器的要求并且将结果/所要求的数据发还DVE已请求的处理器。现在如果这两个处理器想要同时访问一组件,则一处理器被置于等待状态,直到已使用另一处理器。In P mode, the two processors execute different program parts. Therefore, memory access is also different. Thus, the DVE receives the request from the processor and sends the result/requested data back to the processor that the DVE has requested. Now if both processors want to access a component at the same time, one processor is put in a wait state until the other processor has been used.

在这两个模式之间的转换以及因此数据分配单元的不同的工作方式都通过控制信号来实现。这能通过这两个处理器中的一个来生成或者能在外部被生成。The switchover between these two modes and thus the different modes of operation of the data distribution unit is effected via control signals. This can be generated by one of the two processors or can be generated externally.

如果双处理器系统在F模式下有时钟偏移地运行而在P模式下没有时钟偏移地运行,则DVE单元相应地延迟从机的数据或如此长地存储主机的输出数据,直到主机的输出数据能与从机的输出数据进行比较,以用于识别错误。If a dual-processor system operates with clock skew in F-mode and without clock skew in P-mode, the DVE unit delays the slave's data accordingly or stores the master's output data so long until the master's The output data can be compared with the output data of the slave for identifying errors.

附图说明 Description of drawings

图1示出双计算机系统,Figure 1 shows a dual computer system,

图2示出关于数据分配单元(DVE)的示例性实现方案,Figure 2 shows an exemplary implementation for a Data Distribution Unit (DVE),

图3示出时钟转换的实例,Figure 3 shows an example of clock conversion,

图4示出设置在每个处理器中的高速缓存,Figure 4 shows the caches provided in each processor,

图5示出将一个高速缓存用于两个处理器的实施例,以及Figure 5 shows an embodiment using one cache for two processors, and

图6示出在时钟偏移的情况下使用两个触发器的实施例。Figure 6 shows an embodiment using two flip-flops in case of clock skew.

具体实施方式 Detailed ways

参照图1针对双计算机系统更进一步阐述时钟偏移。Clock skewing is further explained for a dual computer system with reference to FIG. 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。FIG. 1 shows a dual computer system with a first computer 100 (in particular a master computer) and a second computer 101 (in particular a slave computer). Here, the entire system operates with a clock that can be scheduled or with a clock cycle (clock cycle) CLK that can be scheduled. The clock is supplied to the dual computer system via the clock input CLK1 of the computer 100 and via the clock input CLK2 of the computer 101 . In addition, specific features for detecting errors are included in the dual computer system as an example, wherein the first computer 100 and the second computer 101 are time-shifted (in particular by a predeterminable time-shift) Or can be operated with a predetermined clock offset. In this case, each arbitrary instant can be predetermined for a time offset, and also each arbitrary clock can be predetermined with respect to the offset of the clock cycle. This can be an integer offset of clock cycle (clock cycle), but also as shown in this example, for example an offset of 1.5 clock cycles, wherein here the first computer 100 is exactly at the second computer 101 The previous 1.5 clock cycles worked or ran. This offset can avoid that in-phase errors (so-called common mode failures) interfere in the same way with the computer or the processor (ie the cores of a dual-core system) and are therefore not detected. This means that, due to the offset, such an in-phase error hits the computer at different times in the program sequence and thus has different effects on the two computers, whereby the error can be detected. This avoids that an erroneous effect of the same type without a clock offset would not be detectable in the comparison. To implement a time or clock offset (here in particular 1.5 clock cycles) in a dual computer system, the offset modules 112 to 115 are implemented.

为了识别出所述的同相错误,该系统正好例如被设计用于以预定的时间偏移或者时钟周期偏移工作,尤其是在此为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相连,并且通过指令地址端子I A2(指令地址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通过数据端子DO1(数据输出1)与计算机100相连并且通过数据端子DO2(数据输出2)与计算机101相连。此外,数据总线线路116C属于数据总线116,该数据总线线路116C通过数据端子DI1(数据输入1)和数据端子D12(数据输入2)分别与计算机100或计算机101相连。在由线路116A、116B和116C组成的数据总线116中互连组件104(例如数据存储器、尤其是可靠的数据存储器等)。在该例子中也为组件104提供时钟CLK。In order to detect the mentioned in-phase errors, the system is designed, for example, to work with a predetermined time offset or clock cycle offset, in particular here 1.5 clock cycles, that is, during these 1.5 clock cycles, the computer For example, the computer 100 responds directly to the components, in particular the external components 103 and 104 , for which the second computer 101 operates with a delay of exactly 1.5 clock cycles. In order to produce the desired delay of one half cycle (ie 1.5 clock cycles) in this case, the computer 101 is supplied with an inverted clock at the clock input CLK2. However, at the above-mentioned terminals of the computer, it is therefore also necessary to delay its data or instructions via the bus by the stated clock cycles, ie here in particular by 1.5 clock cycles, for which an offset is set exactly as stated Or delay modules 112 to 115. In addition to the two computers or processors 100 and 101, there are also provided components 103 and 104, which are connected to this via a bus 116 consisting of bus lines 116A and 116B and 116C and a bus 117 consisting of bus lines 117A and 117B. Two computers 100 and 101 form a connection. Here, 117 is an instruction bus, in which an instruction address bus is identified by 117A, and a partial instruction (data) bus is identified by 117B. The address bus 117A is connected to the computer 100 through an instruction address terminal IA1 (instruction address 1), and is connected to the computer 101 through an instruction address terminal IA2 (instruction address 2). The commands themselves are transmitted via the part of command bus 117B which is connected to computer 100 via command terminal II (command 1 ) and to computer 101 via command terminal I2 (command 2 ). Components 103 , such as instruction memories, especially reliable instruction memories, etc., are interconnected in an instruction bus 117 composed of 117A and 117B. These components (in particular as instruction memory) also operate with the clock CLK in this example. Furthermore, a data bus is denoted by 116 which includes a data address bus or data address line 116A and a data bus or data line 116B. Here, 116A (that is, the data address line) is connected to the computer 100 through the data address terminal DA1 (data address 1), and is connected to the computer 101 through the data address terminal DA2 (data address 2). Likewise, data bus or data line 116B is connected to computer 100 via data terminal DO1 (data output 1) and to computer 101 via data terminal DO2 (data output 2). Furthermore, data bus line 116C belongs to data bus 116 , which is connected to computer 100 or computer 101 via data terminal DI1 (data input 1 ) and data terminal D12 (data input 2 ), respectively. Components 104 (eg, data storage, especially reliable data storage, etc.) are interconnected in a data bus 116 consisting of lines 116A, 116B, and 116C. Component 104 is also provided with clock CLK in this example.

在此,组件103和104代表任意组件,这些组件通过数据总线和/或指令总线与双计算机系统的计算机相连,并且根据关于在写操作和/或读操作方面的双计算机系统的数据和/或指令的访问能获得或者发出有错误的数据和/或指令。为了避免错误,虽然设置有错误识别发生器105、106和107,这些错误识别发生器105、106和107产生诸如奇偶校验位的错误识别或者也产生诸如纠错码(即ECC,Error-Correction-Code)等的另一错误代码。于是为此也设置有相对应的错误识别检验装置或者校验装置108和109,用于检查相应的错误识别(即例如奇偶校验位或者如ECC那样的另一错误代码)。Here, the components 103 and 104 represent arbitrary components which are connected to the computers of the dual computer system via a data bus and/or an instruction bus and which are based on data and/or Instruction access can obtain or issue erroneous data and/or instructions. In order to avoid mistakes, although error identification generators 105, 106 and 107 are provided, these error identification generators 105, 106 and 107 generate error identifications such as parity bits or also produce errors such as error correction codes (ie ECC, Error-Correction -Code) and so on for another error code. Corresponding error detection devices or checking devices 108 and 109 are then also provided for this purpose for checking the corresponding error detection (ie for example a parity bit or another error code such as ECC).

如在图1中所示的那样,在双计算机系统中关于冗余实施而比较数据和/或指令在比较器或者组件110和111中实现。但是现在,如果在计算机100与101之间存在时间偏移、尤其是存在时钟偏移或者时钟周期偏移,该时间偏移由不同步的双处理器系统或者在同步的双处理器系统中由同步中的错误或者也如在特定的例子中那样由于对错误识别所希望的时间偏移或时钟周期偏移引起,尤其是在此偏移1.5个时钟周期,则在该时间偏移或者时钟偏移中,计算机(在此尤其是计算机100)但是也涉及其它用户或者执行元件或者传感器地能将有错误的数据和/或指令写入或者读入组件(尤其是外部组件,诸如在此特别是存储器103或者104)。这样,该计算机以有错误的方式通过时钟偏移代替所设置的读访问来执行写访问。不言而喻,尤其是在没有明显的正好有错误地改变数据和/或指令的显示可能性的情况下,这些情形导致整个系统的错误,由此也产生恢复问题。As shown in FIG. 1 , in a dual computer system the data and/or instructions are compared in comparators or modules 110 and 111 for redundant execution. But now, if there is a time offset between the computers 100 and 101, in particular a clock offset or a clock period offset, which is caused by an asynchronous dual processor system or in a synchronized dual processor system by Errors in the synchronization are also caused, as in the specific example, by the desired time offset or clock cycle offset for error detection, especially here by 1.5 clock cycles, at which time offset or clock offset In this case, a computer (here especially computer 100) but also other users or actuators or sensors can write or read faulty data and/or instructions into components (in particular external components such as here in particular memory 103 or 104). In this way, the computer incorrectly executes write access by means of a clock offset instead of the provided read access. It goes without saying that these situations lead to errors of the entire system, and thus also recovery problems, especially if there is no apparent possibility of precisely changing the indication of data and/or commands by mistake.

为了解决该问题,现在将如所示的那样将延迟单元102接入数据总线的线路中和/或接入指令总线中。出于清楚的原因,仅仅示出接入数据总线。在指令总线方面,这自然完全一样也是可能的和可设想的。延迟单元102(Delay Unit)如此延迟访问(在此尤其是存储器访问),以致尤其是在错误识别时例如通过比较器110和111例如至少如此长地补偿可能的时间偏移或者时钟偏移,直到在双计算机系统中产生错误信号,即在双计算机系统中执行错误识别。在此能够实现各种变型方案:In order to solve this problem, delay unit 102 will now be connected as shown in the lines of the data bus and/or in the command bus. For reasons of clarity, only the access data bus is shown. In terms of the command bus, this is of course also possible and conceivable exactly the same. The delay unit 102 (Delay Unit) delays the access (here in particular the memory access) in such a way that a possible time offset or clock offset is compensated for, for example, by comparators 110 and 111, for example, at least so long in the event of an error detection, until An error signal is generated in a dual computer system, ie error recognition is performed in a dual computer system. Various variants are possible here:

延迟写操作和读操作,仅仅延迟写操作,或者如果也不是优选地则也延迟读操作。在此,通过变化信号(尤其是错误信号)能够将被延迟的写操作转变成读操作,以便禁止有错误的写。Writes and reads are delayed, writes only, or if that is not preferred also reads. In this case, a delayed write operation can be converted into a read operation by changing a signal (in particular an error signal) in order to inhibit erroneous writes.

现在,下面参照图2示出了关于数据分配单元(DVE)的示例性实现方案,该数据分配单元(DVE)优选地由用于(通过IllOPDetect)检测转换愿望的设备、模式转换单元以及Iram和Dram控制模块构成。Now, below with reference to Fig. 2, it is shown about the exemplary realization scheme of data distribution unit (DVE), and this data distribution unit (DVE) preferably is used for (through IllOPDetect) the device that detects conversion desire, mode conversion unit and Iram and Dram control module constitutes.

IllOpDetect:两个模式之间的转换通过“转换检测(Switch-Detect)”单元来识别。该单元位于指令总线上的高速缓存与处理器之间并且察看,指令IllOp是否被加载到处理器中。如果检测到指令,则将该事件通知给模式转换单元。针对每个处理器单独存在“转换检测”单元。“转换检测”单元不必容错地实施,因为该“转换检测”单元被加倍地并且因此冗余地存在。在另一方面,可考虑的是,容错地并且因此个别地实施该单元,但是优选的是冗余的实施方案。IllOpDetect: The transition between two modes is identified by the "Switch-Detect" unit. This unit sits between the cache on the instruction bus and the processor and looks to see if instruction 111Op is loaded into the processor. If an instruction is detected, the event is notified to the mode switching unit. There is a separate "transition detection" unit for each processor. The “switchover detection” unit does not have to be implemented in a fault-tolerant manner, since it is duplicated and therefore present redundantly. On the other hand, it is conceivable to implement the units fault-tolerantly and thus individually, but a redundant embodiment is preferred.

ModeSwitch:这两个模式之间的转换通过“转换检测”单元来触发。如果应进行从锁定模式到分离模式的转换,则两个“转换检测”单元检测到该转换,因为这两个处理器在锁定模式下执行相同的程序代码。处理器1的“转换检测”单元在处理器2的“转换检测”单元之前的1.5个时钟识别出这一点。“模式转换”单元借助等待信号使处理器1中止两个时钟。处理器2同样稍晚被中止1.5个时钟,但是仅仅中止半个时钟,以便该处理器2与系统时钟同步。接着,针对其它组件,状态信号被连接到分离模式,并且这两个处理器继续工作。现在为了两个处理器实施不同的任务,这两个处理器必须在程序代码中相继运行。这通过直接在转换到分离模式之后实现对处理器ID的读访问来实现。所读出的处理器ID对于这两个处理器中的每一个是不同的。现在如果对给定处理器ID进行比较,则接着利用条件跳转指令将相对应的处理器引到其它程序位置。在从分离模式转换到锁定模式时,处理器或这两个处理器中的一个首先发现这一点。该处理器将执行程序代码,在该程序代码中包含有转换指令。现在,这通过“转换检测”单元来注册并且将这通知给模式转换单元。该模式转换单元使相对应的处理器中止并且通过中断将同步的原望通知给第二处理器。第二处理器获得中断并且现在能执行软件例行程序,用于结束其任务。现在该处理器同样跳到用于转换的指令所位于的程序位置。其“转换检测”单元现在同样将模式变换的愿望发信号通知给模式转换单元。首先上升的系统时钟边沿现在去激活处理器1的等待信号,并且晚1.5个时钟去激活处理器2的等待信号。现在,这两个处理器再次以1.5个时钟的时钟偏移同步工作。ModeSwitch: The transition between these two modes is triggered by the "Transition Detection" unit. If a transition from locked mode to split mode should be made, the transition is detected by the two "transition detection" units because the two processors execute the same program code in locked mode. Processor 1's "Transition Detect" unit recognizes this 1.5 clocks before Processor 2's "Transition Detect" unit. The "mode switch" unit stops processor 1 for two clocks by means of a wait signal. Processor 2 is also stalled 1.5 clocks later, but only half a clock, so that it is synchronized with the system clock. Then, for other components, the status signal is connected to split mode, and the two processors continue to work. Now in order for the two processors to perform different tasks, the two processors have to run sequentially in the program code. This is achieved by enabling read access to the processor ID directly after transitioning to split mode. The read processor ID is different for each of the two processors. Now if a comparison is made for a given processor ID, the corresponding processor is then directed to another program location using a conditional jump instruction. This is first discovered by the processor or one of the two processors when transitioning from split mode to locked mode. The processor executes program code that includes conversion instructions. This is now registered by the "switch detection" unit and notifies this to the mode switch unit. The mode switching unit halts the associated processor and informs the second processor of the desire for synchronization via an interrupt. The second processor gets the interrupt and can now execute a software routine for ending its task. The processor now also jumps to the program location where the instruction for conversion is located. Its "changeover detection" unit now likewise signals the desire for a mode changeover to the mode changeover unit. The first rising system clock edge now deactivates the wait signal for processor 1, and 1.5 clocks later deactivates the wait signal for processor 2. Now, the two processors again work synchronously with a clock offset of 1.5 clocks.

如果该系统处于锁定模式,则两个“转换检测”单元必须通知模式转换单元,这两个“转换检测”单元想要进入分离模式。如果仅由一个单元来实现转换愿望,则由比较单元识别该错误,因为这两个处理器之一继续将数据提供给这些比较单元,并且这些比较器单元与被中止的处理器不一致。If the system is in locked mode, the mode switching unit must be informed by the two "transition detection" units that they want to enter the split mode. If only one unit implements the switchover request, the error is detected by the comparison unit, since one of the two processors continues to supply data to the comparison unit and the comparator unit does not agree with the aborted processor.

如果这两个处理器在分离模式并且一个处理器没有返回到锁定模式,则这能通过外部监视定时器来识别。在每个处理器的触发信号中,监视定时器注意到,等待的处理器不再报到。如果对于处理器系统仅仅存在一个监视定时器信号,则监视定时器的触发只允许在锁定模式实现。因此,监视定时器可能识别出,没有实现模式转换。模式信号作为双轨信号存在。在此,“10”代表锁定模式而“01”表示分离模式。在“00”和“01”的情况下,出现错误。If the two processors are in split mode and one processor does not return to locked mode, this can be identified by an external watchdog timer. In each processor's trigger signal, the watchdog timer notices that waiting processors no longer report. If only one watchdog timer signal is present for the processor system, triggering of the watchdog timer is only allowed in locked mode. Therefore, the watchdog timer may recognize that a mode transition has not been achieved. Mode signals exist as dual-rail signals. Here, "10" represents a lock mode and "01" represents a split mode. In the case of "00" and "01", an error occurs.

IramControl:对这两个处理器的指令存储器的访问通过IRAMControl来控制。该IRAMControl必须可靠地来设计,因为它是单个失效点。IRAMControl由两个针对每个处理器的状态自动机组成:各自作为时钟同步iram1clkreset和异步readiram1。在对安全性要求严格的模式下,这两个处理器的状态自动机互相监控,而在性能模式下,这两个处理器的状态自动机分开工作。IramControl: Access to the instruction memory of these two processors is controlled through IRAMControl. The IRAMControl must be designed reliably since it is a single point of failure. IRAMControl consists of two per-processor state automata: synchronous iram1clkreset and asynchronous readiram1 each as a clock. In the safety-critical mode, the state machines of the two processors monitor each other, while in the performance mode, the state machines of the two processors work separately.

处理器的两个高速缓存的再加载通过两个状态自动机(亦即同步状态自动机iramc1kreset和异步状态自动机readiram)来控制。通过这两个状态自动机,存储器访问也被分配到分离模式。在这种情况下,处理器1具有更高的优先级。在通过处理器1对主存储器进行访问之后,现在(如果这两个处理器又想要访问主存储器)给处理器2分配存储器访问许可。针对每个处理器实现这两个状态自动机。在锁定模式下,自动机的输出信号被比较,以便能够识别出现的错误。The reloading of the processor's two caches is controlled by two state machines, namely the synchronous state machine iramclkreset and the asynchronous state machine readiram. With these two state machines, memory accesses are also assigned to split patterns. In this case, processor 1 has higher priority. After the access to the main memory by processor 1, processor 2 is now assigned a memory access permission (if both processors want to access the main memory again). These two state automata are implemented for each processor. In lock mode, the output signals of the automaton are compared in order to be able to identify errors that have occurred.

用于更新锁定模式下的高速缓存2的数据在IRAM控制单元中被延迟1.5个时钟。Data for updating cache 2 in locked mode is delayed by 1.5 clocks in the IRAM control unit.

在SysControl的寄存器0中的位5中进行编码,涉及哪些核。核1为位0并且在核2处是高的。该寄存器被映射到地址为65528的存储范围中。Encoded in bit 5 in register 0 of SysControl, which cores are involved. Core 1 is bit 0 and is high at core 2. This register is mapped into the memory range at address 65528.

在核2的存储器访问时,首先检查计算机处于哪种模式。如果计算机处于锁定模式,则其存储器访问被抑制。该信号作为共轨信号存在,因为该信号是对安全性要求严格的。On core 2's memory access, it first checks which mode the computer is in. If the computer is in lock mode, its memory access is inhibited. This signal exists as a common rail signal because it is a safety-critical signal.

处理器1的程序计数器被延迟1.5个时钟,以便在锁定模式下能够与处理器2的程序计数器进行比较。Processor 1's program counter is delayed by 1.5 clocks so that it can be compared with Processor 2's program counter in locked mode.

在分离模式下,这两个处理器的高速缓存能够不同地被再加载。如果现在转换到锁定模式,则这两个高速缓存彼此不相关。由此,这两个处理器能够相继运行,并且因此比较器将错误发信号通知。为了避免这一点,在IRAMControl中建立标记表。在该标记表中注意到,锁定模式下或者分离模式下的高速缓存列已被写。在锁定模式下,对于高速缓存列相对应的条目在高速缓存列再加载时被设置成0,而在分离模式下(即使仅仅一个高速缓存的高速缓存列的高速缓存更新)被设置为1。现在如果处理器仅仅在锁定模式下实施存储器访问,则检查,高速缓存列在锁定模式下是否被更新,也就是这两个高速缓存中的高速缓存列是否相同。在分离模式下,处理器总是访问高速缓存列,而与Flag_Vector如何无关。该表格必须只存在一次,因为在错误时这两个处理器相继运行并且因此在比较器上可靠地识别出错误。由于对中心表格的访问时间相对高,所以该表格也被复制到每个高速缓存。In split mode, the caches of the two processors can be reloaded differently. If you now switch to locked mode, the two caches are not associated with each other. As a result, the two processors can run one after the other, and thus the comparator signals an error. In order to avoid this, a mark table is established in IRAMControl. In this mark table it is noted that the cache column in locked mode or in detached mode has been written. In locked mode, the entry corresponding to the cache line is set to 0 on a cache line reload, and to 1 in split mode (even a cache update of only one cache line). Now if the processor only performs memory accesses in locked mode, it is checked, whether the cache line is updated in locked mode, ie whether the cache line is the same in both caches. In split mode, the processor always accesses the cache column regardless of the Flag_Vector. This table must exist only once, since in the event of an error the two processors are run one after the other and therefore the error is reliably detected at the comparator. Since the access time to the central table is relatively high, this table is also replicated to each cache.

DramControl:在该组件中,对于每个处理器的地址信号、数据信号和存储器控制信号构成奇偶校验。DramControl: In this component, parity is formed for each processor's address signal, data signal, and memory control signal.

针对这两个处理器存在一过程,用于阻塞存储器。该过程不必可靠地被实现,因为在锁定模式下通过比较器来识别有错误的存储器访问,而在分离模式下没有实施安全性重要的应用。在此,检查处理器是否想要阻塞另一处理器的存储器。数据存储器的阻塞通过访问存储器地址$FBFF$=64511来实现。即使在处理器上在调用的时刻施加等待命令,该信号也应正好存在一个时钟长。用于管理数据存储器访问的状态自动机由两个主状态组成:For both processors there is a process for blocking memory. This process does not have to be implemented reliably, since in locked mode erroneous memory accesses are detected by means of comparators, while in split mode no security-critical applications are implemented. Here, it is checked whether a processor wants to block the memory of another processor. Blocking of the data memory is achieved by accessing the memory address $FBFF$=64511. This signal should be present for exactly one clock long, even if a wait command was imposed on the processor at the time of the call. A state automaton for managing data memory access consists of two main states:

-处理器状态锁定:这两个处理器以锁定模式工作。也就是说,数据存储器锁定的功能不是必需的。处理器1协调存储器访问。- Processor State Lock: The two processors work in locked mode. That is, the function of data memory locking is not required. Processor 1 coordinates memory accesses.

-处理器状态分离:现在,对数据存储器的访问冲突解决是必需的,并且必须能够实现存储器阻塞。- Processor State Separation: Access conflict resolution to data memory is now required and must be able to implement memory blocking.

分离模式下的状态又被划分成7个状态,这7个状态解决访问冲突并且能够分别针对另一处理器阻塞数据存储器。在同时希望这两个处理器访问时,所列出的顺序同时表示优先级。The state in split mode is further divided into 7 states that resolve access conflicts and can block the data memory for another processor respectively. The order listed also indicates priority when both processors are desired to access at the same time.

-Core1\_Lock:处理器1已阻塞数据存储器。如果在这种状态下处理器2想要访问存储器,则该处理器2通过等待信号被中止,直到处理器1再次释放数据存储器。-Core1\_Lock: Processor 1 has blocked data memory. If processor 2 wants to access the memory in this state, processor 2 is blocked by waiting for a signal until processor 1 releases the data memory again.

-Core2\_Lock:如果与前面相同的状态仅仅是,现在处理器2已阻塞了数据存储器,而处理器1在数据存储器工作时被中止。-Core2\_Lock: If the same state as before except that now processor 2 has blocked the data memory and processor 1 is stalled while working on the data memory.

-lock1\_wait:当处理器1同样想要为自己保留数据存储器时,该数据存储器通过处理器2被阻塞。因此,处理器1对于下一次存储器阻塞被预先登记。-lock1\_wait: When processor 1 also wants to reserve data memory for itself, the data memory is blocked by processor 2. Therefore, processor 1 is pre-registered for the next memory stall.

-nex:这对于处理器2是相同的。数据存储器在阻塞尝试期间通过处理器1来阻塞。为存储器预先预定处理器2。在正常的没有阻塞的存储器访问时,如果之前处理器1已在其上,则在此处理器2能在处理器1之前访问。-nex: This is the same for processor 2. The data store is blocked by processor 1 during the blocking attempt. Processor 2 is pre-booked for memory. In a normal non-blocking memory access, processor 2 can access here before processor 1 if processor 1 was on it before.

-处理器1的存储器访问:存储器在这种情况下未被阻塞。处理器1允许访问数据存储器。如果该处理器1想要阻塞存储器,则该处理器1能在这种状态下进行这一点。- Memory access by processor 1: the memory is not blocked in this case. Processor 1 allows access to data memory. If the processor 1 wants to block memory, the processor 1 can do so in this state.

-通过处理器2的存储器访问:在同一时钟,处理器1不想访问存储器,因此存储器对于处理器2是空闲的。- Memory access by processor 2: At the same clock, processor 1 does not want to access memory, so the memory is free for processor 2.

-没有处理器想要访问数据存储器。- No processor wants to access data memory.

DVE如所提及的那样由检测模式转换单元的转换愿望(IllOPDetect)和Iram-和DramControl构成。As mentioned, the DVE consists of the switchover request (IllOPDetect) and the Iram and DramControl of the detection mode switchover unit.

在图3中,现在以一例子示出时钟转换,以致在一个模式方面与其它模式相比实现时钟转换。在此,示出以下两种模式,即时钟clk和两个处理器时钟或者核时钟。In FIG. 3 , clock transitions are now shown as an example, so that clock transitions are implemented in one mode compared to other modes. Here, two modes are shown, namely a clock clk and two processor clocks or core clocks.

在一模式下,这两个处理器有时钟偏移地工作。该时钟偏移既彼此相对偏移整个时钟又彼此相对偏移部分时钟。另一变型方案是,在这两种模式中应用不同的时钟频率。在对安全性要求严格的模式下,例如将比在性能模式下更低的时钟用于抑制干扰。在此,这两个变型方案也能相互组合。In one mode, the two processors operate with clock skew. The clock offsets are both full clocks and partial clocks relative to each other. Another variant is to use different clock frequencies in the two modes. In safety-critical modes, for example, a lower clock rate is used for interference suppression than in performance mode. Here, the two variants can also be combined with one another.

但是,此外所示出的特定实现方案也解决了开头所述的任务。In addition, however, the specific implementation shown also solves the task stated at the outset.

在实现尤其是双处理器系统(双核)时,对于每个处理器设置有一个高速缓存,如还示意性地在图4中所示的那样。一个高速缓存通常是不够的,因为该高速缓存在空间上看来必须被布置在两个处理器之间。由于高速缓存与两个处理器之间的长运行时间,因此这两个处理器仅仅能以受限的时钟频率工作。When implementing, in particular, a dual-processor system (dual-core), a cache is provided for each processor, as is also shown schematically in FIG. 4 . One cache is usually not enough, since the cache must be spatially arranged between the two processors. Due to the long runtime between the cache and the two processors, the two processors can only operate at a limited clock frequency.

高速缓存用作快速暂存器,以便处理器不必总是从缓慢的主存储器中获取数据。为了能够实现这一点,在实现高速缓存时必须非常注意其访问持续时间。该访问持续时间由从高速缓存中获取数据的实际访问时间和由将数据递交给处理器的时间构成。现在如果将高速缓存在空间上远离处理器放置,则传送数据持续很长,并且处理器不再能以其完整的时钟工作。由于定时问题,在双处理器系统中针对每个处理器通常设置专用的高速缓存。The cache is used as a fast scratchpad so that the processor does not always have to fetch data from the slow main memory. To be able to achieve this, the cache must be implemented with great attention to its access duration. The access duration consists of the actual access time to fetch the data from the cache and the time the data is delivered to the processor. Now if the cache is placed spatially away from the processor, the transfer of data takes a very long time and the processor can no longer work on its full clock. Due to timing issues, it is common to have a dedicated cache for each processor in a dual processor system.

如果这两个处理器现在有时钟偏移地运行,则现在利用在图5中所建议的方法能够省去从处理器的第二高速缓存。If the two processors are now operated with a clock offset, the method suggested in FIG. 5 can now dispense with the second cache memory of the slave processor.

高速缓存必需多个芯片面并且也必需多个电流。由此,该高速缓存也产生了许多废热,该废热必须被引出。现在如果能够省去高速缓存,则双处理器系统明显能更廉价地被实施。A cache requires multiple die surfaces and also requires multiple currents. As a result, the cache also generates a lot of waste heat, which has to be extracted. Now dual processor systems can be implemented significantly cheaper if the cache can be dispensed with.

在此所介绍的双计算机系统中,一个处理器为主机,而一个处理器为从机。主机首先执行数据并且因此也控制如存储器、高速缓存、DMA控制器等等的外围组件。从机以在此例如为1.5个时钟的时钟偏移来执行相同的数据。这也意味着,从机从共同的存储器中获得数据并且同样晚该持续时间地获得外部组件的数据。这两个处理器的输出数据(如存储器地址、数据等)被相互比较。为了能够相互比较数据,主机的结果同样必须被暂存1.5个时钟。下面描述这种示例系统。In the dual computer system described here, one processor is the master and one processor is the slave. The host first executes the data and thus also controls peripheral components like memory, cache, DMA controller, and so on. The slave executes the same data with a clock offset of, for example, 1.5 clocks. This also means that the slave acquires the data from the common memory and likewise acquires the data of the external components after this duration. Output data (such as memory addresses, data, etc.) of the two processors are compared with each other. In order to be able to compare the data with each other, the result of the master must also be temporarily stored for 1.5 clocks. An example system of this kind is described below.

根据图5,现在为了能够将一个高速缓存用于两个处理器,如在单个处理器中那样,指令和数据高速缓存直接被布置在主机上。因此,主机不必容忍在高速缓存与处理器之间的运行时间方面的性能损失。由于从机才晚1.5个时钟执行数据,所以现在利用该时间,以便将数据导向现在在空间上进一步远离高速缓存的第二处理器。According to FIG. 5 , in order to now be able to use one cache for both processors, as in a single processor, the instruction and data caches are arranged directly on the host. Therefore, the host does not have to tolerate a performance penalty in terms of runtime between the cache and the processor. Since the slave is only 1.5 clocks late executing the data, this time is now used to direct the data to the second processor, which is now further in space from the cache.

为此,在1.5个时钟的示例性时钟偏移的情况下,使用两个触发器,如在图6中所示出的那样。第一触发器利用主机的时钟来控制,第二触发器利用从机的时钟来控制。第一触发器直接被定位在源的输出端。第二触发器现在根据信号在这两个时钟之间的差内能经过的长度相应地更靠近从机来定位。这在1.5个时钟的时间偏移的情况下与半个时钟的运行时间长度相对应,而在2个时钟的时钟偏移的情况下与一个时钟的运行时间长度相对应。接着,第二触发器接收该信号。现在还考虑一次该信号在整个时钟期间能经过的距离。在图中,1.)这通过靠近接收器上布置来示出,2.)这与在时钟差中能经过的长度相对应,以及3.)这是在第二触发器之后的一个时钟中能经过的长度。For this, two flip-flops are used with an exemplary clock offset of 1.5 clocks, as shown in FIG. 6 . The first flip-flop is controlled by the clock of the master, and the second flip-flop is controlled by the clock of the slave. The first flip-flop is positioned directly at the output of the source. The second flip-flop is now positioned correspondingly closer to the slave according to the length the signal can travel within the difference between these two clocks. With a time offset of 1.5 clocks, this corresponds to a runtime of half a clock, and with a clock offset of 2 clocks, to a runtime of one clock. Next, the second flip-flop receives the signal. Now also consider once the distance that the signal can travel during the whole clock. In the figure, 1.) this is shown by being placed close to the receiver, 2.) this corresponds to the length that can be passed in the clock difference, and 3.) this is in one clock after the second flip-flop The length that can pass.

Claims (20)

1.一种用于运行具有第一和第二处理器的多处理器系统的方法,给所述第一和第二处理器分配存储单元,其中所述第一和第二处理器能在性能模式下运行,在该性能模式下,两个处理器执行不同的程序,其中所述第一和第二处理器能在安全模式下运行,在该安全模式下,两个处理器冗余地执行相同的程序,其特征在于,在安全模式下,所述第二处理器与所述第一处理器有时钟偏移地工作;并且所述第一处理器访问所述存储单元,而所述第二处理器有时钟偏移地获得数据;以及在性能模式下,两个处理器没有时钟偏移地工作。1. A method for operating a multiprocessor system having first and second processors, assigning storage units to said first and second processors, wherein said first and second processors are capable of mode in which the two processors execute different programs, wherein the first and second processors are capable of operating in a safe mode in which the two processors execute redundantly The same program, characterized in that, in secure mode, said second processor operates with a clock offset from said first processor; and said first processor accesses said storage unit while said first processor The two processors obtain the data with clock skew; and in performance mode, the two processors work without clock skew. 2.根据权利要求1所述的方法,其特征在于,在性能模式下,两个处理器中的每个都访问所述存储单元。2. The method of claim 1, wherein in performance mode, each of the two processors accesses the storage unit. 3.根据权利要求1所述的方法,其特征在于,所述时钟偏移通过延迟元件来产生,并且所述时钟偏移被用来实现数据和/或指令从所述存储单元到所述第二处理器的运行时间的跨接。3. The method according to claim 1, wherein the clock skew is generated by a delay element, and the clock skew is used to implement data and/or instructions from the storage unit to the first The spanning of the runtime of the two processors. 4.根据权利要求1所述的方法,其特征在于,写操作和读操作被延迟所述第二处理器的时钟偏移。4. The method of claim 1, wherein write operations and read operations are delayed by a clock offset of the second processor. 5.根据权利要求1所述的方法,其特征在于,仅仅写操作被延迟所述第二处理器的时钟偏移。5. The method of claim 1, wherein only write operations are delayed by a clock offset of the second processor. 6.根据权利要求1所述的方法,其特征在于,仅仅读操作被延迟所述第二处理器的时钟偏移。6. The method of claim 1, wherein only read operations are delayed by a clock offset of the second processor. 7.根据权利要求1所述的方法,其特征在于,所述时钟偏移被预定为一个或多个半个时钟。7. The method of claim 1, wherein the clock offset is predetermined to be one or more half clocks. 8.根据权利要求1所述的方法,其特征在于,整数地预定所述时钟偏移。8. The method of claim 1, wherein the clock offset is predetermined as an integer. 9.根据权利要求1所述的方法,其特征在于,所述时钟偏移被预定为1.5个时钟。9. The method of claim 1, wherein the clock offset is predetermined to be 1.5 clocks. 10.根据权利要求1所述的方法,其特征在于,对于从性能模式到安全模式的转换或者对于从安全模式到性能模式的转换,中止两个处理器之一。10. The method of claim 1, wherein for a transition from performance mode to safe mode or for a transition from safe mode to performance mode, one of the two processors is halted. 11.一种具有第一和第二处理器的多处理器系统,给所述第一和第二处理器分配存储单元,其中所述第一和第二处理器能在性能模式下运行,在该性能模式下,两个处理器执行不同的程序,其中所述第一和第二处理器能在安全模式下运行,在该安全模式下,两个处理器冗余地执行相同的程序,其特征在于,在安全模式下,所述第二处理器与所述第一处理器有时钟偏移地工作;并且所述第一处理器访问所述存储单元,而所述第二处理器有时钟偏移地获得数据;以及在性能模式下,两个处理器没有时钟偏移地工作。11. A multiprocessor system having a first and a second processor to which storage units are allocated, wherein the first and second processor are capable of running in performance mode, in In the performance mode, the two processors execute different programs, wherein the first and second processors are capable of operating in a safe mode, in which the two processors redundantly execute the same program, which characterized in that, in secure mode, the second processor operates with a clock offset from the first processor; and the first processor accesses the storage unit while the second processor is clocked Data is obtained with an offset; and in performance mode, the two processors operate without clock offset. 12.根据权利要求11所述的多处理器系统,其特征在于,所述存储单元被构造为高速缓存存储器,所述存储单元直接被布置在第一处理器上并且通过延迟元件来产生所述时钟偏移,而且所述时钟偏移被用来实现数据和/或指令从所述存储单元到所述第二处理器的运行时间的跨接。12. The multiprocessor system as claimed in claim 11, characterized in that the memory unit is designed as a cache memory, which is arranged directly on the first processor and generates the clock skew, and said clock skew is used to effectuate a run-time crossover of data and/or instructions from said storage unit to said second processor. 13.根据权利要求11所述的多处理器系统,其特征在于,写操作和读操作被延迟所述第二处理器的时钟偏移。13. The multiprocessor system of claim 11, wherein write operations and read operations are delayed by a clock offset of the second processor. 14.根据权利要求11所述的多处理器系统,其特征在于,仅仅写操作被延迟所述第二处理器的时钟偏移。14. The multiprocessor system of claim 11, wherein only write operations are delayed by a clock offset of the second processor. 15.根据权利要求11所述的多处理器系统,其特征在于,仅仅读操作被延迟所述第二处理器的时钟偏移。15. The multiprocessor system of claim 11, wherein only read operations are delayed by a clock offset of the second processor. 16.根据权利要求11所述的多处理器系统,其特征在于,所述时钟偏移被预定为一个或多个半个时钟。16. The multiprocessor system of claim 11, wherein the clock offset is predetermined to be one or more half clocks. 17.根据权利要求11所述的多处理器系统,其特征在于,整数地预定所述时钟偏移。17. The multiprocessor system of claim 11, wherein the clock offset is predetermined by an integer. 18.根据权利要求11所述的多处理器系统,其特征在于,所述时钟偏移被预定为1.5个时钟。18. The multiprocessor system of claim 11, wherein the clock offset is predetermined to be 1.5 clocks. 19.根据权利要求11所述的多处理器系统,其特征在于,对于从性能模式到安全模式的转换或者对于从安全模式到性能模式的转换,中止两个处理器之一。19. The multiprocessor system of claim 11, wherein for a transition from performance mode to safe mode or for a transition from safe mode to performance mode, one of the two processors is halted. 20.根据权利要求11所述的多处理器系统,其特征在于,所述存储单元是高速缓存。20. The multiprocessor system of claim 11, wherein the storage unit is a cache.
CN200580036461.3A 2004-10-25 2005-10-25 Method and apparatus for delaying access to data and/or instructions of a multiprocessor system Expired - Fee Related CN100585567C (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
DE102004051952A DE102004051952A1 (en) 2004-10-25 2004-10-25 Data allocation method for multiprocessor system involves performing data allocation according to operating mode to which mode switch is shifted
DE102004051992.7 2004-10-25
DE102004051964.1 2004-10-25
DE102004051950.1 2004-10-25
DE102004051952.8 2004-10-25
DE102004051937.4 2004-10-25

Publications (2)

Publication Number Publication Date
CN101048747A CN101048747A (en) 2007-10-03
CN100585567C true CN100585567C (en) 2010-01-27

Family

ID=36129010

Family Applications (5)

Application Number Title Priority Date Filing Date
CN200580036617.8A Expired - Fee Related CN100555233C (en) 2004-10-25 2005-10-25 Be used for carrying out synchronous method and apparatus at multicomputer system
CN200580036488.2A Expired - Fee Related CN100511167C (en) 2004-10-25 2005-10-25 Method and apparatus for monitoring memory cells in a multiprocessor system
CN200580036538.7A Pending CN101048754A (en) 2004-10-25 2005-10-25 Method and apparatus for distributing data from at least one data source in a multiprocessor system
CN200580036441.6A Pending CN101048745A (en) 2004-10-25 2005-10-25 Method and device for switching over in multiprocessor system
CN200580036461.3A Expired - Fee Related CN100585567C (en) 2004-10-25 2005-10-25 Method and apparatus for delaying access to data and/or instructions of a multiprocessor system

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN200580036617.8A Expired - Fee Related CN100555233C (en) 2004-10-25 2005-10-25 Be used for carrying out synchronous method and apparatus at multicomputer system
CN200580036488.2A Expired - Fee Related CN100511167C (en) 2004-10-25 2005-10-25 Method and apparatus for monitoring memory cells in a multiprocessor system
CN200580036538.7A Pending CN101048754A (en) 2004-10-25 2005-10-25 Method and apparatus for distributing data from at least one data source in a multiprocessor system
CN200580036441.6A Pending CN101048745A (en) 2004-10-25 2005-10-25 Method and device for switching over in multiprocessor system

Country Status (2)

Country Link
CN (5) CN100555233C (en)
DE (1) DE102004051952A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI716074B (en) * 2019-01-16 2021-01-11 開曼群島商創新先進技術有限公司 Method and device for improving CPU performance and electronic equipment

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
JP5796311B2 (en) * 2011-03-15 2015-10-21 オムロン株式会社 Control device and system program
JP5218585B2 (en) * 2011-03-15 2013-06-26 オムロン株式会社 Control device and system program
CN106850944A (en) * 2016-12-13 2017-06-13 北京元心科技有限公司 Smart machine awakening method and device
US10353767B2 (en) * 2017-09-14 2019-07-16 Bae Systems Controls Inc. Use of multicore processor to mitigate common mode computing faults
US10872010B2 (en) * 2019-03-25 2020-12-22 Micron Technology, Inc. Error identification in executed code

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
CN1488100A (en) * 2001-03-07 2004-04-07 Fault-tolerant computer device and method of operating the device
CN1154944C (en) * 1998-08-13 2004-06-23 马科尼英国知识产权有限公司 Data processing system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1269827B (en) * 1965-09-09 1968-06-06 Siemens Ag Method and additional device for the synchronization of data processing systems working in parallel
US5809522A (en) * 1995-12-18 1998-09-15 Advanced Micro Devices, Inc. Microprocessor system with process identification tag entries to reduce cache flushing after a context switch
GB9704542D0 (en) * 1997-03-05 1997-04-23 Sgs Thomson Microelectronics A cache coherency mechanism
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154944C (en) * 1998-08-13 2004-06-23 马科尼英国知识产权有限公司 Data processing system
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
CN1488100A (en) * 2001-03-07 2004-04-07 Fault-tolerant computer device and method of operating the device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI716074B (en) * 2019-01-16 2021-01-11 開曼群島商創新先進技術有限公司 Method and device for improving CPU performance and electronic equipment
US10983839B2 (en) 2019-01-16 2021-04-20 Advanced New Technologies Co., Ltd. Method, apparatus, and electronic device for improving CPU performance
US11269693B2 (en) 2019-01-16 2022-03-08 Advanced New Technologies Co., Ltd. Method, apparatus, and electronic device for improving CPU performance

Also Published As

Publication number Publication date
CN101048754A (en) 2007-10-03
CN101048747A (en) 2007-10-03
CN101048761A (en) 2007-10-03
CN101048745A (en) 2007-10-03
DE102004051952A1 (en) 2006-04-27
CN100555233C (en) 2009-10-28
CN101048749A (en) 2007-10-03
CN100511167C (en) 2009-07-08

Similar Documents

Publication Publication Date Title
JP4532561B2 (en) Method and apparatus for synchronization in a multiprocessor system
JP5199088B2 (en) Method and apparatus for controlling a computer system comprising at least two instruction execution units and one comparison unit
KR102824386B1 (en) Error recovery method and device
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
EP2642392B1 (en) Semiconductor integrated circuit device and system using the same
CA2549540C (en) A task management control apparatus and method
JP2000040038A (en) Bus error processing in computer system
US7669079B2 (en) Method and device for switching over in a computer system having at least two execution units
JP2006164277A (en) Device and method for removing error in processor, and processor
JP4182948B2 (en) Fault tolerant computer system and interrupt control method therefor
CN100585567C (en) Method and apparatus for delaying access to data and/or instructions of a multiprocessor system
CN100520730C (en) Method and device for separating the execution of a program code in a computer system having at least two execution units
US8090983B2 (en) Method and device for performing switchover operations in a computer system having at least two execution units
US20090044048A1 (en) Method and device for generating a signal in a computer system having a plurality of components
US20070255875A1 (en) Method and Device for Switching Over in a Computer System Having at Least Two Execution Units
US20090119540A1 (en) Device and method for performing switchover operations in a computer system having at least two execution units
US9128838B2 (en) System and method of high integrity DMA operation
US20080263340A1 (en) Method and Device for Analyzing a Signal from a Computer System Having at Least Two Execution Units
US20080288758A1 (en) Method and Device for Switching Over in a Computer System Having at Least Two Execution Units
US20070294559A1 (en) Method and Device for Delaying Access to Data and/or Instructions of a Multiprocessor System
US20080313384A1 (en) Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
US20090024908A1 (en) Method for error registration and corresponding register
CA2619742C (en) An input/output control apparatus for performing high reliability computations

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100127

Termination date: 20121025