CN105765541B - 用于机动车的控制器 - Google Patents
用于机动车的控制器 Download PDFInfo
- Publication number
- CN105765541B CN105765541B CN201480066029.8A CN201480066029A CN105765541B CN 105765541 B CN105765541 B CN 105765541B CN 201480066029 A CN201480066029 A CN 201480066029A CN 105765541 B CN105765541 B CN 105765541B
- Authority
- CN
- China
- Prior art keywords
- processor cores
- coordination unit
- data
- controller
- task
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims description 50
- 238000000034 method Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 5
- 241001269238 Data Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/17—Embedded application
- G06F2212/173—Vehicle or other transportation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Microcomputers (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种用于机动车的控制器(10),其中,控制器(10)包括至少两个处理器内核(110,120,130)和一个全局存储器(300),其中,每个处理器内核(110,120,130)各包括一个本地存储器(112)和其中,每个处理器内核被设置用于仅仅访问它的自己的本地存储器和被设置成既不访问其余的处理器内核的本地存储器也不访问全局存储器(300),其中,一个协调单元(200)被设置用于从控制器(10)的全局存储器(300)中读取数据并且写入各个处理器内核(110,120,130)的本地存储器(112)中和从各个处理器内核(110,120,130)的本地存储器(112)中读取数据并且写入全局存储器(300)中和/或其余的处理器内核的本地存储器中。
Description
本发明涉及一种用于机动车的控制器。
现有技术
机动车的现代控制器大多具有一个多内核处理器。多内核处理器在此包括多个(至少两个)处理器内核(Core)。处理器内核或Core在此包括算术逻辑单元(ALU),它是用于执行任务、程序、计算命令等等的实际的电子计算机构。此外处理器内核包括一个本地存储器。这种本地存储器尤其构造成由一个或多个寄存器构成的寄存器组。控制器此外包括一个全局存储器。这个全局存储器例如可以包括闪存,NOR闪存或RAM存储器。外围模块,例如传感器,也可以包括在这个全局存储器中。
在机动车的控制器中通过各个处理器内核持续地执行过程。为了执行任务或过程,处理器内核尤其需要相应的程序编码和必要时输入数据。这种程序编码例如可以存储在全局存储器的闪存和/或NOR-闪存存储器中。输入数据例如可以是外围设备模块的探测的测量数据,例如发动机转速、温度、压力等等。
为了能够执行任务或过程,处理器内核首先加载相应的数据,尤其是程序编码和需要的输入数据,到它的本地存储器中,因为处理器内核可以以比对全局存储器显著较小的(和可预测的)存取时间对它的本地存储器进行存取(访问)。在它的本地存储器上处理器内核大多可以在一个时钟脉冲内存取,而在全局存储器上的存取大多需要在三个和十个时钟脉冲之间。
控制器和在其上进行的过程必须满足一定的安全要求,它们例如在ISO标准ISO26262中描述。此外控制器必须是具有实时能力的。因此它必须保证,在一个预定的最大执行时间内成功地执行过程。但是这个执行时间决定性地由本地存储器确定。依据哪个程序编码先前被执行或者是否例如出现中断的情况,或多或少地适配的数据处于本地存储器中。最大执行时间因此很难确定,因此需要大的安全附加费用。因此由于这种计划的"安全缓冲"每个处理器内核的可利用的计算能力被减小。
如果两个处理器内核同时访问相同的资源,尤其是全局存储器,那么可以出现访问冲突。当然这种访问冲突很少出现并且多核处理器的平均计算能力几乎不减小。但是为了能够保证实时能力,必须为最大执行持续时间("最坏情况")考虑这种访问冲突。但是这常常是很难或甚至是完全不可能的。相反安全附加费可能进一步增大,这又对可利用的计算能力产生负面影响。
因此值得希望的是提供一种改进的用于机动车的具有多核处理器的控制器。在此尤其应该以简单的方式保证控制器的实时能力和提高可利用的计算能力。
本发明的公开
按照本发明建议一种具有权利要求1的特征的用于机动车的控制器。有利的设计方案是从属权利要求以及以下的说明的内容。
控制器在此包括至少一个多核处理器或至少两个单核或多核处理器。控制器因此包括至少两个处理器内核。按照本发明,每个处理器内核仅仅可以访问它的自己的本地存储器。与常规处理器相反,各个处理器内核本地存储器既不可以对其余的处理器内核,也不可以对全局存储器进行访问(存取)。
按照本发明,相反,只有仅仅协调单元能够访问每个单个的处理器内核的本地存储器和全局存储器。协调单元在此情况下可以从控制器的全局存储器中读取数据和可以将数据写入各个处理器内核的本地存储器。另一方面,协调单元也可以从各个处理器内核的本地存储器中读取数据和将数据写入控制器的全局存储器中和/或写入其余的处理器内核的本地存储器中。
本发明的优点
每个处理器内核可以仅仅对它的自己的本地存储器进行访问(存取)。与常规控制器相反,各个处理器内核不能够对全局存储器或对其余的处理器内核的本地存储器进行访问(存取)。按照本发明,协调单元承担或协调在各个处理器内核的本地存储器和全局存储器之间的数据交换,以及在各个处理器内核的本地存储器之间的数据交换。因此可以防止出现访问冲突。按照本发明可以避免,不同的处理器内核同时访问全局存储器或同时访问全局存储器的相同的数据。
此外可以使各个处理器内核卸载,因为处理器内核不必再关心数据的传输和交换。在常规控制器中的处理器内核为了数据交换必须使用的时间和计算能力可以得到节省并且被用于处理器内核的实际的功能。与各个处理器内核相独立地,数据的交换尤其仅仅通过协调单元实施。因此,尤其实现通讯或数据交换和任务或过程的执行的分离。因此可以节省专门的编程,该编程指示相应的处理器内核实施数据交换或存储传输(转移)。由此尤其简化软件或程序编码,其在各个处理器内核上被处理或执行。因此尤其缩短用于在处理器内核上执行任务或过程(程序)需要的执行时间。因此可以提高处理器内核的计算能力。
控制器的全局存储器例如可以构造成闪存存储器或RAM-存储器。处理器内核的本地存储器尤其也可以分别由闪存存储器,NOR-闪存存储器或RAM-存储器构造。全局存储器也可以包括外围设备模块。这种外围设备模块尤其是传感器,执行器,模拟数字转换器,PWM发生器和/或定时器。这种外围设备模块尤其提供处理器内核尤其为了执行其功能或任务所需要的数据。因此术语"全局存储器"也应该包括这种外围设备模块。
处理器内核在此可以分别不同地设计。处理器内核例如可以分别构造成不同性能的通用内核(16,32,64位,带有或不带有浮点单元,等等)或专用内核(DSP,图像处理,FFT,模式识别,等等)。
通过本发明实现处理器内核总是能够非常快地访问数据,因为该数据存在于本地存储器中。这种访问可以与对高速缓存的访问相比较(相当)。在非嵌入式系统中(例如在个人计算机(PC)中)常常使用高速缓存替代本地存储器。相反,本地存储器大多仅仅在嵌入式系统中在控制器和其多核处理器中使用。高速缓存具有优点,它加速对每个任意的软件的数据访问,而不必专门地适配该软件。高速缓存的缺点在于它的内容和因此通过处理器内核对数据的存取时间的不可预测性:对数据的访问可以是非常快的,如果该数据已经位于高速缓存中的话(高速缓存命中)。但是对数据的访问也可以使用较长的时间,如果该数据最初必须加载到高速缓存中的话(高速缓存未命中(缓存丢失))。因此,在常规控制器中,常常为了有利于可预测性而放弃使用高速缓存。但是通过协调单元可以实现更快的数据访问(类似于高速缓存)。协调单元在此尤其同时产生用于全局和本地存储器的相应的地址和控制信号。由此数据可以直接地从本地存储器流动到全局存储器(并且反之亦然)。这尤其由此实现,协调单元(类似于高速缓存控制器)尤其在存储器之间传输。
通过本发明由此可以在全局存储器和本地存储器之间(或在本地存储器和全局存储器之间)快很多地交换数据,因为数据(类似于在高速缓存的情况下)被直接地、没有中间存储地传输(转移)。这种数据传输在此尤其不是通过处理器内核的(比较地)小的数据字长(通常32位)实施,而是尤其通过高速缓存或高速缓存控制器的大的数据字长(通常在64和256位之间)。由此可以使数据传输被加速直到一个数量级。
此外通过本发明可以克服高速缓存通常带有的缺点。协调单元在控制器中的实施比高速缓存的实施的费用显著更小和成本更有利。相反,高速缓存在所谓的高速缓存未命中情况下(所有的高速缓存没有成功地被搜索,也就是说,相应的数据在高速缓存中不存在)才加载数据并且高速缓存的时间特性是很难预测的,而协调单元高效地并且前瞻性地将数据加载到全局或本地存储器中。相反,通过协调单元可以容易得很多地预测时间特性并且可以保证控制器或多核处理器的实时能力。
每个处理器内核由此可以如在高速缓存上一样快速或近似如此快速地访问它的本地存储器。此外避免在常规控制器中在访问全局RAM-和闪存存储器时可能出现的等待时间。访问冲突和由此限定的等待时间也得到避免。由此避免不可预测的延迟(尤其是通过同时访问被划分的资源,即访问全局存储器)。由此可以精确地确定任务或过程或软件的最大执行持续时间。各个处理器内核的全部计算能力可以被用于执行该任务或过程或软件。此外可以由此保证确定的执行持续时间和保证实时能力。此外可以缩短保证的执行时间。安全附加费得以避免。
每个处理器内核仅仅可以对它的自己的本地存储器访问,各个处理器内核(完全)被封装。由此各单个处理器内核不能够干扰其余的系统或其余的处理器内核。由此可以满足按照ISO26262要求的其它的安全要求,所谓的"干扰的自由度(无干扰性)(Freedom ofInterference)"。按此保证软件构件不相互干扰或者(在处理器内核上的)任务的执行不干扰(在另一个处理器内核上的)另一个任务的执行。通过协调单元在构想上给出这种"干扰的自由度"。
尤其地,协调单元实施数据转换或数据的变换。协调单元在此尤其可以以小字节序格式读取数据和以大字节序格式写入数据(和反向实施)。此外协调单元尤其可以作为浮点值(加倍,浮动)读取数据和作为整数值(整数)写入数据(和反向实施)。数据转换在此可以在协调单元中作为数据传输的参数(即数据的读和写)或专门的数据传输操作来实现。
协调单元尤其可以通过控制器的通讯基础设施访问控制器的全局存储器。协调单元尤其通过分开的或联合的总线访问全局存储器。此外协调单元尤其通过单一总线访问处理器内核的本地存储器。尤其地,在此不需要交叉开关矩阵或耦合区。这个总线在此尤其具有高的通过量。由于数据通过协调单元尤其以大块的方式始终在一个方向上被传输,因此该总线尤其允许具有高的等待时间。由此可以显著简化实施。为了满足安全要求和在通过协调单元传输和存储数据时识别和必要时修正错误,这些总线以及全局存储器和/或本地存储器尤其可以借助于错误修正法,尤其借助于错误修正码(ECC),保险。
数据的读和写最好通过协调单元针对特定应用地实施,尤其按照一定的流程表。对于协调单元在此一定的流程表是已知的,各个处理器内核按照该流程表执行确定的任务或实施过程。通过该流程表,对于协调单元已知的是,在哪个时间点哪个处理器内核需要哪些数据,也就是说,在哪个时间点哪些数据必须被写入相应的处理器内核的本地存储器中。另一方面,对于协调单元由此已知的是,在哪个时间点哪个处理器内核提供数据,也就是说,在哪个时间点可以从相应的处理器内核的本地存储器中读取数据。对于该流程表,尤其考虑确定的任务或确定的过程的周期。这些周期在此是时间间隔,在该时间间隔中通过处理器内核执行任务或过程。该周期由此描述各个任务或过程的执行时间点。但是任务或过程不是必须在固定的周期内执行。备选地,对于协调单元,任务或过程的一个不同的、可在时间上预测的执行也可以是已知的。
协调单元由此优选时间驱动地实施数据的读和写,此外尤其相应于各个任务或各个过程的周期或执行时间点。由此协调单元与各个处理器内核相独立地实施数据的读和写。协调单元例如可以在定期的时间间隔中,在已知的周期性的执行确定的任务或过程之前,将数据从全局存储器写入一个处理器内核的本地存储器中。为了使数据的时间驱动的读和写与执行的任务或过程的周期相一致,协调单元和处理器内核尤其具有公共的时基。这个公共的时基例如可以通过一个公共的时钟(同步脉冲)(Clock)或一个合适的同步机构实现。但是协调单元也可以具有自己的时钟。
在一个有利的设计方案中,协调单元从全局存储器中读取要执行的任务的程序编码和/或为了一个要执行的任务所需要的输入数据。协调单元将该读取的程序编码或该读取的输入数据作为数据写入处理器内核的本地存储器。一个任务在此是一件软件。为了执行或处理一个任务,需要输入数据。输入数据在此尤其是外围设备模块,尤其传感器的探测的测量数据,例如发动机转速、温度和/或压力。
与常规控制器不同,处理器内核不必自动地将程序编码和输入数据从全局存储器加载到它的本地存储器中,如果这个处理器内核应该执行一个相应的任务的话。取而代之地,从外部通过协调单元对该处理器内核输入相应的程序编码/输入数据。
协调单元在此可以将程序编码分块地写入本地存储器中或也可以同时写入多个任务的程序编码。协调单元尤其可以将用于下一些由相应的处理器内核要执行的任务的程序编码写入相应的本地存储器中。协调单元也可以将持续的输入数据不定时地写入本地存储器,例如如果始终被变换:哪个处理器内核应该执行哪些任务。
备选地,要执行的任务的程序编码可以已经被存储在处理器内核的本地存储器中。这个程序编码例如可以在控制器的初始化阶段期间被写入本地存储器中。也可能的是,来自任务的前一个执行中的程序编码还被存储在本地存储器中。在此也可能的是,程序编码还被存储在处理器内核的本地的闪存存储器中或(非易失的)RAM-存储器中。在这些情况下,协调单元不必重新地从全局存储器中读取程序编码并写入本地存储器,而是仅仅指示处理器内核执行该任务。
如果相应的程序编码已经存储在处理器内核的本地存储器中,协调单元也可以仅仅将输入数据存储到本地存储器中。协调单元可以在此例如从控制器的全局闪存存储器或全局RAM-存储器中或直接地从各个外围设备模块,尤其从各个传感器中读取输入数据。
在另一个优选的设计方案中,协调单元从这个本地存储器中读取处理器内核在执行一个任务之后存储到它的本地存储器中的输出数据。协调单元将该读取的输出数据作为数据写入全局存储器中和/或作为数据写入其余的处理器内核之一的本地存储器中。通过任务的执行,处理器内核确定相应的输出数据。初始数据例如可以是喷射时间和/或喷射量。
处理器内核的输出数据又可以用作一个其它的处理器内核的输入数据或由一个另外的处理器内核进一步处理。在这种情况下,协调单元将该输出数据写入相应的处理器内核的本地存储器中。
与常规控制器不同,各个处理器内核在执行一个任务期间或之后不是自动地将输出数据写入全局存储器中或另一个处理器内核的本地存储器中。与常规控制器不同,也不允许处理器内核,借助于控制信号形式的输出数据直接地控制外围设备模块,例如执行器。相反,相应的输出数据从外部通过协调单元调取。
一旦处理器内核成功地执行一个任务或者已经还在该任务被执行期间,但是输出数据已经被写入本地存储器中,协调单元可以读取输出数据。在这些任务被执行之后,协调单元例如也可以分块地读取多个任务的输出数据。分块的读取被多次地执行的任务的输出数据也是可设想的。
通过处理器内核执行一个任务的结束例如可以通过时间进展来估计或预测。处理器内核也可以将任务的执行的结束发信号到协调单元,例如通过一个中断或通过在它的本地存储器中设置一个日期。
输出数据尤其可以是控制信号,用于控制外围设备模块或包含如何控制外围设备模块的信息。在这种情况下,协调单元相应于这些控制信号控制外围设备模块。
协调单元最好为各个处理器内核分派要执行的任务和/或指示各个处理器内核执行确定的任务。协调单元由此尤其协调,哪些任务由哪些处理器内核执行。协调单元尤其在此按照上述流程协调各个任务。协调单元在此尤其通知各个处理器内核相应的任务的相应的启动地址。此外,协调单元尤其通知各个处理器内核,它们何时应该开始执行各个任务。这例如可以通过在相应的处理器内核处的一个中断或通过在处理器内核中设置定时器来实现。协调单元也可以指示相应的处理器内核直接在成功执行当前的任务之后开始一个新的任务。
协调单元尤其这样地将要执行的任务分派给各个处理器内核,使任务或相应的软件构件从不同的源在不同的处理器内核上进行执行。在此对于每个软件构件,相应的输入数据和输出数据被指定,以便协调单元可以将输入数据正确地存储在相应的处理器内核的本地存储器中和相应地读取输出数据。协调单元在此尤其知晓各个任务或软件构件的执行持续时间。软件构件可以在一种符合目的的程序语言中在使用任意的工具链下形成。软件构件尤其作为完成的程序编码或目标码提供。该程序编码在此不必是可本地化的(可适配于确定的存储器地址),因为每个处理器内核具有它的自己的本地存储器和由此具有它的自己的地址空间。
由于协调单元可以快速转换或变换数据,因此数据尤其可以不同地编码。由此使用浮点的更现代的软件构件可以尤其与使用整数的较老的软件构件共同工作。协调单元在此实施需要的数据转换和由此直观地实施各个数据的“转化”。由此实现,将不同编码的软件构件迁移到更现代的结构上并且利用更现代的程序语言和工具链。备选地,也可以有利地持久地平行地使用不同的结构。
优选地,协调单元指示多个处理器内核执行一个确定的任务。协调单元接着相互比较这些处理器内核的各个输出数据。备选地或附加地,协调单元指示一个处理器内核多次地执行一个确定的任务。在这种情况下,协调单元也相互比较该处理器内核的多次的执行的各个输出数据。协调单元也可以借助于多数决定法对这些输出数据进行相互比较。任务的这种冗余的执行尤其在高的安全要求情况下是符合目的的。
协调单元最好控制各个处理器内核。在此过程中协调单元可以将各个处理器内核暂停,复位,停止运行,进行测试,置于节电模式和/或改变各个处理器内核的时钟频率。协调单元由此可以有利地控制每一个处理器内核,而在此不影响或干扰其余的处理器内核。协调单元尤其可以在定期的时间间隔下测试各个处理器内核。"受怀疑的"处理器内核,其可能具有缺陷,可以通过协调单元被停止运行。在这种情况下,协调单元可以将分派给这个被停止运行的处理器内核的任务分派给另外的处理器内核。该任务在此尤其可以分派给空闲的备用的处理器内核并且由其执行。协调单元此外可以在停止运行的处理器内核上运行一个自身测试(BIST)。
协调单元优选可以在各个处理器内核中也触发一个或不同的中断。由此例如可以通过协调单元显示延迟或存储器访问错误。中断也可以用于一个流程:一旦到处理器内核的本地存储器中的数据的写入结束,协调单元可以通过一个中断指示处理器内核执行相应的任务。对一个数据传输,即数据的读和写,尤其可以分派在时钟脉冲中的最大持续时间。如果数据传输在这个时间内没有结束,协调单元在相应的处理器内核中触发一个中断。此外对一个数据传输操作尤其可以分派在时钟脉冲中的最小持续时间。如果数据传输在一个时间内结束,该时间短于这个最小持续时间,那么等待其余的时钟脉冲。此外协调单元尤其实现一种模等待操作。由此例如可以在数据传输的可改变的持续时间中在一个确定的周期上同步。协调单元此外也可以包含一种绝对时间等待操作,由此等待一个确定的数量的时钟脉冲。
优选地,处理器内核的各个本地存储器分别被划分成不同的存储体。协调单元控制或确定或调整相应的处理器内核允许访问哪些存储体。协调单元由此可以随时访问一个处理器内核的那些存储体, 即该处理器内核不允许访问的那些存储体,而在此不影响该处理器内核的工作。由此处理器内核的执行时间保持为是可预测的。在处理器内核在其允许访问的那些存储体上工作和执行任务期间,协调单元可以在其余的存储体上已经准备下一些任务并且尤其在这些其余的存储体中已经存储该任务的程序编码和/或输入数据,这些任务作为下一些的任务应该由相应的处理器内核执行。由此不需要昂贵的双口RAM。每个处理器内核尤其具有至少四个存储体。但是,依据各个处理器内核的应用领域,存储体的数量和大小也可以针对各个处理器内核不同地选择。
在本发明的一个优选设计方案中,协调单元作为处理器内核的一部分构造。在此多个处理器内核尤其可以各具有一个协调单元。此外每个处理器内核尤其具有自己的,单独的协调单元。这些单独的协调单元分别协调相应的分配的处理器内核的数据的读和写。各个协调单元相互处于连接中并且相互协调,以便防止多个协调单元同时访问相同的数据和由此防止访问冲突。
备选地或附加地,协调单元优选由分开的部件或硬件元件构造。协调单元尤其可以由控制器或也由自己的处理器内核构造。作为控制器的一种设计方案尤其适用于具有主机和从机的总线系统中。在此也可以存在这些协调单元中的多个协调单元。这种协调单元在此尤其保证最高的数据读取速度和数据写入速度,最高的安全和最高的可用性。
这种由硬件元件构造的协调单元尤其具有用于读和写数据的主机口和此外尤其具有自己的本地存储器。此外协调单元尤其具有至各个处理器内核的一个或多个(主机)接口,尤其每个处理器内核各具有一个或多个从机口。协调单元尤其也可以具有计数器,其探测自启动协调单元起的时钟脉冲数量。
此外,协调单元尤其具有符合目的的逻辑电路或逻辑单元,尤其算术逻辑单元(ALU)。借助于这种逻辑电路,协调单元可以执行符合目的的编程(程序)。术语"协调单元"应该尤其也包括这种编程或一般地一种软件,其在相应的硬件元件上被执行。术语"协调单元"应该由此不仅包括相应的硬件元件而且包括相应的执行的软件。
这种编程在此尤其被存储在协调单元的本地存储器中。备选地,编程也可以存储在控制器的全局存储器中或处理器内核的本地存储器中。编程尤其顺序地由协调单元实施。编程尤其用于配置协调单元。
类似于处理器内核,协调单元以一种时钟工作。对于每个时钟,协调单元尤其可以处理一个操作或休眠。该时钟在此可以是处理器时钟,但是也可以与其不同步,例如一种通讯媒介的时钟。协调单元的编程尤其可以是一个由在任意的顺序下的数据传输操作,等待操作和转移操作构成的列表(清单)。数据传输操作在此尤其包含一个读地址,从该读地址读出数据和一个存储地址,在该存储地址处应该写入数据。此外,数据传输操作包含应该传输的数据字的数量以及可选择地用于数据重新编码的指示。等待操作尤其包含一个数值,它指出多少时钟脉冲时协调单元应该休眠。一个特殊值(例如零)在此尤其表示"暂时休眠"的意思。转移操作尤其包含一个存储地址,它指出,该操作处于何处,该操作作为下一个操作应该被协调单元处理。
本发明的其它的优点和设计方案由说明书和附图得出。
显然上述的和以下还要解释的特征不仅可以在各个给出的组合中使用,而且可以在其它的组合中或者单独地使用,而不脱离本发明的范围。
本发明借助于实施例在附图中示意示出并且在以下在参照附图下进行详细描述。
附图简述
图1示意示出按照本发明的用于机动车的控制器的一个优选设计方案。
本发明的实施方式
在图1中示意示出按照本发明的用于机动车的控制器的一个优选设计方案并且用10表示。
控制器10在此包括多核处理器100。多核处理器100在本例中包括三个处理器内核110,120和130。处理器内核的结构以下示例性地针对处理器内核110解释。其余的处理器内核120和130在此尤其类似于处理器内核110设计。
处理器内核110具有算术逻辑单元(ALU)111和本地存储器112。本地存储器112在此尤其可以由本地闪存或RAM-存储器构造。本地存储器112尤其被划分成存储体112a至112d。
控制器10此外具有全局存储器300。这个全局存储器可以包括闪存存储器310,RAM-存储器320,以及外围设备330。外围设备300在此包括外围设备模块331至334,它们例如可以由传感器,执行器,模拟数字转换器,PWM发生器或定时器构造成。
处理器内核110,120和130中的每个仅仅可以访问它的自己的本地存储器并且既不可以访问另一个处理器内核的本地存储器,也不可以访问全局存储器300。因此处理器内核110例如仅仅可以访问它的自己的本地存储器112和仅仅从这个本地存储器中读取数据或仅仅将数据写入这个本地存储器中。处理器内核110既不可以访问其余的处理器内核120和130的本地存储器,也不可以访问全局存储器300。
控制器10此外具有协调单元200。这个协调单元200尤其构造成分开的(单独的)硬件元件,在其上运行相应的软件。协调单元200分别通过一个总线210及220与多核处理器100的处理器内核110,120和130和与全局存储器300联网。
协调单元200指示各个处理器内核110,120,130执行不同的任务。在此,协调单元200首先从全局存储器300的闪存存储器310或RAM-存储器320中读取相应的程序编码并且将这些数据写入应该执行该任务的处理器内核的本地存储器中。在本例中,协调单元200将程序编码写入处理器内核110的本地存储器112中。
协调单元200将程序编码在此写入本地存储器112的确定的存储体中,例如写入存储体112a中。此外协调单元200读取处理器内核110为了执行该任务需要的输入数据。例如这些输入数据是在外围设备330中的传感器331探测的测量值。协调单元200读取这些测量值和将它们作为数据例如存储到处理器内核110的本地存储器112的存储体112b中。必要时,协调单元200在此实施在读取的和要写入的数据之间的转换。
协调单元200接着尤其借助于一个中断指示处理器内核110执行该任务。处理器内核110的ALU111借助于在存储体112b中存储的输入数据执行在存储体112a中存储的程序编码。在此情况下产生输出数据,处理器内核110将该输出数据例如也存储在存储体112b中。
协调单元200从存储体112b中读取这些输出数据和将它们例如作为数据存储在全局存储器300的闪存存储器310或RAM-存储器320中。
Claims (9)
1.用于机动车的控制器(10),其中,
-控制器(10)包括至少两个处理器内核(110,120,130)和一个全局存储器(300),其中,
-每个处理器内核(110,120,130)各包括一个本地存储器(112)和其中,每个处理器内核被设置用于仅仅访问它的自己的本地存储器和被设置成既不访问其余的处理器内核的本地存储器也不访问全局存储器(300),
其中,一个协调单元(200)被设置用于,
-按照一个对协调单元(200)存在的流程表从控制器(10)的全局存储器(300)中读取数据并且写入各个处理器内核(110,120,130)的本地存储器(112)中和
-按照所述对协调单元(200)存在的流程表从各个处理器内核(110,120,130)的本地存储器(112)中读取数据并且写入全局存储器(300)中和/或其余的处理器内核的本地存储器中。
2.根据权利要求1所述的控制器(10),其中,协调单元(200)被设置用于,针对特定应用地和/或时间驱动地实施数据的读和写。
3.根据权利要求1或2所述的控制器(10),其中,协调单元(200)被设置用于,从全局存储器(300)中读取要执行的任务的程序编码和/或用于要执行的任务需要的输入数据并且作为数据写入处理器内核(110,120,130)的本地存储器(112)中。
4.根据权利要求1所述的控制器(10),其中,协调单元(200)被设置用于,将一个处理器内核(110)在执行一个任务之后在它的本地存储器(112)中存储的输出数据从这个本地存储器(112)中读取并且作为数据写入全局存储器(300)中和/或作为数据写入其余的处理器内核(120,130)之一的本地存储器中。
5.根据权利要求1所述的控制器(10),其中,协调单元(200)被设置用于,对各个处理器内核(110,120,130)分派要执行的任务和/或指示各个处理器内核(110,120,130)执行确定的任务。
6.根据权利要求1所述的控制器(10),其中,协调单元(200)被设置用于,指示多个处理器内核(110,120,130)执行一个确定的任务和将这些处理器内核(110,120,130)的各个输出数据相互比较和/或其中,协调单元被设置用于,指示一个处理器内核多次地执行一个确定的任务和将这个多次的执行的各个输出数据通过这个处理器内核相互比较。
7.根据权利要求1所述的控制器(10),其中,协调单元(200)被设置用于,控制各个处理器内核(110,120,130)并且在此过程中将各个处理器内核(110,120,130)暂停,复位,停止运行,进行测试,置于节电模式,在各个处理器内核(110,120,130)中触发一个中断和/或改变各个处理器内核(110,120,130)的时钟频率。
8.根据权利要求1所述的控制器(10),其中,处理器内核(110,120,130)的各个本地存储器(112)分别被划分成不同的存储体(112a,112b,112c,112d)和其中,协调单元(200)被设置用于控制相应的处理器内核(110)允许访问哪个存储体(112a,112b,112c,112d)。
9.根据权利要求1所述的控制器(10),其中,协调单元(200)构造成一个处理器内核的一部分或构造成一个单独的硬件元件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102013224702.8A DE102013224702A1 (de) | 2013-12-03 | 2013-12-03 | Steuergerät für ein Kraftfahrzeug |
DE102013224702.8 | 2013-12-03 | ||
PCT/EP2014/071872 WO2015082109A1 (de) | 2013-12-03 | 2014-10-13 | Steuergerät für ein kraftfahrzeug |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105765541A CN105765541A (zh) | 2016-07-13 |
CN105765541B true CN105765541B (zh) | 2018-12-14 |
Family
ID=51691053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480066029.8A Active CN105765541B (zh) | 2013-12-03 | 2014-10-13 | 用于机动车的控制器 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10657039B2 (zh) |
EP (1) | EP3077912B1 (zh) |
JP (1) | JP6321807B2 (zh) |
KR (1) | KR102269504B1 (zh) |
CN (1) | CN105765541B (zh) |
DE (1) | DE102013224702A1 (zh) |
TW (1) | TWI651652B (zh) |
WO (1) | WO2015082109A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6327994B2 (ja) * | 2014-07-28 | 2018-05-23 | ルネサスエレクトロニクス株式会社 | 制御システムおよび半導体装置 |
DE102015218589A1 (de) | 2015-09-28 | 2017-03-30 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Betreiben eines Many-Core-System |
DE102015223331A1 (de) * | 2015-11-25 | 2017-06-01 | Robert Bosch Gmbh | Mikrocontroller |
DE102016211386A1 (de) * | 2016-06-14 | 2017-12-14 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Recheneinheit |
KR102004060B1 (ko) * | 2016-07-21 | 2019-07-25 | 바이두 유에스에이 엘엘씨 | 자율 주행 차량을 작동하는 컴퓨팅 노드들 사이의 효율적 통신 |
DE102016223341A1 (de) * | 2016-11-24 | 2018-05-24 | Robert Bosch Gmbh | Integrierte Schaltung mit Hardwareprüfeinheit zum Überprüfen von ausgewählten Speicherzugriffen |
FR3065550A1 (fr) * | 2017-09-29 | 2018-10-26 | Continental Automotive France | Procede d'echange protege de donnees entre deux taches |
DE102017220764A1 (de) | 2017-11-21 | 2019-05-23 | Audi Ag | Ein-Chip-System für ein Fahrzeug |
IT201900018362A1 (it) * | 2019-10-10 | 2021-04-10 | Texa Spa | Metodo e sistema di controllo di almeno due motori elettrici di trazione di un veicolo |
US11288070B2 (en) | 2019-11-04 | 2022-03-29 | International Business Machines Corporation | Optimization of low-level memory operations in a NUMA environment |
DE102020205146A1 (de) | 2020-04-23 | 2021-10-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorrichtung und Verfahren zur Steuerung eines technischen Systems |
US11305810B2 (en) | 2020-04-24 | 2022-04-19 | Steering Solutions Ip Holding Corporation | Method and system to synchronize non-deterministic events |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1209573A2 (en) * | 2000-11-22 | 2002-05-29 | Kabushiki Kaisha Toshiba | Multiprocessor system and control method thereof |
JP2009505186A (ja) * | 2005-08-08 | 2009-02-05 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | コンピュータシステムの機能監視方法および機能監視装置 |
CN101405704A (zh) * | 2006-03-23 | 2009-04-08 | 国际商业机器公司 | 信息处理系统中的存储器压缩 |
DE102009029642A1 (de) * | 2009-09-21 | 2011-03-24 | Robert Bosch Gmbh | Verfahren zur Bearbeitung von Informationen und Aktivitäten in einem steuer- und/oder regelungstechnischen System |
DE102012207215A1 (de) * | 2012-04-30 | 2013-10-31 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems, vorzugsweise eines Motorsteuersystems eines Kraftfahrzeuges |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3039953B2 (ja) * | 1989-04-28 | 2000-05-08 | 株式会社日立製作所 | 並列化装置 |
JPH08249196A (ja) * | 1995-03-13 | 1996-09-27 | Mitsubishi Electric Corp | タスクの冗長化実行方式 |
JPH08314744A (ja) * | 1995-05-18 | 1996-11-29 | Hitachi Ltd | フォールトトレラントシステム |
JP4394298B2 (ja) * | 2001-02-20 | 2010-01-06 | 日本電気株式会社 | マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム |
JP3884990B2 (ja) * | 2002-04-26 | 2007-02-21 | 富士通株式会社 | マルチプロセッサ装置 |
JP4025260B2 (ja) * | 2003-08-14 | 2007-12-19 | 株式会社東芝 | スケジューリング方法および情報処理システム |
JP4620974B2 (ja) | 2004-06-30 | 2011-01-26 | 富士通株式会社 | 表示パネル用制御装置及びそれを有する表示装置 |
US9712486B2 (en) * | 2006-09-25 | 2017-07-18 | Weaved, Inc. | Techniques for the deployment and management of network connected devices |
US8266393B2 (en) * | 2008-06-04 | 2012-09-11 | Microsoft Corporation | Coordination among multiple memory controllers |
US8134852B2 (en) * | 2008-10-14 | 2012-03-13 | Mosaid Technologies Incorporated | Bridge device architecture for connecting discrete memory devices to a system |
US8312219B2 (en) * | 2009-03-02 | 2012-11-13 | International Business Machines Corporation | Hybrid caching techniques and garbage collection using hybrid caching techniques |
FR2946442B1 (fr) * | 2009-06-05 | 2011-08-05 | Airbus France | Procede et dispositif de chargement et d'execution d'instructions a cycles deterministes dans un systeme avionique multi-coeurs ayant un bus dont le temps d'acces est non predictible |
US20120246650A1 (en) * | 2009-09-21 | 2012-09-27 | Bernd Mueller | Method for processing information and activities in a control and/or regulating system with the aid of a multi-core processor |
KR20110066448A (ko) | 2009-12-11 | 2011-06-17 | 삼성에스디아이 주식회사 | 리튬 이차전지 |
WO2012046266A1 (ja) | 2010-10-05 | 2012-04-12 | トヨタ自動車株式会社 | 蓄電素子の状態推定方法および状態推定装置 |
US9804995B2 (en) * | 2011-01-14 | 2017-10-31 | Qualcomm Incorporated | Computational resource pipelining in general purpose graphics processing unit |
DE102012207212A1 (de) * | 2012-04-30 | 2013-10-31 | Bizerba Gmbh & Co. Kg | Verfahren zur Darstellung von Inhaltselementen auf einer Anzeigeeinrichtung, insbesondere einer Waage |
US9202047B2 (en) * | 2012-05-14 | 2015-12-01 | Qualcomm Incorporated | System, apparatus, and method for adaptive observation of mobile device behavior |
DE102012023395A1 (de) * | 2012-11-29 | 2014-06-05 | Eads Deutschland Gmbh | Schnittstellenvorrichtung und Verfahren zum Austauschen von Nutzdaten |
-
2013
- 2013-12-03 DE DE102013224702.8A patent/DE102013224702A1/de not_active Withdrawn
-
2014
- 2014-10-13 JP JP2016536181A patent/JP6321807B2/ja active Active
- 2014-10-13 CN CN201480066029.8A patent/CN105765541B/zh active Active
- 2014-10-13 EP EP14783847.8A patent/EP3077912B1/de active Active
- 2014-10-13 US US15/100,393 patent/US10657039B2/en not_active Expired - Fee Related
- 2014-10-13 WO PCT/EP2014/071872 patent/WO2015082109A1/de active Application Filing
- 2014-10-13 KR KR1020167014486A patent/KR102269504B1/ko active IP Right Grant
- 2014-12-01 TW TW103141540A patent/TWI651652B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1209573A2 (en) * | 2000-11-22 | 2002-05-29 | Kabushiki Kaisha Toshiba | Multiprocessor system and control method thereof |
JP2009505186A (ja) * | 2005-08-08 | 2009-02-05 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | コンピュータシステムの機能監視方法および機能監視装置 |
CN101405704A (zh) * | 2006-03-23 | 2009-04-08 | 国际商业机器公司 | 信息处理系统中的存储器压缩 |
DE102009029642A1 (de) * | 2009-09-21 | 2011-03-24 | Robert Bosch Gmbh | Verfahren zur Bearbeitung von Informationen und Aktivitäten in einem steuer- und/oder regelungstechnischen System |
DE102012207215A1 (de) * | 2012-04-30 | 2013-10-31 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems, vorzugsweise eines Motorsteuersystems eines Kraftfahrzeuges |
WO2013164224A2 (de) * | 2012-04-30 | 2013-11-07 | Robert Bosch Gmbh | Verfahren und vorrichtung zur überwachung von funktionen eines rechnersystems, vorzugsweise eines motorsteuersystems eines kraftfahrzeuges |
Also Published As
Publication number | Publication date |
---|---|
WO2015082109A1 (de) | 2015-06-11 |
US20160299839A1 (en) | 2016-10-13 |
JP6321807B2 (ja) | 2018-05-09 |
DE102013224702A1 (de) | 2015-06-03 |
EP3077912A1 (de) | 2016-10-12 |
KR20160093621A (ko) | 2016-08-08 |
JP2017502389A (ja) | 2017-01-19 |
TWI651652B (zh) | 2019-02-21 |
US10657039B2 (en) | 2020-05-19 |
EP3077912B1 (de) | 2018-08-08 |
KR102269504B1 (ko) | 2021-06-28 |
TW201533665A (zh) | 2015-09-01 |
CN105765541A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105765541B (zh) | 用于机动车的控制器 | |
JP7313381B2 (ja) | ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング | |
CN114003288A (zh) | 用于将比原生支持的数据宽度更宽的数据原子地存储到存储器的处理器、方法、系统和指令 | |
US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
US8190825B2 (en) | Arithmetic processing apparatus and method of controlling the same | |
US10019283B2 (en) | Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread | |
US11416258B2 (en) | Method of debugging a processor that executes vertices of an application, each vertex being assigned to a programming thread of the processor | |
CN104221005B (zh) | 用于从多线程发送请求至加速器的机制 | |
JP6005392B2 (ja) | ルーティングのための方法及び装置 | |
CN104866443A (zh) | 可中断存储独占 | |
US10031697B2 (en) | Random-access disjoint concurrent sparse writes to heterogeneous buffers | |
US11645081B2 (en) | Handling exceptions in a multi-tile processing arrangement | |
KR20190033084A (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
US9606923B2 (en) | Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program | |
US8972667B2 (en) | Exchanging data between memory controllers | |
TWI469047B (zh) | 使用儲存預先擷取來消減久存潛時之方法和裝置 | |
US8990516B2 (en) | Multi-core shared memory system with memory port to memory space mapping | |
JP2024500779A (ja) | アドレスマッピング認識型タスク処理機構 | |
US20130117533A1 (en) | Coprocessor having task sequence control | |
CN113238842A (zh) | 任务执行方法、装置及存储介质 | |
US9946665B2 (en) | Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU) | |
JP2013534670A (ja) | 複数の論理コアを備えるマイクロプロセッサにおけるアプリケーション実行再開時のメモリアクセス最適化方法および該方法を実行するコンピュータプログラム | |
JP2011150532A (ja) | 情報処理装置 | |
JP2017219931A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP4631442B2 (ja) | プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |