CN101048754A - 在多处理器系统中从至少一个数据源分配数据的方法和设备 - Google Patents
在多处理器系统中从至少一个数据源分配数据的方法和设备 Download PDFInfo
- Publication number
- CN101048754A CN101048754A CN 200580036538 CN200580036538A CN101048754A CN 101048754 A CN101048754 A CN 101048754A CN 200580036538 CN200580036538 CN 200580036538 CN 200580036538 A CN200580036538 A CN 200580036538A CN 101048754 A CN101048754 A CN 101048754A
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- mode
- processor
- computing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000006243 chemical reaction Methods 0.000 claims description 27
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 abstract 1
- 238000001514 detection method Methods 0.000 description 13
- 230000007704 transition Effects 0.000 description 12
- 230000005012 migration Effects 0.000 description 8
- 238000013508 migration Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 5
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems 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)系统),而另一方面存在在处理器上执行不同数据的双处理器或者多处理器系统。如果现在将这两种运行方式组合在双处理器或多处理器系统中(为简单起见现在还仅仅提及双处理器系统,但是下面的发明完全一样能被用于多处理器系统),则这两个处理器在性能模式下获得不同的数据并且在错误识别模式下获得相同的数据。
现在,本发明的任务是介绍一种单元和一种方法,该单元和该方法根据模式向至少两个处理器冗余地或不同地提供指令/数据,并且尤其是在性能模式中分配存储器访问权限。
这种单元到目前为止还不是公知的。该单元能够实现双处理器系统的有效运行,使得在运行时能够转换到两种模式、即安全模式和性能模式下。在此还提及处理器,但是这在概念上同样包括核或计算单元。
本发明的实施例和优点的说明
因此,本发明有利地从一种用于在具有至少两个计算单元的系统中从至少一个数据源分配数据的单元出发,其中包含有转换装置(模式转换),通过该转换装置能够在该系统的至少两种运行模式之间进行转换,其中所述单元这样被构造,使得数据分配和/或数据源取决于运行模式。同样示出具有这种单元的系统。
同样地,本发明展示一种用于在具有至少两个计算单元的系统中从至少一个数据源分配数据的方法,其中包含有转换装置,通过该转换装置能够在该系统的至少两种运行模式之间进行转换,其中数据分配和/或数据源(尤其是指令存储器、数据存储器、高速缓存)的选择取决于运行模式。
在此,第一运行模式对应于安全模式,在该安全模式中两个计算单元执行相同的程序和/或数据,并且设置有比较装置,该比较装置比较在执行相同的程序时出现的状态的一致性。
本发明的单元或本发明的方法使得能够在一个双处理器系统中实现两种模式。
如果两个处理器工作在错误识别模式(F模式)中,则这两个处理器获得相同的数据/指令,而如果这两个处理器工作在性能模式(P模式)中,则每个处理器都可以访问存储器。于是该单元管理对只简单存在的存储器或外围设备的访问。
在F模式中,该单元接收一个处理器(在此称为主机)的数据/地址,并将该数据/地址转发给诸如存储器、总线等的组件。第二处理器(在此称为从机)希望进行相同的访问。数据分配单元在第二端口上对此进行接收,但是不向其它组件转发该请求。数据分配单元向从机传送与主机相同的数据,并将两个处理器的数据进行比较。如果这些数据不同,则数据分配单元(在此是DVE)通过错误信号表示这一点。因此只有主机工作在总线/存储器上,而从机得到相同的数据(如在双核系统中的工作方式)。
在P模式中,两个处理器执行不同的程序部分。因此存储器访问也是不同的。因此,DVE接受处理器的请求,并将结果/所请求的数据发还给请求了该结果/该数据的处理器。如果现在两个处理器同时想要访问一个组件,则一个处理器被置于等待状态,直到另一个处理器操作完为止。
两种模式之间的转换以及因此数据分配单元的不同工作方式通过控制信号来实现。这可以由两个处理器之一产生或由外部产生。
有利地,所述转换通过控制信号、尤其是涉及至少一个计算单元的运行模式的模式信号来触发和/或表明,其中该控制信号尤其是从外部针对该机算单元来产生。
此外合宜的是,所述转换通过指令、尤其是描述不允许操作(illOp)的指令来触发和/或表明,其中该指令由转换装置、尤其是模式转换单元产生。
有利地,在对应于安全模式(F模式)的运行模式中相互比较两个计算单元的输入数据的一致性和/或在对应于安全模式(F模式)的运行模式中相互比较两个计算单元的输出数据的一致性。
合宜地,将待分配的数据转发给至少一个其它组件、尤其是计算单元,其中该待分配的数据在转发之前被扩充错误发现码。同样可以将输入数据转发给至少一个其它组件、尤其是计算单元,其中该输入数据在转发之前被扩充错误发现码。同样地,将输出数据转发给至少一个其它组件,其中该输出数据在转发之前扩充错误发现码。针对所有这些情况,有利地在基于该错误发现码发现错误时输出错误信号。其中在一种实施形式中仅在安全模式(F模式)中才输出错误信号。
原则上,可以有利地在性能模式和安全模式之间进行区分,并且在性能模式中进行两个计算单元的数据的优先级排列,并且可以根据该优先级排列顺序地接收和/或转发这些数据。
按照本发明,可以包含有延迟组件,该延迟组件根据两个计算单元在相应运行模式中的时钟偏移将超前的数据恰好延迟该时钟偏移。
有利地,从存储器中读取待分配的数据,然后分配给计算单元。
在此,所述数据分配合宜地通过状态自动机来控制,其中为每个计算单元设置两个状态自动机。这些状态自动机有利地被构造为同步状态自动机和异步状态自动机。
按照本发明,设置有一种具有这种本发明单元的系统,其中此外设置有在该单元外部的监视电路,该监视电路在没有实现运行模式的预期的转换时识别出错误。
如果双处理器系统在F模式中以时钟偏移运行而在P模式中不是以时钟偏移运行,则DVE单元相应地延迟从机的数据,或者一直存储主机的输出数据,直到该输出数据能够与从机的输出数据相比较以识别错误为止。
借助图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以相对于计算机100正好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通过数据端子DO1(数据输出1)与计算机100相连接并且通过数据端子DO2(数据输出2)与计算机101相连接。此外,数据总线线路116C属于数据总线116,该数据总线线路116C通过数据端子DI1(数据输入1)和数据端子DI2(数据输入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)优选地由用于通过IllOPDetect检测转换愿望的装置(因为IllOP指令(IllOP=Illegal Operation,非法操作)在该例子中被用于进行转换)、模式转换单元以及Iram(组合随机存取存储器)和Dram(动态随机存取存储器)控制模块组成:
IllOpDetect(IllOP检测):两种模式之间的转换通过“转换检测(Switch-Detect)”单元来识别。该单元位于指令总线上的高速缓存与处理器之间并且察看,指令IllOp是否被加载到处理器中。如果检测到该指令,则将该事件通知给模式转换单元。针对每个处理器单独地存在“转换检测”单元。“转换检测”单元不必被实施为容错,因为该“转换检测”单元是加倍的并且因此冗余地存在。另一方面,可设想的是,容错地并且因此单个地实施该单元,但是优选的是冗余的实施方案。
ModeSwitch(模式转换):两种模式之间的转换通过“转换检测”单元来触发。如果应进行从锁定模式到分离模式的转换,则两个“转换检测”单元检测到该转换,因为两个处理器在锁定模式下执行相同的程序代码。处理器1的“转换检测”单元在处理器2的“转换检测”单元之前1.5个时钟识别出这一点。“模式转换”单元借助等待信号使处理器1停止两个时钟。处理器2在1.5个时钟后同样被停止,但是仅仅停止半个时钟,以便使该处理器2与系统时钟同步。接着,针对其它组件,状态信号被转换到分离,并且这两个处理器继续工作。为了这两个处理器现在执行不同的任务,这些任务必须在程序代码中分离。这通过直接在转换到分离模式之后进行对处理器ID的读访问来实现。所读出的处理器ID对于这两个处理器中的每一个来说是不同的。如果现在对额定处理器ID进行比较,则接着利用条件跳转指令将相应的处理器引到其它程序位置。在从分离模式转换到锁定模式时,一个处理器或这两个处理器中的一个首先发现这一点。该处理器将执行程序代码,在该程序代码中包含有转换指令。现在,这通过“转换检测”单元来记录并且将这通知给模式转换单元。该模式转换单元使相应的处理器停止并且通过中断将同步的原望通知给第二处理器。第二处理器获得中断并且现在能够执行用于结束其任务的软件例程。现在该处理器同样跳到用于转换的指令所位于的程序位置。其“转换检测”单元现在同样将模式变换愿望用信号通知给模式转换单元。现在,在下一上升的系统时钟边沿去激活用于处理器1的等待信号,并且在1.5个时钟之后去激活用于处理器2的等待信号。现在,这两个处理器又以1.5个时钟的时钟偏移同步工作。
如果该系统处于锁定模式,则两个“转换检测”单元必须通知模式转换单元,这两个“转换检测”单元想要进入分离模式。如果仅仅一个单元实现了转换愿望,则由比较单元识别该错误,因为这两个处理器之一继续将数据提供给这些比较单元,并且这些比较器单元与被停止的处理器不一致。
如果这两个处理器都处于分离模式并且一个处理器没有转换回到锁定模式,则这能通过外部监视定时器来识别。在用于每个处理器的触发信号的情况下,监视定时器注意到,等待的处理器不再报告。如果对于该处理器系统来说仅仅存在一个监视定时器信号,则该监视定时器的触发只允许在锁定模式下实现。因此,监视定时器可能识别出,没有实现模式转换。模式信号作为双轨信号存在。在此,“10”代表锁定模式而“01”代表分离模式。在“ 00”和“11”的情况下,出现错误。
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个状态解决访问冲突并且能够分别针对另一处理器阻塞数据存储器。在这两个处理器同时希望访问时,所列出的顺序同时表示优先级排列(Priorisierung)。
-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如所提及的那样由转换愿望检测装置(IllOPDetect)、模式转换单元以及Iram和DramControl组成。
如上所述,本发明的核心在于数据分配单元DVE的通用工作方式(根据模式进行不同的数据分配并因此还选择运行模式)。
但是此外,DVE的所示出的特殊实施方式也解决了开头所述的任务。
Claims (27)
1.一种用于在具有至少两个计算单元的系统中从至少一个数据源分配数据的方法,其中包含有转换装置,通过该转换装置能够在该系统的至少两种运行模式之间进行转换,其中数据分配和/或数据源的选择取决于运行模式。
2.根据权利要求1所述的方法,其特征在于,所述转换通过控制信号、尤其是涉及至少一个计算单元的运行模式的模式信号来触发和/或表明。
3.根据权利要求2所述的方法,其特征在于,从外部针对所述机算单元产生所述控制信号。
4.根据权利要求1所述的方法,其特征在于,所述转换通过指令、尤其是描述不允许操作(i110p)的指令来触发和/或表明。
5.根据权利要求4所述的方法,其特征在于,所述指令由所述转换装置、尤其是模式转换单元产生。
6.根据权利要求1所述的方法,其特征在于,在对应于安全模式(F模式)的运行模式中相互比较两个计算单元的输入数据的一致性。
7.根据权利要求1所述的方法,其特征在于,在对应于安全模式(F模式)的运行模式中相互比较两个计算单元的输出数据的一致性。
8.根据权利要求1所述的方法,其特征在于,将待分配的数据转发给至少一个其它组件、尤其是计算单元,其中所述待分配的数据在转发之前被扩充错误发现码。
9.根据权利要求6所述的方法,其特征在于,将所述输入数据转发给至少一个其它组件、尤其是计算单元,其中所述输入数据在转发之前被扩充错误发现码。
10.根据权利要求7所述的方法,其特征在于,将所述输出数据转发给至少一个其它组件,其中所述输出数据在转发之前被扩充错误发现码。
11.根据权利要求6或7所述的方法,其特征在于,在缺少一致性时输出错误信号。
12.根据权利要求8至10之一所述的方法,其特征在于,在基于所述错误发现码发现错误时输出错误信号。
13.根据权利要求11或12所述的方法,其特征在于,只有在安全模式(F模式)中才输出错误信号。
14.根据权利要求1所述的方法,其特征在于,在性能模式和安全模式之间进行区分,并且在性能模式中进行两个计算单元的数据的优先级排列,并且根据该优先级排列顺序地接收和/或转发这些数据。
15.一种用于在具有至少两个计算单元的系统中从至少一个数据源分配数据的单元,其中包含有转换装置,通过该转换装置能够在该系统的至少两种运行模式之间进行转换,其中所述单元这样被构造,使得数据分配和/或数据源取决于运行模式。
16.根据权利要求15所述的用于分配数据的单元,其特征在于,第一运行模式对应于安全模式,在该安全模式中两个计算单元执行相同的程序,并且设置有比较装置,该比较装置比较在执行相同的程序时出现的状态的一致性。
17.根据权利要求15所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得在对应于安全模式(F模式)的运行模式中相互比较两个计算单元的输入数据的一致性。
18.根据权利要求15所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得在对应于安全模式(F模式)的运行模式中相互比较两个计算单元的输出数据的一致性。
19.根据权利要求15或17或18所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得将待分配的数据转发给至少一个其它组件、尤其是计算单元,其中所述待分配的数据在转发之前被扩充错误发现码。
20.根据权利要求15所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得所述单元在性能模式中进行两个计算单元的数据的优先级排列,并且根据该优先级排列顺序地接收和/或转发这些数据。
21.根据权利要求15所述的用于分配数据的单元,其特征在于,包含有延迟组件,该延迟组件根据两个计算单元在相应运行模式中的时钟偏移将超前的数据恰好延迟该时钟偏移。
22.根据权利要求15所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得所述单元从存储器中读取待分配的数据,然后将这些数据分配给计算单元。
23.根据权利要求15所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得通过状态自动机来控制所述数据的分配。
24.根据权利要求23所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得为每个计算单元设置有两个状态自动机。
25.根据权利要求23所述的用于分配数据的单元,其特征在于,所述单元这样被构造,使得设置有同步状态自动机和异步状态自动机。
26.一种具有按照权利要求15至25之一所述的用于分配数据的单元的系统。
27.根据权利要求26所述的系统,其特征在于,设置有在所述单元外部的监视电路,该监视电路在没有实现运行模式的预期的转换时识别出错误。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102004051964.1 | 2004-10-25 | ||
DE102004051950.1 | 2004-10-25 | ||
DE200410051952 DE102004051952A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem |
DE102004051937.4 | 2004-10-25 | ||
DE102004051992.7 | 2004-10-25 | ||
DE102004051952.8 | 2004-10-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101048754A true CN101048754A (zh) | 2007-10-03 |
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 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 | 用于在多处理器系统中进行同步的方法和设备 |
CN 200580036441 Pending CN101048745A (zh) | 2004-10-25 | 2005-10-25 | 在多处理器系统中进行时钟转换的方法和设备 |
CN 200580036538 Pending CN101048754A (zh) | 2004-10-25 | 2005-10-25 | 在多处理器系统中从至少一个数据源分配数据的方法和设备 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200580036461 Expired - Fee Related CN100585567C (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 | 用于在多处理器系统中进行同步的方法和设备 |
CN 200580036441 Pending CN101048745A (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)
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)
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 |
-
2004
- 2004-10-25 DE DE200410051952 patent/DE102004051952A1/de not_active Withdrawn
-
2005
- 2005-10-25 CN CN 200580036461 patent/CN100585567C/zh not_active Expired - Fee Related
- 2005-10-25 CN CN 200580036488 patent/CN100511167C/zh not_active Expired - Fee Related
- 2005-10-25 CN CN 200580036617 patent/CN100555233C/zh not_active Expired - Fee Related
- 2005-10-25 CN CN 200580036441 patent/CN101048745A/zh active Pending
- 2005-10-25 CN CN 200580036538 patent/CN101048754A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN101048749A (zh) | 2007-10-03 |
CN100555233C (zh) | 2009-10-28 |
CN100511167C (zh) | 2009-07-08 |
CN101048761A (zh) | 2007-10-03 |
CN101048745A (zh) | 2007-10-03 |
DE102004051952A1 (de) | 2006-04-27 |
CN100585567C (zh) | 2010-01-27 |
CN101048747A (zh) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4532561B2 (ja) | マルチプロセッサシステムにおける同期化のための方法および装置 | |
CN101048754A (zh) | 在多处理器系统中从至少一个数据源分配数据的方法和设备 | |
CN109614276B (zh) | 故障处理方法、装置、分布式存储系统和存储介质 | |
CN1928872A (zh) | 动态切换将事务数据写入盘中的模式的设备和方法 | |
US20090044048A1 (en) | Method and device for generating a signal in a computer system having a plurality of components | |
Chakravorty et al. | Proactive fault tolerance in large systems | |
CN1109976C (zh) | 监视计时器系统 | |
US20090119540A1 (en) | Device and method for performing switchover operations in a computer system having at least two execution units | |
CN101048737A (zh) | 执行计算机程序的方法、操作系统以及计算设备 | |
CN1269040C (zh) | 信息处理设备 | |
US20080313384A1 (en) | Method and Device for Separating the Processing of Program Code 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 | |
CN1993678A (zh) | 错误登记方法及相应的寄存器 | |
US20100011183A1 (en) | Method and device for establishing an initial state for a computer system having at least two execution units by marking registers | |
CN100511165C (zh) | 执行计算机程序的方法、操作系统以及计算设备 | |
Kottke et al. | A reconfigurable generic dual-core architecture | |
JP3746957B2 (ja) | 論理分割システムの制御方法 | |
CN1877536A (zh) | 嵌入式sram操作系统中断的实现方法 | |
CN103970685B (zh) | 一种微处理器中存储资源全局调度装置及调度方法 | |
JPS5847746B2 (ja) | マルチプロセツサシステム | |
DE102004051992A1 (de) | Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems | |
DE102004051950A1 (de) | Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |