STANDBY ENTITY FOR HARDWARE FUNCTIONS

The integration of programmable hardware elements with standby entities in electronic devices addresses redundancy challenges, ensuring system reliability and efficiency by replacing non-programmable components in case of failure.

DE102024201184A1Pending Publication Date: 2025-08-14INFINEON TECHNOLOGIES AG
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
DE102024201184
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-02-09
Publication Date
2025-08-14

AI Technical Summary

Technical Problem

Existing systems face challenges with hardware redundancy due to increased cost, power consumption, and limited available area, particularly in highly integrated systems, leading to potential system failures and performance constraints.

Method used

An electronic device with programmable hardware elements that include standby entities to replace non-programmable functions, managed by an arbiter that disables non-programmable elements and activates standby entities in case of failure, ensuring continued operation.

Benefits of technology

This approach reduces system failures and maintains functionality by using programmable elements to replace non-programmable ones, minimizing downtime and resource overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

An electronic device (110) is presented. The electronic device (110) comprises: • a plurality of non-programmable hardware elements (118), each non-programmable hardware element (118) configured to provide at least one non-programmable function; • at least one programmable hardware element (120) configured to provide at least one programmable function, wherein the programmable hardware element (120) comprises at least one standby entity (122), wherein the standby entity (122) is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements (118); and • at least one arbiter (124) configured to deactivate at least one non-programmable hardware element (118) and to activate the standby entity (122) to replace at least one non-programmable function provided by the non-programmable hardware element (118) with at least one programmable function. Furthermore, an embedded system (112), a method for operating the electronic device (110) and a use of the electronic device (110) and the method for operating the electronic device (110) are presented.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to an electronic device, an embedded system including the electronic device, and a method of operating the electronic device. BACKGROUND

[0002] Several applications typically require tolerances for hardware failures or high availability of components for critical functions within a system. Otherwise, a failure of one component of the system can lead to a failure of the entire system, which in turn can cause serious damage, possibly including to humans, as in an automotive application. One option to prevent this may be complete duplication of all components to provide redundancy for each component. However, such duplication can lead to a corresponding increase in costs, such as production costs. Furthermore, power consumption can increase. There are also typically high costs associated with component replacement, especially in highly integrated systems.Furthermore, in such highly integrated systems, such as a system on a chip (SoC), available real estate, such as chip area, may be limited. Thus, duplicating components can also lead to less available real estate for other components and ultimately to system performance limitations. Furthermore, there is typically less access to components, especially in highly integrated systems. Some components may even be completely inaccessible, meaning they cannot be physically reached from the outside at all. SUMMARY

[0003] In a first aspect, an electronic device is presented. The electronic device comprises a plurality of non-programmable hardware elements. Each non-programmable hardware element is configured to provide at least one non-programmable function. The electronic device further comprises at least one programmable hardware element. The programmable hardware element is configured to provide at least one programmable function. The programmable hardware element comprises at least one standby entity. The standby entity is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements. The electronic device further comprises at least one arbiter. The arbiter is configured to deactivate at least one non-programmable hardware element.The arbiter is further configured to activate the standby entity to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function.

[0004] In another aspect, an embedded system is presented. The embedded system comprises at least one electronic device. The electronic device comprises a plurality of non-programmable hardware elements. Each non-programmable hardware element is configured to provide at least one non-programmable function. The electronic device further comprises at least one programmable hardware element. The programmable hardware element is configured to provide at least one programmable function. The programmable hardware element comprises at least one standby entity. The standby entity is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements. The electronic device further comprises at least one arbiter.The arbiter is configured to deactivate at least one non-programmable hardware element. The arbiter is further configured to activate the standby entity to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function. The embedded system further comprises at least one further device controlled by the electronic device.

[0005] In another aspect, a method for operating at least one electronic device is presented. The method comprises the following steps, which are performed using an arbiter of the electronic device: a) deactivating a non-programmable hardware element of the electronic device; and b) activating a standby entity of a programmable hardware element of the electronic device to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function provided by the standby entity.

[0006] Those skilled in the art will recognize additional features and advantages upon reading the following detailed description and upon viewing the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals refer to similar or identical elements. The elements of the drawings are not necessarily to scale relative to one another. The features of the various illustrated examples may be combined, provided they are not mutually exclusive. Fig. 1 illustrates an embodiment of an electronic device according to the present disclosure in a highly schematic manner; Fig. 2 illustrates an embodiment of an embedded system according to the present disclosure in a highly schematic manner; Fig. 3 and Fig. 4 illustrate specific embodiments of the electronic device in a highly schematic manner; and Fig. 5 illustrates a flowchart of one embodiment of a method for operating an electronic device according to the present disclosure. DETAILED DESCRIPTION

[0008] In a first aspect, an electronic device is presented. The term "electronic device" as used generally herein is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The electronic device may be any device that uses electrical energy during operation. The electronic device may be or include at least one electronic circuit. The electronic device may include at least one electronic component that may be connected to at least one other electronic component. The electronic device may be an assembly of at least two electronic components that are at least partially connected to each other by conductive elements. The electronic device may include at least one interconnect.The interconnect may be configured to at least partially interconnect electronic components of the electronic device. As an example, the electronic components may include resistors, inductors, capacitors, diodes, and / or transistors and / or arrangements thereof, such as logic gates and / or processors. As an example, the conductive elements may include wires and / or traces. In particular, the electronic device may be or include at least one integrated circuit. Thus, the electronic device or at least a portion of the electronic device may be arranged on at least one piece of semiconductor material, in particular silicon, silicon carbide, and / or gallium nitride. Thus, the electronic device may be or include at least one semiconductor device.The semiconductor device may be a device comprising at least one semiconductor material, in particular silicon, silicon carbide, and / or gallium nitride. Thus, the electronic device may be or comprise at least one of a system on a chip (SoC) and a system in a package (SiP).

[0009] The electronic device may be a microcontroller. The electronic device may be part of a microcontroller. The electronic device may comprise at least one microcontroller. The term “microcontroller,” as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to a specific or customized meaning. The microcontroller may be a computing device comprising at least one integrated circuit, in particular precisely one integrated circuit. The microcontroller may be configured to control or monitor or regulate at least one further device, in particular within an embedded system. The microcontroller may be configured to perform at least one application-related function or task, in particular within the embedded system.As an example, the microcontroller may include at least one processor and at least one input / output interface. Further options are possible and generally known to those skilled in the art. In particular, the microcontroller may include additional components such as at least one hardware accelerator and / or at least one memory.

[0010] The electronic device comprises a plurality of non-programmable hardware elements. The electronic device further comprises at least one programmable hardware element. The term "programmable," or any grammatical variation thereof, as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "programmable" may refer to an ability of an entity to be programmed or configured with at least one instruction, particularly at least one set of instructions, which the entity can then execute automatically or at least partially automatically, such as to perform at least one function.In other words, a programmable entity may be configured to be programmed with a set of instructions for performing at least one function, in particular to enable the entity to adapt to changing requirements. A programmable entity may be configured to be programmed using a variety of tools, such as software tools, e.g., software programs, or hardware tools, e.g., programmable logic devices. In other words, a programmable entity may be configured to be software-programmed or hardware-programmed. Thus, programmable may be at least one of software-programmable and hardware-programmable.

[0011] The term "hardware," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. Hardware may include at least one physical component of a data processing system. In particular, hardware may include at least one electrical component, such as an electrical component ranging from a single transistor to an entire printed circuit board (PCB). In principle, hardware may also include at least one mechanical component of the data processing system. The term "software," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. Software may include non-physical information.Software may include at least one information element. Software may include data and / or instructions, in particular software programs.

[0012] Hardware may be configured to execute software and thus convert it into actions, in particular physical actions. A hardware element, in particular a programmable hardware element, may comprise software, in particular in a sense that the hardware element may comprise an electrical component on which software is installed and / or on which software is executed. As an example, a central processing unit (CPU) as a hardware element may have a variety of software programs installed and may execute at least some of the installed software programs. The CPU may be a central processor or a main processor of an entity, in particular the electronic device. As a note, an entity, such as the electronic device, may comprise at least one CPU, i.e., one CPU, or even more than one CPU.As a further note, the CPU can of course also be configured to install and potentially execute additional software programs. Thus, the CPU can be software-programmable.

[0013] The term "software programmable," or any grammatical variation thereof as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "software programmable" may refer to an ability of an entity to be programmed using software, particularly software programs. A software program may include a set of instructions written in a programming language. Programming languages ​​may include machine code, array code, or other low-level programming languages, or even high-level programming languages. Software programming may further include the use of hardware, particularly hardware to execute the software, e.g., a CPU to execute a software program.Thus, the term "software-programmable" can refer to the ability of an entity to be programmed using software and hardware. As an example, a programmable entity such as a CPU can be programmed, specifically, by installing a software program on the CPU so that the CPU can execute the software program. For further details, reference can also be made to the definition of the term "programmable" above.

[0014] The term "hardware programmable," or any grammatical variation thereof, as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "hardware programmable" may refer to an ability of an entity to be programmed using hardware, particularly using only hardware, and more specifically, without the use of software. As an example, the term "hardware programmable" may refer to an ability of an entity to be programmed using at least one programmable logic device (PLD). The PLD may be a configurable electrical circuit, particularly a reconfigurable digital circuit.The PLD may comprise at least one electronic circuit that may still be programmable or configurable after completion of production of the electronic circuit, e.g., using fuses and / or anti-fuses and / or erasable programmable read-only memories (EPROMs). In particular, the PLD may be or comprise a field-programmable gate array (FPGA). The FPGA may be or comprise an integrated circuit designed to be programmed or configured after manufacture. Thus, the term "hardware-programmable" may particularly refer to an entity's ability to be programmed using at least one field-programmable gate array (FPGA).As an example, a programmable entity, such as a field-programmable gate array (FPGA), can be programmed, in particular hardware-programmed, by physically arranging or manipulating electrical components, such as logic gates, of an electronic circuit, in particular an integrated circuit. For further details, reference can also be made to the definition of the term "programmable" above.

[0015] The term "non-programmable," or any grammatical variation thereof as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "non-programmable" may refer to a lack of the ability of an entity to be programmed with at least one instruction, particularly with at least one set of instructions that the entity can then execute automatically or at least partially automatically, such as to perform at least one function. For further details, reference may also be made to the definition of the term "programmable" above.The term "reprogrammable," or any grammatical variation thereof as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "reprogrammable" may refer to the ability of an entity to be repeatedly programmed, such as at least twice within any time interval, with at least one instruction, particularly with at least one set of instructions that the entity can then execute automatically or at least partially automatically, such as to perform at least one function. For further details, reference may also be made to the definition of the term "programmable" above.

[0016] The term "programmable hardware element," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The programmable hardware element may be a piece of hardware that is programmable. The programmable hardware element may include at least one processor, also referred to as a processing unit. As indicated, the programmable hardware element may include software, such as a software program, installed on the processor. The processor may be a hardware element configured to perform processing operations or computational operations, such as a mathematical operation or logical operations. In particular, the processor may be configured to perform at least one data processing operation according to at least one instruction.The programmable hardware element may be configured to address or access further hardware elements, in particular non-programmable hardware elements, such as a hardware accelerator, e.g., to perform such operations. The processor may be at least one of a central processing unit (CPU); a field-programmable gate array (FPGA); a graphics processing unit (GPU); and a programmable state machine. Thus, the programmable hardware element may comprise at least one element selected from the group consisting of: a central processing unit (CPU); a field-programmable gate array (FPGA); a graphics processing unit (GPU); and a programmable state machine. Other options may be possible.

[0017] The term "non-programmable hardware element," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The non-programmable hardware element may be a piece of hardware that is not programmable. The non-programmable hardware element may be or comprise at least one peripheral of the electronic device. Thus, the non-programmable hardware element may be a non-central component of the electronic device, a central component being, for example, a processor, e.g., a CPU. The non-programmable hardware element may be or comprise at least one auxiliary hardware element of the electronic device, in particular an auxiliary hardware element to the programmable hardware element.The non-programmable hardware elements can be configured to at least partially provide different non-programmable functions. In other words, at least two non-programmable hardware elements can be configured to provide different non-programmable functions. In particular, the non-programmable hardware elements can be selected from the group consisting of: a hardware accelerator; an input / output interface (IO interface). Thus, for example, a first non-programmable hardware element can be a hardware accelerator that provides a hardware acceleration function. Furthermore, a second non-programmable hardware element can be an IO interface that provides an interface function.In particular, the non-programmable hardware elements may be selected from the group consisting of: a serial peripheral interface (SPI); a universal asynchronous transceiver (UART); a digital signal processor (DSP); a universal serial bus (USB); an inter-integrated circuit (I. 2 C); direct memory access (DMA). Other options may be possible.

[0018] As indicated, at least one non-programmable hardware element may be a hardware accelerator. The term "hardware accelerator," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The hardware accelerator may be a hardware element configured to assist, particularly offload, a programmable hardware element, such as a CPU, during operation by assuming at least one function from the programmable hardware element. The hardware accelerator may be specialized to perform this function. In contrast, the programmable hardware element may be configured in a universal manner to perform a variety of different functions.Thus, the programmable hardware element may be less efficient at performing a specific function than the hardware accelerator, which may be specialized for that specific function. Such a function may, for example, be a parallelizable operation. In particular, the hardware accelerator may be configured to offload the programmable hardware element by taking over computationally intensive tasks from the programmable hardware element. Thus, the hardware accelerator may be configured to process data, in particular without the use of software, such as software programs.

[0019] As further indicated, at least one non-programmable hardware element may be an input / output interface (IO interface). The term "input / output interface," or "IO interface" for short, as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The IO interface may be or comprise a communication interface between an entity and an outside world. Thus, the IO interface may be or comprise a communication interface between at least two entities. In particular, the IO interface may be a communication interface between the electronic device and at least one other device, such as a device controlled by the electronic device, in particular within an embedded system.The IO interface can be configured to transmit data and / or instructions from a first entity to a second entity, in particular from the electronic device to at least one further device, more precisely from the programmable hardware element of the electronic device to at least one further device. The IO interface can be configured for wired and / or wireless transmission of data and / or instructions. The IO interface can be configured to implement at least one protocol for communication between at least two entities. The IO interface can be configured to convert and / or decode and / or encode data formats of the transmitted data. Thus, the IO interface can be configured for data processing, in particular without the use of software, such as software programs. The IO interface can comprise at least one pin.The pin may be configured to be contacted by at least one conductive element comprised by another device or system.

[0020] Each non-programmable hardware element is configured to provide at least one non-programmable function. The programmable hardware element is configured to provide at least one programmable function. The term "programmable function," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. A programmable function may be a variable, modifiable, or configurable function or task. In particular, the programmable function may be configurable at least once using programming, such as software programming and / or hardware programming. The programmable function may be implemented using software and / or at least one programmable hardware element.The programmable function may be at least one of a software function and a hardware function. A software function may be modified, for example, by updating a software program. In this case, the hardware function may in particular be a programmable hardware function. There may also be non-programmable hardware functions, as explained in more detail below. A hardware function may be modified, for example, by rearranging electronic components or connections between electronic components in a hardware element, in particular in a programmable hardware element, or by changing electronic properties of the electronic components, such as in an FPGA. A software function may be modified, for example, by updating a software program or by programming or reprogramming a programmable hardware element, e.g., a CPU.

[0021] The term "software function," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. A software function may be a function or task performed using software, such as at least one software element, in particular a software program. In addition to software, a software function may also be performed using hardware, in particular a programmable hardware element, e.g., a CPU, for executing the software. As one example, the software function may in particular be or include a software program.The term "hardware function," as used generally herein, is a broad term and is intended to convey its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. A hardware function may be a function or task performed using at least one hardware element, such as a non-programmable hardware element. Thus, a hardware function may, in particular, be performed without the use of software, such as software programs. As one example, the hardware function may be or include an input / output operation.

[0022] The term "non-programmable function," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. Unlike a programmable function, a non-programmable function may be an unchanging or unmodifiable function or task. The non-programmable function may be a hardware function, particularly a non-programmable hardware function. Thus, unlike the case of a programmable hardware function described above, the hardware function here may be non-programmable. The non-programmable function may be implemented without using software or a programmable hardware element. The non-programmable function may be implemented using only one or more programmable hardware elements.Thus, in summary, a programmable function can be a software function or a hardware function, while a non-programmable function can only be a hardware function.

[0023] The programmable hardware element comprises at least one standby entity. The standby entity is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements. Thus, the standby entity can be configured to replace at least two programmable hardware elements. Ideally, the standby entity can be configured to provide a programmable function to replace a non-programmable function of any non-programmable hardware element of the electronic device. In other words, the standby entity can be configured to provide a programmable function to replace a non-programmable function of any non-programmable hardware element of the electronic device.As an example, a non-programmable hardware element may fail during operation. Then, the standby entity, which may have previously been in standby mode, may be activated and replace the failed non-programmable hardware element within the electronic device. Such a replacement may involve replacing a non-programmable hardware function with a software function or with a programmable hardware function.

[0024] The term "standby entity," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The standby entity may be an entity that refers to the programmable hardware element that may be in a standby or passive mode during normal operation. The standby entity may be an entity that refers to the programmable hardware element that may be configured to be activated during fault operation. Thus, the standby entity may be configured to be in an active mode during fault operation. Fault operation may generally be or include a failure of a component of the electronic device, particularly a non-programmable hardware device.Normal operation may generally be or include error-free operation of the electronic device, in particular operation without failure of a non-programmable hardware device. The standby entity may be at least one of a hardware element and a software element. As an example, the standby entity may be a hardware element, in particular a programmable hardware element executing a software element. The standby entity may be configured to provide redundancy for at least two non-programmable hardware elements. In particular, the standby entity may be configured to provide redundancy for any non-programmable hardware element of the electronic device.Thus, if a non-programmable hardware element fails, especially if one of the non-programmable hardware elements fails, the standby entity can be activated and can replace the failed non-programmable hardware element. This can ensure at least limited, ideally unrestricted, continued operation of the electronic device.

[0025] The standby entity may be or comprise a hardware element comprised by the programmable hardware element and / or a software element executed by the programmable hardware element or at least installed on the programmable hardware element. The standby entity may be or comprise at least a part of the programmable hardware element. The standby entity may be selected from the group consisting of: a central processing unit (CPU) or at least a part thereof; a field-programmable gate array (FPGA) or at least a part thereof; a graphics processing unit (GPU) or at least a part thereof; a programmable state machine or at least a part thereof; a software element, in particular a software program. Other options may be possible. The standby entity may be a standby part, in particular a standby part of the programmable hardware element.The standby entity may comprise at least one hardware element, e.g., a processor or a part thereof. Additionally or alternatively, the standby entity may comprise at least one software element, e.g., a software program. Thus, the standby entity may be configured to provide at least one of a hardware function and a software function, in particular to replace a failed hardware function. In particular, the standby entity may be configured to provide at least one of a programmable hardware function and a software function, in particular to replace a failed non-programmable hardware function.

[0026] As one example, the standby entity for providing a software function may comprise at least one of a CPU configured to be software-programmed and a software program configured to execute in the CPU. Thus, in fault mode, the CPU may be software-programmed to assume a hardware function of a failed non-programmable hardware element. As another example, the standby entity for providing a hardware function may comprise an FPGA configured to be hardware-programmed. Thus, in fault mode, the FPGA may be hardware-programmed to assume a hardware function of a failed non-programmable hardware element. Thus, in general, the standby entity may be at least one of software-programmable and hardware-programmable. More generally, the standby entity may be programmable, in particular reprogrammable.

[0027] However, prior programming of the programmable hardware element may not necessarily be required before the programmable hardware element can assume a hardware function of a failed non-programmable hardware element. Even without prior programming, the programmable hardware element may already be configured to assume the hardware function of a failed non-programmable hardware element. As an example, a CPU can also directly assume the hardware function of a failed hardware accelerator. As a reminder, a hardware accelerator can typically be used to offload the CPU. Thus, the CPU may already be able to perform the hardware function of the hardware accelerator.However, the hardware accelerator can be specialized for that specific hardware accelerator, while the CPU can be more of a generalist. However, by being programmable, flexibility can be achieved in the sense that different failed non-programmable hardware elements providing different hardware functions can be replaced using the standby entity.

[0028] The standby entity may be a standby element, in particular a unified standby element. The term "unified standby element," as used generally herein, is a broad term and is intended to convey its ordinary and customary meaning to those of ordinary skill in the art and is not limited to any specific or customized meaning. The unified standby element may be an element, such as a hardware element or a software element, that can be in a standby mode during normal operation and that can be in an active mode during fault operation, in particular for replacing a failed element, in particular for replacing a failed non-programmable hardware element.Ideally, the unified standby entity can be configured to provide at least one programmable function to replace the non-programmable functions of any non-programmable hardware element. In other words, the unified standby element can be configured to replace any non-programmable hardware element. In other words, the unified standby element can be configured to replace any non-programmable hardware element of the electronic device. However, the unified standby element can also be configured to replace only a selection of the non-programmable hardware elements of the electronic device. In particular, the unified standby element can be configured to replace at least two non-programmable hardware elements of the electronic device.Importantly, the unified standby element can be configured to replace more than one non-programmable hardware element of the electronic device, which can also be achieved by simply duplicating the non-programmable hardware element. However, as stated, the unified standby element encompassed by the programmable hardware element can be programmable and thus capable of modifying its function, providing further flexibility.

[0029] As already stated, the programmable hardware element may comprise at least one processor. The processor may comprise the standby entity. In particular, the standby entity may comprise at least one software element, in particular a software program configured to replace a non-programmable function of a non-programmable hardware element, in particular a failed non-programmable hardware element in fault mode. Thus, the standby entity may comprise a standby software element, such as a software program that cannot be executed in normal operation but can be executed in fault mode, in particular as a replacement for a non-programmable function, more specifically as a replacement for a non-programmable hardware function. The standby software element may be installed on the processor or, more generally, on the programmable hardware element.Additionally or alternatively, the standby software element may be installed on another element, such as external memory. In such a case, the standby software element may first be retrieved from the external memory and installed on the programmable hardware element before being executed.

[0030] Furthermore, as already explained, the standby entity may comprise a portion of the programmable hardware element in which the software element can be executed. Furthermore, the programmable hardware element may comprise at least two processors. The standby entity may comprise at least one processor. As an example, the programmable hardware element may comprise two processors, and the standby entity may be one of them. Thus, the standby entity, or in particular the standby element, may be a dedicated processor that may be in a standby mode during normal operation and in an active mode for replacing a failed non-programmable hardware element during fault operation. Thus, the programmable hardware element may comprise at least one processor that is separate from the standby element, in particular a main processor, e.g., a main CPU.The processor, in particular the main processor, can be configured to control the operation of the electronic device, in particular the non-programmable hardware elements, during normal operation. In the event of a failure event, as specified, the standby element can then replace a failed non-programmable hardware element. Additionally or alternatively, the electronic device can comprise at least two programmable hardware elements. One of the at least two programmable hardware elements can be the standby entity, in particular the standby element.

[0031] The electronic device further includes at least one arbiter. The term "arbiter," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The arbiter may be a device configured to assign access to components within a system. In particular, the arbiter may be configured to assign access to at least one of a programmable hardware element and a non-programmable hardware element within the electronic device. Thus, the arbiter may be configured to enable and / or disable components.In particular, the arbiter may be configured to enable and / or disable at least one of a non-programmable hardware element and a programmable hardware element, or at least a portion thereof, such as the standby entity. The arbiter may be an analog device. As an example, the arbiter may be an analog circuit configured to turn components on and / or off, or to connect and / or disconnect components. The arbiter may be a digital device. In particular, the arbiter may be at least partially comprised by the programmable hardware element, in particular by the standby entity. Thus, as an example, the arbiter may be part of a CPU or may be implemented within the CPU.

[0032] As an example, the arbiter may be configured to initiate execution of a software element, in particular a software program. The arbiter may be configured to initiate installation of a software element, in particular a software program. Thus, the arbiter may be configured to enable programming of the standby entity with the programmable function. As already stated, the programmable function may then replace a failed non-programmable function. The arbiter may comprise a software element, in particular a software program. Furthermore, the arbiter may be configured to receive at least one piece of information about a component of a system comprising the arbiter.In particular, the arbiter may be configured to receive at least one piece of information about a failure of a non-programmable hardware element by using at least one of boot diagnostics and on-the-fly diagnostics.

[0033] The arbiter is configured to deactivate at least one non-programmable hardware element. In particular, the arbiter may be configured to deactivate any of the non-programmable hardware elements. The arbiter is configured to activate the standby entity to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function. Thus, by activating the standby entity, a non-programmable function provided by the non-programmable hardware element may be replaced by a programmable function provided by the standby entity.The term "activating," or any grammatical variation thereof, as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "activating" can refer to a process of starting, powering on, switching on, initializing, or starting something. Enabling the standby entity can include powering on the standby entity and / or connecting the standby entity within the electronic device. As an example, the standby entity can include an FPGA, and the FPGA can be powered up by the arbiter to replace a failed non-programmable hardware component. Enabling the standby entity can include starting the standby entity.As an example, the standby entity may include at least one software program, and activating the standby entity may include running the software program or installing the software program and then running the software program. The term "deactivate" or any grammatical variation thereof, as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "deactivate" may refer to a process of stopping, turning off, or powering something down. Thus, as an example, deactivating a non-programmable hardware element may include turning off the non-programmable hardware element and / or disconnecting the non-programmable hardware element.

[0034] The term "replace" or any grammatical variation thereof, as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "replace" can refer to a process of replacing, exchanging, or compensating. Replacing can include complete replacement or partial replacement. Replacing can be replacing a first entity with a second entity, where the first entity and the second entity can be of identical type or, in particular, of different type. In particular, a failed non-programmable hardware function can be replaced by a programmable hardware function or by a software function. The software function can completely replace the failed non-programmable hardware function.However, the software function may also only partially replace the failed non-programmable hardware function. For example, a failed hardware accelerator specialized for a specific task may be replaced using a CPU that may not be specialized for that specific task and thus performs it less efficiently.

[0035] The arbiter may be configured to activate the standby entity only in the event of a critical fault. Thus, the arbiter may be configured not to activate the standby entity in the event of a non-critical fault, such as a fault that may not severely affect the electronic device or a fault for which the electronic device remains at least largely operational. The term "critical fault," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. A critical fault may be a fault of a component that may severely affect an entire system including the component or that may even result in a complete system failure.In particular, a critical error may be a failure of a non-programmable hardware element that may lead to a complete failure of the electronic device or that may at least severely impair the electronic device. The critical error may be selected from the group consisting of: a safety-related error; a failure of a non-programmable hardware element with high availability. In particular, the critical error may be a safety-related error of a non-programmable hardware element with high availability. A safety-related error may, in particular, relate to the personal safety of people, such as car passengers, as in an automotive application, for example.

[0036] The electronic device may further comprise at least one internal memory. The standby entity may be configured to receive the programmable function for replacing the non-programmable function from the internal memory. The internal memory may be a memory within the electronic device. In general, a memory may be a device configured to store at least one piece of information, such as data and / or instructions. Additionally or alternatively, the electronic device may comprise at least one external memory interface. The standby entity may be configured to receive the programmable function for replacing the non-programmable function from at least one external memory via the external memory interface. The external memory may be a memory external to the electronic device.The external memory may be connected to the electronic device, such as using a wired or wireless connection. Additionally or alternatively, the electronic device may include at least one general-purpose input / output (GPIO). The standby entity may be configured to receive the programmable function for replacing the non-programmable function from at least one external memory via the GPIO. Additionally or alternatively, the electronic device may include at least one low-voltage differential signaling (LVDS). The standby entity may be configured to receive the programmable function for replacing the non-programmable function from at least one external memory via the LVDS. Additionally or alternatively, the electronic device may include at least one serializer / deserializer (SerDes).The standby entity may be configured to receive the programmable function to replace the non-programmable function from at least one external memory via the SerDes.

[0037] In another aspect, an embedded system is presented. The term "system," as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. A system can be any set of interacting or interdependent components or parts that form a whole. In particular, the components can interact with each other to perform at least one common function. The at least two components can be handled independently or can be coupled or connectable. The term "embedded system," as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning.An embedded system can be a system, particularly a processing system or a computer system, configured to perform a specific function or task, e.g., within a higher-level system configured to perform a plurality of functions. In contrast, general-purpose computers can be configured to perform a wide variety of different functions. Software executed within an embedded system can typically be tailored to the hardware used in the embedded system.

[0038] The embedded system comprises at least one electronic device. The electronic device comprises a plurality of non-programmable hardware elements. Each non-programmable hardware element is configured to provide at least one non-programmable function. The electronic device further comprises at least one programmable hardware element. The programmable hardware element is configured to provide at least one programmable function. The programmable hardware element comprises at least one standby entity. The standby entity is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements. The electronic device further comprises at least one arbiter. The arbiter is configured to deactivate at least one non-programmable hardware element.The arbiter is further configured to activate the standby entity to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function. In particular, the electronic device may be an electronic device according to one of the embodiments described above or below in more detail with reference to an electronic device.

[0039] The embedded system further comprises at least one further device controlled by the electronic device. The further device may be selected from the group consisting of: a sensor; an actuator. Other options may be possible. The term "controlling" or any grammatical variation thereof, as generally used herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. Controlling may be a process of regulating or monitoring or supervising or operating or instructing or driving. As one example, controlling may include monitoring a sensor and / or processing sensor data. As another example, controlling may include operating an actuator.The further device can be controlled by the electronic device using at least one of a hardware function and a software function. In normal operation, the further device can be controlled using at least one non-programmable function provided by at least one non-programmable hardware element of the plurality of non-programmable hardware elements of the electronic device. The non-programmable function can in particular be a non-programmable hardware function. In fault operation, the further device can be controlled using at least one programmable function provided by the standby entity. The programmable function can in particular be a programmable hardware function or a software function.For further definitions and embodiments relating to the illustrated embedded system, reference may be made to the definitions and embodiments illustrated with respect to the electronic device.

[0040] In another aspect, a method for operating at least one electronic device is presented. The electronic device may be an electronic device according to any of the embodiments described above or in more detail below relating to an electronic device. The method comprises the following steps. The steps are performed using an arbiter of the electronic device. Other elements may also be involved. a) deactivating a non-programmable hardware element of the electronic device; and b) activating a standby entity of a programmable hardware element of the electronic device to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function provided by the standby entity.

[0041] The method steps can be performed in the given order. However, it should be noted that a different order may also be possible. The method may include additional method steps not listed. Furthermore, one or more of the method steps may be performed once or repeatedly. Furthermore, two or more of the method steps may be performed simultaneously or in a temporally overlapping manner.

[0042] The method may further comprise step a1). Step a1) may be performed before step a). Step a1) may comprise receiving at least one piece of information about a failure of the non-programmable hardware element using the arbiter. Step a1) may further comprise using at least one of startup diagnostics and on-the-fly diagnostics. Thus, step a1) may comprise receiving at least one piece of information about a failure of the non-programmable hardware element using the arbiter and at least one of startup diagnostics and on-the-fly diagnostics. The method may further comprise step a2). Step a2) may be performed before step a). Step a2) may comprise defining at least one critical failure. At least one of steps a) and b) may only be performed in the event of the critical failure. The critical failure may be selected from the group consisting of: a safety-related failure; a failure of a non-programmable hardware element with high availability.In particular, the critical error may be a safety-related error of a non-programmable hardware element with high availability. The arbiter may be at least partially comprised by the programmable hardware element, in particular by the standby entity. At least one of steps a) and b) may be performed using the programmable hardware element, in particular using the standby entity.

[0043] The method may further comprise step b1). Step b1) may be performed before step b). Step b1) may comprise programming the standby entity with a programmable function to replace the non-programmable function provided by the non-programmable hardware element. The programming may comprise at least one of software programming and hardware programming. The programming may comprise receiving at least one software program from at least one memory, such as an internal memory or an external memory. The programming may comprise installing the software program, in particular on the programmable hardware element. The electronic device may comprise at least one internal memory. The method may further comprise step b2). Step b2) may be performed before step b).Step b2) may comprise receiving the programmable function for replacing the non-programmable function from the internal memory. The electronic device may comprise at least one external memory interface. The method may further comprise step b3). Step b3) may be performed before step b). Step b3) may comprise receiving the programmable function for replacing the non-programmable function from an external memory via the external memory interface. The electronic device may comprise at least one GPIO. The method may further comprise step b4). Step b4) may be performed before step b). Step b4) may comprise receiving the programmable function for replacing the non-programmable function from an external memory via the GPIO. The electronic device may comprise at least one LVDS. The method may further comprise step b5).Step b5) may be performed before step b). Step b5) may include receiving the programmable function for replacing the non-programmable function from an external memory via the LVDS. The electronic device may include at least one SerDes. The method may further include step b6). Step b6) may be performed before step b). Step b6) may include receiving the programmable function for replacing the non-programmable function from an external memory via the SerDes.

[0044] The method may be at least partially computer-implemented. The term "computer-implemented," as used generally herein, is a broad term and is intended to give its ordinary and customary meaning to one of ordinary skill in the art and is not limited to any specific or customized meaning. The term "computer-implemented" may refer to a method that includes at least one computer or processor. The computer or processor may comprise at least one data processing device that may be configured to perform at least one of the method steps according to the present disclosure. The method steps may be performed at least partially automatically, in particular without user interaction.For further definitions and embodiments relating to the method presented, reference may be made to the definitions and embodiments presented with respect to the electronic device.

[0045] In a further aspect, a use of an electronic device according to one of the embodiments described in more detail above or below relating to an electronic device, or of a method for operating at least one electronic device according to one of the embodiments described in more detail above or below relating to a method, is presented for a use selected from the group consisting of: an automotive application; a medical application, in particular an implant; a remote-controlled application; an industrial application.

[0046] The devices and methods presented here have significant advantages over the prior art, as already stated throughout the description. In particular, they can reduce the implementation costs for providing tolerances for hardware errors. In particular, duplication of multiple components can be avoided. The standby entity presented can provide redundancy for a variety of components. Thus, particularly in highly integrated systems, such as an SoC, more space can be available for additional components that provide additional functions within the system. Furthermore, production costs can be reduced, the effort required to test the device or system can be reduced, and power consumption can also be minimized.The standby entity shown, which can assume different functions if required, can provide great flexibility in the design of a system, such as deciding which functions should be assumed.

[0047] As used herein, the terms "comprise," "comprise," or "include," or any grammatical variations thereof, are used in a non-exclusive manner. Thus, these terms can refer both to a situation in which, besides the feature introduced by these terms, no other features are presented in the entity described in that context, and to a situation in which one or more other features are present. As an example, the expressions "A comprises B," "A comprises B," and "A includes B" can both refer to a situation in which, besides B, no other element in A is present (i.e., a situation in which A consists solely and exclusively of B), and to a situation in which, besides B, one or more other elements are present in entity A, such as element C, elements C and D, or even other elements.

[0048] It should also be noted that the terms "at least one," "one or more," or similar expressions indicating that a feature or element may be present once or more than once are typically used only once when the feature or element in question is introduced. In most cases, when referring to the feature or element in question, the terms "at least one" or "one or more" are not repeated, regardless of the fact that the feature or element in question may be present once or more than once.

[0049] Furthermore, as used herein, the terms "preferably," "more preferably," "particularly," "more preferably," "specifically," "more specifically," or similar terms are used in connection with optional features without limiting alternative possibilities. Thus, features introduced by these terms are optional features and are not intended to limit the scope of the claims in any way. The disclosure may be practiced using alternative features, as one skilled in the art will recognize.Likewise, features introduced by "in one embodiment of the disclosure" or similar expressions are intended to be optional features, without any limitation as to alternative embodiments of the disclosure, without any limitations as to the scope of the disclosure, and without any limitation as to the possibility of combining the features so introduced with other optional or non-optional features of the disclosure.

[0050] In summary, and without excluding other possible embodiments, the following embodiments can be considered: Embodiment 1: An electronic device comprising: • a plurality of non-programmable hardware elements, each non-programmable hardware element configured to provide at least one non-programmable function; • at least one programmable hardware element configured to provide at least one programmable function, wherein the programmable hardware element comprises at least one standby entity, wherein the standby entity is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements; and • at least one arbiter configured to deactivate at least one non-programmable hardware element and to activate the standby entity to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function. Embodiment 2: The electronic device according to the preceding embodiment, wherein the electronic device comprises at least one semiconductor device. Embodiment 3: The electronic device according to any one of the preceding embodiments, wherein the electronic device is a microcontroller. Embodiment 4: The electronic device according to any one of the preceding embodiments, wherein the non-programmable hardware elements are configured to at least partially provide various non-programmable functions. Embodiment 5: The electronic device according to any one of the preceding embodiments, wherein the programmable function is at least one of a software function and a hardware function. Embodiment 6: The electronic device according to any one of the preceding embodiments, wherein the non-programmable function is a hardware function. Embodiment 7: The electronic device according to one of the preceding embodiments, wherein the standby entity is programmable, in particular reprogrammable. Embodiment 8: The electronic device according to any one of the preceding embodiments, wherein the standby entity is at least one of software programmable and hardware programmable. Embodiment 9: The electronic device according to any one of the preceding embodiments, wherein the standby entity comprises at least a portion of the programmable hardware element. Embodiment 10: The electronic device according to any one of the preceding embodiments, wherein the standby entity is a standby element, in particular a unified standby element. Embodiment 11: The electronic device according to the preceding embodiment, wherein the programmable hardware element comprises at least one processor separate from the standby element, in particular a main processor. Embodiment 12: The electronic device according to any one of the preceding embodiments, wherein the programmable hardware element comprises at least one processor, wherein the processor comprises the standby entity. Embodiment 13: The electronic device according to any one of the preceding embodiments, wherein the programmable hardware element comprises at least two processors, wherein the standby entity comprises at least one processor. Embodiment 14: The electronic device according to any one of the preceding embodiments, wherein the programmable hardware element comprises at least one element selected from the group consisting of: a central processing unit (CPU); a field-programmable gate array (FPGA); a graphics processing unit (GPU); and a programmable state machine. Embodiment 15: The electronic device according to any one of the preceding embodiments, wherein the standby entity is selected from the group consisting of: a central processing unit (CPU) or at least a part thereof; a field programmable gate array (FPGA) or at least a part thereof; a graphics processing unit (GPU) or at least a part thereof; a programmable state machine or at least a part thereof; a software element, in particular a software program. Embodiment 16: The electronic device according to any one of the preceding embodiments, wherein the non-programmable hardware elements are selected from the group consisting of: a hardware accelerator; an input / output interface (IO interface). Embodiment 17: The electronic device according to any one of the preceding embodiments, wherein the non-programmable hardware elements are selected from the group consisting of: a serial peripheral interface (SPI); a universal asynchronous transceiver (UART); a digital signal processor (DSP); a universal serial bus (USB); an inter-integrated circuit (I 2 C); direct memory access (DMA). Embodiment 18: The electronic device according to any one of the preceding embodiments, wherein the arbiter is configured to enable programming of the standby entity with the programmable function. Embodiment 19: The electronic device according to any one of the preceding embodiments, wherein the arbiter is configured to activate the standby entity only in case of a critical error. Embodiment 29: The electronic device according to the preceding embodiment, wherein the critical fault is selected from the group consisting of: a safety-related fault; a fault of a non-programmable high-availability hardware element. Embodiment 21: The electronic device according to any one of the preceding embodiments, wherein the arbiter is at least partially comprised by the programmable hardware element, in particular by the standby entity. Embodiment 22: The electronic device according to any one of the preceding embodiments, wherein the arbiter is configured to receive at least one piece of information about a failure of the non-programmable hardware element using at least one of boot diagnostics and on-the-fly diagnostics. Embodiment 23: The electronic device according to any one of the preceding embodiments, further comprising at least one internal memory, wherein the standby entity is configured to receive the programmable function for replacing the non-programmable function from the internal memory. Embodiment 24: The electronic device according to any one of the preceding embodiments, further comprising at least one external memory interface, wherein the standby entity is configured to receive the programmable function for replacing the non-programmable function from at least one external memory via the external memory interface. Embodiment 25: The electronic device according to any one of the preceding embodiments, further comprising at least one general purpose input / output (GPIO), wherein the standby entity is configured to receive the programmable function for replacing the non-programmable function from at least one external memory via the GPIO. Embodiment 26: The electronic device according to any one of the preceding embodiments, further comprising at least one low voltage differential signaling (LVDS), wherein the standby entity is configured to receive the programmable function for replacing the non-programmable function from at least one external memory via the LVDS. Embodiment 27: The electronic device according to any one of the preceding embodiments, further comprising at least one serializer / deserializer (SerDes), wherein the standby entity is configured to receive the programmable function for replacing the non-programmable function from at least one external memory via the SerDes. Embodiment 28: The electronic device according to any one of the preceding embodiments, further comprising at least one interconnect configured to at least partially interconnect electronic components of the electronic device. Embodiment 29: The electronic device according to any one of the preceding embodiments, wherein the electronic device comprises at least one of a system on a chip (SoC) and a system in a package (SiP). Embodiment 30: An embedded system comprising at least one electronic device, the electronic device comprising: • a plurality of non-programmable hardware elements, each non-programmable hardware element configured to provide at least one non-programmable function; • at least one programmable hardware element configured to provide at least one programmable function, wherein the programmable hardware element comprises at least one standby entity, wherein the standby entity is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements; and • at least one arbiter configured to deactivate at least one non-programmable hardware element and to activate the standby entity to replace the non-programmable function provided by the non-programmable hardware element with at least one programmable function;wherein the embedded system further comprises: • at least one other device controlled by the electronic device. Embodiment 31: The embedded system according to the preceding embodiment, wherein the electronic device is an electronic device according to any one of the preceding embodiments relating to an electronic device. Embodiment 32: The embedded system according to any one of the preceding embodiments relating to an embedded system, wherein the further device is selected from the group consisting of: a sensor; an actuator. Embodiment 33: The embedded system according to any one of the preceding embodiments relating to an embedded system, wherein the further device is controlled by the electronic device using at least one of a hardware function and a software function. Embodiment 34: The embedded system according to any one of the preceding embodiments relating to an embedded system, wherein in normal operation the further device is controlled using at least one non-programmable function provided by at least one non-programmable hardware element of the plurality of non-programmable hardware elements of the electronic device, wherein in fault operation the further device is controlled using at least one programmable function provided by the standby entity. Embodiment 35: A method for operating at least one electronic device, the method comprising the following steps performed using an arbiter of the electronic device: a) deactivating a non-programmable hardware element of the electronic device; and b) activating a standby entity of a programmable hardware element of the electronic device to replace at least one non-programmable function provided by the non-programmable hardware element with at least one programmable function provided by the standby entity. Embodiment 36: The method according to the preceding embodiment, wherein the electronic device is an electronic device according to any of the preceding embodiments relating to an electronic device. Embodiment 37: The method according to any one of the preceding method embodiments, further comprising step a1) performed before step a), wherein step a1) comprises receiving at least one information item about a failure of the non-programmable hardware element using the arbiter. Embodiment 38: The method according to the preceding embodiment, wherein step a1) comprises using at least one of startup diagnostics and on-the-fly diagnostics. Embodiment 39: The method according to any one of the preceding method embodiments, further comprising step a2) performed before step a), wherein step a2) comprises defining at least one critical error. Embodiment 40: The method according to the preceding method embodiment, wherein at least one of steps a) and b) is performed only in case of the critical error. Embodiment 41: The method according to one of the two preceding embodiments, wherein the critical error is selected from the group consisting of: a safety-related error; a failure of a non-programmable hardware element with high availability. Embodiment 42: The method according to any one of the preceding method embodiments, wherein the arbiter is at least partially comprised by the programmable hardware element, in particular by the standby entity, wherein at least one of steps a) and b) is performed using the programmable hardware element, in particular using the standby entity. Embodiment 43: The method according to any one of the preceding method embodiments, further comprising step b1) performed before step b), wherein step b1) comprises programming the standby entity with a programmable function for replacing the non-programmable function provided by the non-programmable hardware element. Embodiment 44: The method according to the preceding embodiment, wherein the programming comprises at least one of software programming and hardware programming. Embodiment 45: The method according to any one of the preceding method embodiments, further comprising step b2) performed before step b), wherein the electronic device comprises at least one internal memory, wherein step b2) comprises receiving the programmable function for replacing the non-programmable function from the internal memory. Embodiment 46: The method according to any one of the preceding method embodiments, further comprising step b3) performed before step b), wherein the electronic device comprises at least one external memory interface, wherein step b3) comprises receiving the programmable function for replacing the non-programmable function from an external memory via the external memory interface. Embodiment 47: The method according to any one of the preceding method embodiments, further comprising step b4) performed before step b), wherein the electronic device comprises at least one GPIO, wherein step b4) comprises receiving the programmable function for replacing the non-programmable function from an external memory via the GPIO. Embodiment 48: The method according to any one of the preceding method embodiments, further comprising step b5) performed before step b), wherein the electronic device comprises at least one LVDS, wherein step b5) comprises receiving the programmable function for replacing the non-programmable function from an external memory via the LVDS. Embodiment 49: The method according to any one of the preceding method embodiments, further comprising step b6) performed before step b), wherein the electronic device comprises at least one SerDes, wherein step b6) comprises receiving the programmable function for replacing the non-programmable function from an external memory via the SerDes. Embodiment 50: The method according to any one of the preceding method embodiments, wherein the method is at least partially computer-implemented. Embodiment 51: A use of an electronic device according to one of the preceding embodiments relating to an electronic device, or of a method for operating at least one electronic device according to one of the preceding method embodiments, for a use selected from the group consisting of: an automotive application; a medical application, in particular an implant; a remote-controlled application; an industrial application.

[0051] Further optional features and embodiments are disclosed in more detail in the following description of embodiments, preferably in conjunction with the dependent embodiments. The respective optional features can be implemented in isolation as well as in any possible combination, as will be appreciated by those skilled in the art. The scope of the disclosure is not limited to the preferred embodiments. The embodiments are illustrated schematically in the figures. Identical reference numerals in these figures refer to identical or functionally comparable elements.

[0052] Fig. 1 illustrates an embodiment of an electronic device 110 according to the present disclosure in a highly schematic manner. Further, Fig. 2 illustrates an embodiment of an embedded system 112 according to the present disclosure in a highly schematic manner. The embedded system 112 includes another embodiment of the electronic device 110. However, as one skilled in the art will readily understand, the embedded system 112 is not limited to the specific embodiment of the electronic device 110 shown in Fig. 2. In particular, the embedded system 112 may include any embodiment of the electronic device 110 described in more detail above or below. Furthermore, instead of the embodiment of the electronic device 110 shown in Fig. 1, a variety of further embodiments are possible, as shown throughout the disclosure. Thus, Fig. 1 and Fig. 2 only illustrate embodiments from a variety of different conceivable embodiments of the electronic device 110 and the embedded system 112 and are not to be construed as unduly limiting the scope of the present disclosure. Fig. 1 and Fig. 2 at least partially described in conjunction.

[0053] As mentioned, Fig. 1 shows an embodiment of the electronic device 110. The electronic device 110 may be a semiconductor device. Thus, the electronic device 110 may be arranged on a substrate 114, wherein the substrate 114 may comprise at least one semiconductor material, in particular at least one of silicon, silicon carbide, and gallium nitride. Thus, the substrate 114 may be a wafer or in particular a part thereof. Thus, the electronic circuit 110 may in particular be an integrated circuit. The electronic device 110 may be a system on a chip. Furthermore, the electronic device 110 may be a system in a package. The electronic device 110 may further be a microcontroller. Thus, as in Fig. 2, the electronic device 110 may be configured in particular to control at least one further device 116, such as a sensor or an actuator.

[0054] The electronic device 110 includes a plurality of non-programmable hardware elements 118, such as two non-programmable hardware elements 118 or three non-programmable hardware elements 118, as in Fig. 1 or more. Each non-programmable hardware element 118 is configured to provide at least one non-programmable function. The non-programmable function may in particular be a hardware function. In particular, the non-programmable hardware elements 118 may be configured to at least partially provide diverse or different non-programmable functions. The electronic device 110 further includes at least one programmable hardware element 120. The programmable hardware element 120 is configured to provide at least one programmable function. The programmable function may in particular be at least one of a software function and a hardware function. The programmable hardware element 120 includes at least one standby entity 122.The standby entity 122 is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements 118. As an example, the standby entity 122 may be configured to provide a programmable function to replace two of the three non-programmable hardware elements 118 shown in FIG. Fig. 1 shown.

[0055] The electronic device comprises at least one arbiter 124. The arbiter 124 is configured to deactivate at least one non-programmable hardware element 118. The arbiter 124 is further configured to activate the standby entity 122 to replace at least one non-programmable function provided by the non-programmable hardware element 118 with at least one programmable function. Thus, the arbiter 124 may be configured to enable programming of the standby entity 122 with the programmable function, in particular to replace a failed non-programmable function. The electronic device 110 may further comprise an internal memory 126. The standby entity 122 may be configured to receive the programmable function for replacing the non-programmable function from the internal memory 126.The electronic device 110 may further include an interconnect 128. The interconnect 128 may be configured to at least partially interconnect the non-programmable hardware elements 118, the programmable hardware element 120, the standby entity 122, the arbiter 124, and the internal memory 126 of the electronic device 110, as shown in FIG. Fig. 1 shown.

[0056] As an example, during normal operation, all non-programmable hardware elements 118 may operate without error. However, during operation, one of the non-programmable hardware elements 118 may fail, as indicated by using the highlight symbol 130. Thus, the electronic device 110 may be forced into fault mode. Instead of initially duplicating the failed non-programmable hardware element 118 to replace it with its twin in fault mode, the standby entity 122 may now be used. First, the arbiter 124 may be informed of the failed non-programmable hardware element 118. The arbiter 124 may then deactivate the failed non-programmable hardware element 118 and activate the standby entity 122. The standby entity 122 may be programmable, in particular reprogrammable.In particular, the standby entity 122 may be at least one of software-programmable and hardware-programmable. Thus, the standby entity 122 may be programmable, such as by receiving a programmable function, e.g., a software program, from the internal memory 126. The programmable function may be configured to replace the failed hardware function. Thus, the standby entity 122 may install and execute the programmable function, allowing the failure of the non-programmable hardware element 118 to be compensated.

[0057] The example described above is only one example from a multitude of conceivable examples, as those skilled in the art will immediately understand, which was described to illustrate a basic operating scheme of the presented electronic device 110. Thus, the electronic device 110 can provide a user with great flexibility regarding the precise configuration of the electronic device 110 within various applications. In contrast, a twin of a non-programmable hardware element 118 can be very limited in its application.

[0058] However, the standby entity 122 may be capable of replacing a variety of different non-programmable hardware elements 118 in the event of different failures. Thus, the standby entity 122 may, in particular, be a unified standby element. More generally, the standby entity 122 may be a standby element. The standby entity 122 may comprise at least a portion of the programmable hardware element 120. Thus, the standby entity 122 may be a standby portion of the programmable hardware element 120, e.g., a processor or a portion thereof. However, the standby entity 122 may, in particular, also be or comprise non-physical software, such as software programs executing on a processor. Thus, the programmable hardware element 120 may comprise a processor, and the processor may comprise the standby entity 122.However, the programmable hardware element 120 may also include two or more processors, and the standby entity may be one of them. Thus, the programmable hardware element 120 may include at least one processor that is separate from the standby element.

[0059] In particular, the processor may be at least one of a central processing unit (CPU); a field-programmable gate array (FPGA); a graphics processing unit (GPU); and a programmable state machine. Thus, the programmable hardware element 120 may comprise at least one element selected from the group consisting of: a central processing unit (CPU); a field-programmable gate array (FPGA); a graphics processing unit (GPU); and a programmable state machine. Thus, the standby entity 122 may be selected from the group consisting of: a central processing unit (CPU) or at least a portion thereof; a field-programmable gate array (FPGA) or at least a portion thereof; a graphics processing unit (GPU) or at least a portion thereof; a programmable state machine or at least a portion thereof; a software element, in particular a software program.On the other hand, the non-programmable hardware elements 118 may be selected from the group consisting of: a hardware accelerator; an input / output interface (IO interface). As an example, one non-programmable hardware element 118 may be a hardware accelerator and another non-programmable hardware element 118 may be an IO interface. In particular, the non-programmable hardware elements 118 may be selected from the group consisting of: a serial peripheral interface (SPI); a universal asynchronous transceiver (UART); a digital signal processor (DSP); a universal serial bus (USB); an inter-integrated circuit (I. 2 C); direct memory access (DMA). Other options may be possible.

[0060] As mentioned, Fig. 2 shows an embodiment of an embedded system 112 according to the present disclosure in a highly schematic manner. The embedded system 112 includes a different embodiment of the electronic device 110 compared to the one shown in Fig. 1. However, as explained, the embedded system 112 can in principle also implement the Fig. 1 or other embodiments of the electronic device 110. Thus, for describing the Fig. 2 shown embodiment of the electronic device 110 at least largely to the description of Fig. 1. In particular, the embedded system 112 comprises the further device 116, as shown in Fig. 2, which may be, for example, a sensor or an actuator. The further device 116 is controlled using the electronic device 110. In particular, the further device 116 may be controlled using at least one of a hardware function and a software function. In normal operation, the further device 116 may be controlled using at least one non-programmable function provided by at least one non-programmable hardware element 118 of the plurality of non-programmable hardware elements 118 of the electronic device 110. In fault operation, the further device 116 may be controlled using at least one programmable function provided by the standby entity 122. In other words, the failed non-programmable hardware element 118, which in turn is indicated by the brightening symbol 130 in Fig. 2, using the standby entity 122.

[0061] As already stated and as in Fig. 2, at least one of the non-programmable hardware elements 118 may be an IO interface. Thus, at least one of the non-programmable hardware elements 118 may include at least one pin 132. At least one of the non-programmable hardware elements 118 may be connected to at least one element external to the electronic device 110, in particular to the further device 116, or even to at least one element external to the embedded system 112, such as an external memory 134. Other options may also be possible. Thus, at least one of the non-programmable hardware elements 118 may be or include an external memory interface. The standby entity 122 may be configured to receive the programmable function for replacing the non-programmable function of the failed non-programmable hardware element 118 from the external memory 134 via the external memory interface.As an example, the external memory interface may be or include at least one of a GPIO, an LVDS, and a SerDes.

[0062] As further stated in Fig. 2, the arbiter 124 may be at least partially comprised by the programmable hardware element 120. The arbiter 124 may be at least one of hardware-implemented and software-implemented. The arbiter 124 may be configured to receive at least one item of information about a failure of the non-programmable hardware element 118 using at least one of startup diagnostics and on-the-fly diagnostics. The arbiter 124 may be further configured to activate the standby entity 122 only in the event of a critical failure. The critical failure may be selected from the group consisting of: a safety-related failure; a failure of a high-availability non-programmable hardware element 118. In particular, the critical failure may be a safety-related failure of a high-availability non-programmable hardware element 118.

[0063] Fig. 3 and Fig. 4 illustrate specific embodiments of the electronic device 110 in a highly schematic manner. Fig. 3 and Fig. 4 are intended for further illustration only and are not intended to be limiting. As already stated, the electronic device 110 may include a plurality of programmable hardware elements 120, in particular processors. As shown in Fig. 3, the electronic device 110 may include two programmable hardware elements 120, in particular a CPU and an FPGA. In Fig. 3, the FPGA acts as the standby entity 122 and the CPU acts as a main processor 136 of the electronic device 110. In the event of a DSP failure, indicated by the lightning symbol 130, the FPGA can be activated by the arbiter 124 and can replace the failed DSP. As shown in Fig. As shown in Figure 4, the electronic device 110 may include two CPUs as programmable hardware elements 120, one acting as the standby entity 122 and the other as the main processor 136. Here, a UART may fail, again indicated by the highlight symbol 130, and a CPU may replace it. As stated, these are merely examples for further illustration. Other options are, of course, possible, as those skilled in the art will readily understand.

[0064] Fig. Figure 5 illustrates a flowchart of one embodiment of a method for operating electronic device 110. The method includes the following steps. The steps are performed using an arbiter of the electronic device. Other elements may also be involved. a) (designated by reference numeral 138) deactivating a non-programmable hardware element 118 of the electronic device 110; and b) (designated by reference numeral 140) activating a standby entity 122 of a programmable hardware element 120 of the electronic device 110 to replace at least one non-programmable function provided by the non-programmable hardware element 118 with at least one programmable function provided by the standby entity 122.

[0065] The method steps may be performed in the given order. However, it should be noted that a different order may also be possible. The method may comprise further method steps not listed. Furthermore, one or more of the method steps may be performed once or repeatedly. Furthermore, two or more of the method steps may be performed simultaneously or in a temporally overlapping manner. The method may be at least partially computer-implemented.

[0066] The method may further comprise step a1), designated by reference numeral 142. Step a1) may be performed before step a). Step a1) may include receiving at least one piece of information about a fault of the non-programmable hardware element 118 using the arbiter 124. Step a1) may further comprise using at least one of startup diagnostics and on-the-fly diagnostics. Thus, step a1) may overall comprise receiving at least one piece of information about a fault of the non-programmable hardware element 118 using the arbiter 124 and at least one of startup diagnostics and on-the-fly diagnostics. The method may further comprise step a2), designated by reference numeral 144. Step a2) may be performed before step a). Step a2) may include defining at least one critical fault.At least one of steps a) and b) can only be performed in the event of a critical error. The critical error can be selected from the group consisting of: a safety-related error; a failure of a non-programmable hardware element 118 with high availability. In particular, the critical error can be a safety-related error of a non-programmable hardware element 118 with high availability. As already stated, the arbiter 124 can be at least partially comprised by the programmable hardware element 120, in particular by the standby entity 122. Thus, at least one of steps a) and b) can be performed using the programmable hardware element 120, in particular using the standby entity 122.

[0067] The method may further comprise step b1), designated by reference numeral 146. Step b1) may be performed before step b). Step b1) may comprise programming the standby entity with a programmable function to replace the non-programmable function provided by the non-programmable hardware element 118. The programming may comprise at least one of software programming and hardware programming. The programming may comprise receiving at least one software program from at least one memory, such as the internal memory 126 or the external memory 134. The programming may comprise installing the software program, in particular on the programmable hardware element 120. The method may further comprise step b2), designated by reference numeral 148. Step b2) may be performed before step b).Step b2) may include receiving the programmable function to replace the non-programmable function from the internal memory 126. The method may further include step b3), designated by reference numeral 150. Step b3) may be performed before step b). Step b3) may include receiving the programmable function to replace the non-programmable function from the external memory 134 via the external memory interface. The electronic device may include at least one GPIO. The method may further include step b4), designated by reference numeral 152. Step b4) may be performed before step b). Step b4) may include receiving the programmable function to replace the non-programmable function from the external memory 134 via the GPIO. The electronic device 110 may include at least one LVDS.The method may further comprise step b5), designated by reference numeral 154. Step b5) may be performed before step b). Step b5) may comprise receiving the programmable function for replacing the non-programmable function from the external memory 134 via the LVDS. The electronic device 110 may comprise at least one SerDes. The method may further comprise step b6), designated by reference numeral 156. Step b6) may be performed before step b). Step b6) may comprise receiving the programmable function for replacing the non-programmable function from the external memory 134 via the SerDes. Steps b1) to b6) may be performed in addition to or alternatively to one another. The subset and / or the sequence of steps b1) to b6) may be defined based on a specific application. Other options may also be generally possible.

[0068] Although specific examples have been illustrated and described herein, those skilled in the art will recognize that a variety of alternative and / or equivalent implementations may be substituted for the specific examples shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific examples discussed herein. Therefore, this disclosure is intended to be limited only by the claims and their equivalents.

[0069] It should be noted that the methods and devices, including their preferred embodiments, as set forth in this document can be used independently or in combination with the other methods and devices disclosed in this document. In addition, the features set forth in the context of a device are also applicable to a corresponding method, and vice versa. Furthermore, all aspects of the methods and devices set forth in this document can be combined in any desired manner. In particular, the features of the claims can be combined with one another in any desired manner.

[0070] It should be noted that the description and drawings merely illustrate the principles of the proposed methods and systems. Those skilled in the art will be able to implement various arrangements that, although not expressly described or shown herein, embody the principles of the disclosure and are included within its spirit and scope. Furthermore, all examples and embodiments set forth herein are primarily intended to be illustrative only to assist the reader in understanding the principles of the proposed methods and systems. Furthermore, all statements herein that provide principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to include their equivalents.

Claims

[1] An electronic device (110) comprising: • a plurality of non-programmable hardware elements (118), each non-programmable hardware element (118) configured to provide at least one non-programmable function; • at least one programmable hardware element (120) configured to provide at least one programmable function, wherein the programmable hardware element (120) comprises at least one standby entity (122), wherein the standby entity (122) is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements (118); and • at least one arbiter (124) configured to deactivate at least one non-programmable hardware element (118) and to activate the standby entity (122) to replace at least one non-programmable function provided by the non-programmable hardware element (118) with at least one programmable function. [2] The electronic device (110) according to the preceding claim, wherein the electronic device (110) is a microcontroller. [3] The electronic device (110) of any preceding claim, wherein the non-programmable hardware elements (118) are configured to at least partially provide various non-programmable functions. [4] The electronic device (110) according to any one of the preceding claims, wherein the programmable function is at least one of a software function and a hardware function. [5] The electronic device (110) according to any one of the preceding claims, wherein the standby entity (122) is at least one of software programmable and hardware programmable. [6] The electronic device (110) according to any one of the preceding claims, wherein the standby entity (122) comprises at least a portion of the programmable hardware element (120). [7] The electronic device (110) according to any one of the preceding claims, wherein the standby entity (122) is a standby element, in particular a unified standby element. [8] The electronic device (110) according to the preceding claim, wherein the programmable hardware element (120) comprises at least one processor separate from the standby element, in particular a main processor (136). [9] The electronic device (110) according to any one of the preceding claims, wherein the standby entity (122) is selected from the group consisting of: a central processing unit (CPU) or at least a part thereof; a field programmable gate array (FPGA) or at least a part thereof; a graphics processing unit (GPU) or at least a part thereof; a programmable state machine or at least a part thereof; a software element, in particular a software program. [10] The electronic device (110) according to any one of the preceding claims, wherein the non-programmable hardware elements (118) are selected from the group consisting of: a hardware accelerator; an input / output interface (IO interface). [11] The electronic device (110) according to any one of the preceding claims, wherein the arbiter (124) is configured to enable programming of the standby entity (122) with the programmable function. [12] The electronic device (110) according to any one of the preceding claims, wherein the arbiter (124) is configured to activate the standby entity (122) only in case of a critical error, wherein the critical error is selected from the group consisting of: a safety-related error; a failure of a non-programmable high-availability hardware element (118). [13] The electronic device (110) according to any one of the preceding claims, wherein the arbiter (124) is at least partially comprised by the programmable hardware element (120), in particular by the standby entity (122). [14] An embedded system (112) comprising at least one electronic device (110), the electronic device (110) comprising: • a plurality of non-programmable hardware elements (118), each non-programmable hardware element (118) configured to provide at least one non-programmable function; • at least one programmable hardware element (118) configured to provide at least one programmable function, wherein the programmable hardware element (120) comprises at least one standby entity (122), wherein the standby entity (122) is configured to provide at least one programmable function to replace the non-programmable functions of at least two non-programmable hardware elements (118); and • at least one arbiter (124) configured to deactivate at least one non-programmable hardware element (118) and to activate the standby entity (122) to replace the non-programmable function provided by the non-programmable hardware element (118) with at least one programmable function; wherein the embedded system (112) further comprises: • at least one further device (116) controlled by the electronic device (110). [15] The embedded system (112) according to the preceding, wherein in normal operation the further device (116) is controlled using at least one non-programmable function provided by at least one non-programmable hardware element (118) of the plurality of non-programmable hardware elements (118) of the electronic device (110), wherein in fault operation the further device (116) is controlled using at least one programmable function provided by the standby entity (122). [16] A method for operating at least one electronic device (110), the method comprising the following steps performed using an arbiter (124) of the electronic device (110): a) deactivating a non-programmable hardware element (118) of the electronic device (110); and b) activating a standby entity (122) of a programmable hardware element (120) of the electronic device (110) to replace at least one non-programmable function provided by the non-programmable hardware element (118) with at least one programmable function provided by the standby entity (122). [17] The method according to the preceding claim, further comprising step a1) performed before step a), wherein step a1) comprises receiving at least one item of information about a failure of the non-programmable hardware element (118) using the arbiter (124). [18] The method according to any one of the preceding method claims, further comprising step a2) performed before step a), wherein step a2) comprises defining at least one critical error, wherein at least one of steps a) and b) is performed only in case of the critical error. [19] The method according to any one of the preceding method claims, further comprising step b1) performed before step b), wherein step b1) comprises programming the standby entity (122) with a programmable function to replace the non-programmable function provided by the non-programmable hardware element (118), wherein the programming comprises at least one of software programming and hardware programming. [20] A use of an electronic device (110) according to any one of the preceding claims relating to an electronic device (110) or of a method for operating at least one electronic device (110) according to any one of the preceding method claims for a purpose selected from the group consisting of: an automotive application; a medical application, in particular an implant; a remote-controlled application; an industrial application.

Citation Information

Patent Citations

  • Technologies for hybrid field-programmable gate array application-specific integrated circuit code acceleration

    US20220244999A1

  • Network interface device failover

    US20230393956A1