CN101048747A - 延迟对多处理器系统的数据和/或指令的访问的方法和设备 - Google Patents

延迟对多处理器系统的数据和/或指令的访问的方法和设备 Download PDF

Info

Publication number
CN101048747A
CN101048747A CN 200580036461 CN200580036461A CN101048747A CN 101048747 A CN101048747 A CN 101048747A CN 200580036461 CN200580036461 CN 200580036461 CN 200580036461 A CN200580036461 A CN 200580036461A CN 101048747 A CN101048747 A CN 101048747A
Authority
CN
China
Prior art keywords
data
processor
visit
postpone
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200580036461
Other languages
English (en)
Other versions
CN100585567C (zh
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/zh
Application granted granted Critical
Publication of CN100585567C publication Critical patent/CN100585567C/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, 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, 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, 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)系统),而另一方面有在其处理器上执行不同数据的双处理器或者多处理器系统。
发明优点和任务
如果现在根据下面本发明的实施形式将这两种工作方式结合到双处理器或多处理器系统中(出于简单的原因现在还仅仅提及双处理器系统,但是下面的发明完全一样能被用于多处理器系统),则这两个处理器在性能模式下获得不同的数据并且在错误识别模式下获得相同的数据。
这种设备或者单元能够实现双处理器系统的有效运行,以致能在工作时在两个模式(即安全模式和性能模式)下进行转换。在此,进一步提及了处理器,但是这同样在概念上包括核或计算单元在内。
在实现特别是双处理器系统(双核)时,通常为每个处理器都设置一个高速缓存。一个高速缓存通常是不够的,因为该高速缓存在空间上看来必须被布置在两个处理器之间。由于高速缓存与两个处理器之间的长运行时间,因此这两个处理器仅仅能以受限的时钟频率工作。在此,在该系统中,高速缓存用作快速中间存储器,以便处理器不必总是从缓慢的主存储器中获取数据。为了能够实现这一点,在实现高速缓存时必须非常注意其访问持续时间。该访问持续时间由从高速缓存中获取数据的实际访问时间以及由将数据转交给处理器的时间来构成。如果高速缓存现在在空间上远离处理器放置,则数据的传送持续很长时间并且处理器不再能以其完整的时钟工作。由于定时问题,在双处理器系统中针对每个处理器通常设置一专用的高速缓存。
本发明的任务是说明一种方法和设备,通过该方法和设备能在双处理器系统中节约一个高速缓存,或在多处理器系统中节约冗余的高速缓存。通过利用时钟偏移来实现节约。
发明实施例和优点说明
为了解决该任务,本发明说明了一种用于延迟对具有第一和第二处理器的多处理器系统的数据和/或指令的访问的方法和设备,给该第一和第二处理器分配一存储单元,其中第二处理器有时钟偏移地工作,并且这样构造该设备,使得第一处理器访问存储单元,而第二处理器有时钟偏移地获得数据和/或指令。有利地,存储单元是高速缓存存储器,由此能够将该存储技术的优点与本发明的优点相结合。
适宜地,存储单元由至少一个处理器来寻址并且直接被耦合到寻址该存储单元的处理器上。
有利的是,包含延迟元件,并且这样构造该设备,使得通过延迟元件来使用时钟偏移,以便实现数据和/或指令从存储单元到第二处理器的运行时间的跨接。
此外有利的是,设置比较装置,通过该装置比较数据和/或指令,并且该比较装置在空间上靠近随后的处理器来布置。
适宜地,这样构造该设备,使得利用该时钟偏移,以便将第一处理器的比较数据引导到第二处理器。
有利的是,按照改进方案,当访问时,延迟写操作和读操作或者仅仅延迟读操作或者仅仅延迟写操作。
现在如果这两个处理器有时钟偏移地运行,则利用所建议的方法和相应的设备能够省去针对从处理器的第二高速缓存。
在双计算机系统中,存在两个处理器,这两个处理器能够执行相同或者不同的任务。双计算机系统的两个处理器能够时钟同步地或者时钟偏移地执行这些任务。如果双处理器系统被构造用于发现错误,则为了避免共模错误有利的是,这两个处理器有时钟偏移地工作。如果选择非整数的时钟偏移>1,则该方法是最有效的。也就是说,在第一应用形式中,这两个处理器或者核执行相同的任务。
如果这两个处理器执行不同的任务,则有利的是,这两个处理器能时钟边沿同步地运行,因为如存储器那样的外部组件能仅仅利用处理器的时钟来控制。如果现在采用例如能在这两种模式之间转换的双处理器系统,则因此优化到一工作模式。
根据本发明,通过以下方式来补偿这一点,即在双处理器系统(或多处理器系统)中,该双处理器系统能在如安全模式和性能模式那样的两个模式之间进行转换,这两个处理器在安全模式下有时钟偏移地工作而在性能模式下无时钟偏移地工作。在性能模式下没有时钟偏移是有利的,因为如存储器那样的外部组件大多以较低的时钟频率运行,并且将时钟边沿仅仅和处理器相配地来设计这些外部组件。此外,第二时钟偏移的处理器在每次存储器访问时会具有等待周期,因为该第二处理器晚半个时钟地控制外部组件。
通过对双处理器系统的时钟转换,在安全模式下取得错误识别中的最佳状态,而在性能模式下取得性能上的最大值。
因此,本发明有利地从一种用于延迟对具有第一和第二处理器的多处理器系统的数据和/或指令的访问的方法和设备出发,给该第一和第二处理器分配一存储单元,其中第一和第二处理器有时钟偏移地工作,并且这样构造该设备,使得两个处理器有时钟偏移地访问相同的存储单元。
适宜地,在此,当访问时,延迟写操作和读操作,其中该设备能在延迟访问与不延迟访问之间进行转换。除此之外,公开了一种具有这样的设备的多处理器系统。
在至少一个模式下,这两个处理器有时钟偏移地工作。该时钟偏移既能彼此相对偏移整个时钟又能彼此相对偏移部分时钟。另一变型方案是,在这两个模式下应用不同的时钟频率。在对安全性要求严格的模式下,例如将比在性能模式下更低的时钟用于进行干扰抑制。在此,这两种变型方案也能相互结合。
在此,第一工作模式与安全模式相对应,在该安全模式中,两个计算单元执行相同的程序和/或数据,并且设置比较装置,这些比较装置对在执行相同的程序时形成的状态比较一致性。
根据本发明的单元或根据本发明的方法能够在双处理器系统中最佳地实现这两个模式。
如果这两个处理器工作在错误识别模式(F模式),则这两个处理器获得相同的数据/指令,而如果这两个处理器工作在性能模式(P模式),则每个处理器都能访问该存储器。于是,该单元管理对仅仅简单存在的存储器或者外围设备的访问。
在F模式下,该单元接收处理器(在此称为主机)的数据/地址并且将这些数据/地址转发给如存储器、总线等的组件。第二处理器(在此称为从机)想要进行相同的访问。数据分配单元在第二端口收到这,但是不将该问询转发给其它组件。该数据分配单元将与主机相同的数据递交给从机并且比较这两个处理器的数据。如果这些数据不同,则数据分配单元(在此为DVE)通过错误信号表明这一点。因此,在总线/存储器上仅仅主机工作,而从机得到同一数据(如在双核系统中的运行方式)。
在P模式下,这两个处理器执行不同的程序部分。因此,存储器访问也是不同的。因此,DVE收到处理器的要求并且将结果/所要求的数据发还DVE已请求的处理器。现在如果这两个处理器想要同时访问一组件,则一处理器被置于等待状态,直到已使用另一处理器。
在这两个模式之间的转换以及因此数据分配单元的不同的工作方式都通过控制信号来实现。这能通过这两个处理器中的一个来生成或者能在外部被生成。
如果双处理器系统在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延迟正好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)和数据端子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)优选地由用于(通过I110PDetect)检测转换愿望的设备、模式转换单元以及Iram和Dram控制模块构成。
I110pDetect:两个模式之间的转换通过“转换检测(Switch-Detect)”单元来识别。该单元位于指令总线上的高速缓存与处理器之间并且察看,指令I110p是否被加载到处理器中。如果检测到指令,则将该事件通知给模式转换单元。针对每个处理器单独存在“转换检测”单元。“转换检测”单元不必容错地实施,因为该“转换检测”单元被加倍地并且因此冗余地存在。在另一方面,可考虑的是,容错地并且因此个别地实施该单元,但是优选的是冗余的实施方案。
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如所提及的那样由检测模式转换单元的转换愿望(I110PDetect)和Iram-和DramControl构成。
在图3中,现在以一例子示出时钟转换,以致在一个模式方面与其它模式相比实现时钟转换。在此,示出以下两种模式,即时钟clk和两个处理器时钟或者核时钟。
在一模式下,这两个处理器有时钟偏移地工作。该时钟偏移既彼此相对偏移整个时钟又彼此相对偏移部分时钟。另一变型方案是,在这两种模式中应用不同的时钟频率。在对安全性要求严格的模式下,例如将比在性能模式下更低的时钟用于抑制干扰。在此,这两个变型方案也能相互组合。
但是,此外所示出的特定实现方案也解决了开头所述的任务。
在实现尤其是双处理器系统(双核)时,对于每个处理器设置有一个高速缓存,如还示意性地在图4中所示的那样。一个高速缓存通常是不够的,因为该高速缓存在空间上看来必须被布置在两个处理器之间。由于高速缓存与两个处理器之间的长运行时间,因此这两个处理器仅仅能以受限的时钟频率工作。
高速缓存用作快速暂存器,以便处理器不必总是从缓慢的主存储器中获取数据。为了能够实现这一点,在实现高速缓存时必须非常注意其访问持续时间。该访问持续时间由从高速缓存中获取数据的实际访问时间和由将数据递交给处理器的时间构成。现在如果将高速缓存在空间上远离处理器放置,则传送数据持续很长,并且处理器不再能以其完整的时钟工作。由于定时问题,在双处理器系统中针对每个处理器通常设置专用的高速缓存。
如果这两个处理器现在有时钟偏移地运行,则现在利用在图5中所建议的方法能够省去从处理器的第二高速缓存。
高速缓存必需多个芯片面并且也必需多个电流。由此,该高速缓存也产生了许多废热,该废热必须被引出。现在如果能够省去高速缓存,则双处理器系统明显能更廉价地被实施。
在此所介绍的双计算机系统中,一个处理器为主机,而一个处理器为从机。主机首先执行数据并且因此也控制如存储器、高速缓存、DMA控制器等等的外围组件。从机以在此例如为1.5个时钟的时钟偏移来执行相同的数据。这也意味着,从机从共同的存储器中获得数据并且同样晚该持续时间地获得外部组件的数据。这两个处理器的输出数据(如存储器地址、数据等)被相互比较。为了能够相互比较数据,主机的结果同样必须被暂存1.5个时钟。下面描述这种示例系统。
根据图5,现在为了能够将一个高速缓存用于两个处理器,如在单个处理器中那样,指令和数据高速缓存直接被布置在主机上。因此,主机不必容忍在高速缓存与处理器之间的运行时间方面的性能损失。由于从机才晚1.5个时钟执行数据,所以现在利用该时间,以便将数据导向现在在空间上进一步远离高速缓存的第二处理器。
为此,在1.5个时钟的示例性时钟偏移的情况下,使用两个触发器,如在图6中所示出的那样。第一触发器利用主机的时钟来控制,第二触发器利用从机的时钟来控制。第一触发器直接被定位在源的输出端。第二触发器现在根据信号在这两个时钟之间的差内能经过的长度相应地更靠近从机来定位。这在1.5个时钟的时间偏移的情况下与半个时钟的运行时间长度相对应,而在2个时钟的时钟偏移的情况下与一个时钟的运行时间长度相对应。接着,第二触发器接收该信号。现在还考虑一次该信号在整个时钟期间能经过的距离。在图中,1.)这通过靠近接收器上布置来示出,2.)这与在时钟差中能经过的长度相对应,以及3.)这是在第二触发器之后的一个时钟中能经过的长度。

Claims (23)

1.一种用于延迟对具有第一和第二处理器的多处理器系统的数据和/或指令的访问的方法,给该第一和第二处理器分配一存储单元,其中第二处理器有时钟偏移地工作,并且这样构造设备,使得所述第一处理器访问所述存储单元,并且所述第二处理器有时钟偏移地获得数据。
2.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,所述时钟偏移通过延迟元件来使用,以便实现数据和/或指令从存储器到第二处理器的运行时间的跨接。
3.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,利用所述时钟偏移,以便将第一处理器的比较数据引导到第二处理器。
4.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,当访问时延迟写操作和读操作。
5.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,当延迟时仅仅延迟写操作。
6.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,当延迟时仅仅延迟读操作。
7.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,半数地预定所述时钟偏移。
8.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,整数地预定所述时钟偏移。
9.根据权利要求1所述的用于延迟对数据和/或指令的访问的方法,其特征在于,所述时钟偏移被预定为1.5个时钟。
10.一种用于延迟对具有第一和第二处理器的多处理器系统的数据和/或指令的访问的设备,给该第一和第二处理器分配一存储单元,其中第二处理器有时钟偏移地工作,并且这样构造所述设备,使得所述第一处理器访问所述存储单元,并且所述第二处理器有时钟偏移地获得数据和/或指令。
11.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,所述存储单元是高速缓存。
12.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,所述存储单元由至少一个处理器来寻址,并且所述存储器直接被耦合到寻址该存储单元的处理器。
13.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,包含延迟元件,并且这样构造所述设备,使得通过延迟元件来使用时钟偏移,以便实现数据和/或指令从存储单元到第二处理器的运行时间的跨接。
14.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,设置比较装置,通过所述比较装置比较数据和/或指令。
15.根据权利要求14所述的用于延迟对数据和/或指令的访问的设备,其特征在于,所述比较装置在空间上靠近随后的处理器来布置。
16.根据权利要求14所述的用于延迟对数据和/或指令的访问的设备,其特征在于,这样构造所述设备,使得利用所述时钟偏移,以便将第一处理器的比较数据引导到第二处理器。
17.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,这样构造所述设备,使得当访问时延迟写操作和读操作。
18.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,这样构造所述设备,使得当访问时仅仅延迟写操作。
19.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,这样构造所述设备,使得当访问时仅仅延迟读操作。
20.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,这样构造所述设备,使得半数地预定所述时钟偏移。
21.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,这样构造所述设备,使得整数地预定所述时钟偏移。
22.根据权利要求10所述的用于延迟对数据和/或指令的访问的设备,其特征在于,这样构造所述设备,使得所述时钟偏移被预定为1.5个时钟。
23.一种具有根据权利要求10至22之一所述的设备的多处理器系统。
CN 200580036461 2004-10-25 2005-10-25 延迟访问多处理器系统的数据和/或指令的方法和设备 Expired - Fee Related CN100585567C (zh)

Applications Claiming Priority (6)

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

Publications (2)

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

Family

ID=36129010

Family Applications (5)

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

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN 200580036538 Pending CN101048754A (zh) 2004-10-25 2005-10-25 在多处理器系统中从至少一个数据源分配数据的方法和设备

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN 200580036617 Expired - Fee Related CN100555233C (zh) 2004-10-25 2005-10-25 用于在多处理器系统中进行同步的方法和设备
CN 200580036488 Expired - Fee Related CN100511167C (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) CN101048754A (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
JP5796311B2 (ja) * 2011-03-15 2015-10-21 オムロン株式会社 制御装置およびシステムプログラム
JP5218585B2 (ja) * 2011-03-15 2013-06-26 オムロン株式会社 制御装置およびシステムプログラム
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
CN101048761A (zh) 2007-10-03
CN101048754A (zh) 2007-10-03
CN101048745A (zh) 2007-10-03
DE102004051952A1 (de) 2006-04-27
CN100585567C (zh) 2010-01-27
CN100511167C (zh) 2009-07-08
CN100555233C (zh) 2009-10-28
CN101048749A (zh) 2007-10-03

Similar Documents

Publication Publication Date Title
US7636813B2 (en) Systems and methods for providing remote pre-fetch buffers
US7584336B2 (en) Systems and methods for providing data modification operations in memory subsystems
EP1622020B1 (en) Segment level interconnect replacement in a memory subsystem
US8145868B2 (en) Method and system for providing frame start indication in a memory system having indeterminate read data latency
US7603526B2 (en) Systems and methods for providing dynamic memory pre-fetch
US7447948B2 (en) ECC coding for high speed implementation
JP2008518311A (ja) マルチプロセッサシステムにおいてクロックを切り替えるクロック切り替え方法、クロックを切り替えるユニットおよびクロックを切り替えるユニットを有するシステム
US8788879B2 (en) Non-volatile memory for checkpoint storage
CN101048747A (zh) 延迟对多处理器系统的数据和/或指令的访问的方法和设备
WO2009093680A1 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの同期方法
CN1547701A (zh) 通过响应高速缓存缺失而切换任务来提高基于高速缓存的嵌入式处理器的处理能力的方法和装置
EP2359372B1 (en) Error detection method and a system including one or more memory devices
CN1728073A (zh) 双列直插存储模块和计算机存储系统
US20090245008A1 (en) System and method for providing voltage power gating
WO2013095633A1 (en) Characterization of within-die variations of many-core processors
CN102722451A (zh) 采用物理地址预测访问高速缓存的装置
US20070294559A1 (en) Method and Device for Delaying Access to Data and/or Instructions of a Multiprocessor System
US20220012196A1 (en) Layered ready status reporting structure
Jang Error-correcting code aware memory subsystem
JPS5847746B2 (ja) マルチプロセツサシステム
WO2014020749A1 (ja) データ処理装置、プロセッサ、及び動作履歴記録方法
CN1624666A (zh) 访问存储器的方法

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