# US 8,543,755 B2 · Mitigation of embedded controller starvation in real-time shared SPI flash architecture

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,755 B2
- Document ID: US8543755B2
- Status: Granted
- Kind: B2
- Application number: 13/360,746
- Filed: 2012-01-29
- Published: 2012-09-20
- Granted: 2013-09-24
- Earliest claimed: 2011-03-15
- Assignees: Nuvoton Technology Corporation
- Applicants: Moshe Alon; Ilia Stolov; Erez Naory; Nir Tasher; Yuval Kirschner; Michal Schramm
- Inventors: Moshe Alon; Ilia Stolov; Erez Naory; Nir Tasher; Yuval Kirschner; Michal Schramm
- Web page: https://patentgrep.com/patent/US8543755B2

## CPC

- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

An embedded controller includes a microcontroller core, a first bus interface that does not support bus arbitration, a second bus interface and memory control circuitry. The first bus interface is configured to receive and transmit memory transactions from and to a Central Processing Unit (CPU) chipset. The second bus interface is configured to communicate with a memory and to transfer the memory transactions of the CPU chipset to and from the memory. The memory control circuitry is configured to evaluate a starvation condition that identifies an inability of the microcontroller core to access the memory via the second bus interface due to the memory transactions transferred between the CPU chipset and the memory via the first and second bus interfaces, and to invoke a predefined corrective action when the starvation condition is met.

## Claims

### Claim 1

An embedded controller, comprising:
a microcontroller core;
a first bus interface, which is configured to receive and transmit memory transactions from and to a Central Processing Unit (CPU) chipset and does not support bus arbitration;
a second bus interface, which is configured to communicate with a memory and to transfer the memory transactions of the CPU chipset to and from the memory; and
memory control circuitry, which is configured to evaluate a starvation condition that identifies an inability of the microcontroller core to access the memory via the second bus interface due to the memory transactions transferred between the CPU chipset and the memory via the first and second bus interfaces, and to invoke a predefined corrective action when the starvation condition is met.

### Claim 2 (depends on 1)

The embedded controller according to claim 1, wherein the memory control circuitry is configured to evaluate the starvation condition by detecting that no successful fetch transactions occur between the microcontroller core and the memory within a predetermined time period.

### Claim 3 (depends on 1)

The embedded controller according to claim 1, wherein the memory control circuitry is configured to evaluate the starvation condition by detecting that a number of successful fetch transactions, initiated by the EC microcontroller core via the second bus interface to the memory, is below a predetermined threshold.

### Claim 4 (depends on 1)

The embedded controller according to claim 1, wherein the memory control circuitry is configured to evaluate the starvation condition by detecting that the microcontroller core fails to access the memory within a predetermined time period.

### Claim 5 (depends on 1)

The embedded controller according to claim 1, wherein the memory control circuitry is configured to evaluate the starvation condition by estimating an average length of fetch transactions between the microcontroller core and the memory.

### Claim 6 (depends on 1)

The embedded controller according to claim 1, and comprising a watchdog circuit that is configured to monitor an expected progress of software executed by the microcontroller core, wherein the memory control circuitry is configured to evaluate the starvation condition by detecting a deviation from the expected progress using the watchdog circuit.

### Claim 7 (depends on 1)

The embedded controller according to claim 1, wherein the microcontroller core comprises a cache memory for caching memory access operations between the microcontroller core and the memory, and wherein the memory control circuitry is configured to evaluate the starvation condition based only on the memory access operations that are not served from the cache memory.

### Claim 8 (depends on 1)

The embedded controller according to claim 1, wherein the memory control circuitry is configured to assign to the inability of the microcontroller core to access the memory a starvation severity level, selected from a set of multiple different severity levels, and to invoke the predefined corrective action depending on the assigned starvation severity level.

### Claim 9 (depends on 1)

The embedded controller according to claim 1, wherein the memory control circuitry is configured to invoke the corrective action by initiating a shut-down of a computer comprising the embedded controller and the CPU chipset.

### Claim 10 (depends on 9)

The embedded controller according to claim 9, wherein the memory control circuitry is configured to initiate the shut-down of the computer without prior notification to the CPU chipset.

### Claim 11 (depends on 9)

The embedded controller according to claim 9, wherein the memory control circuitry is configured to request software running on a CPU of the computer to shut-down the computer.

### Claim 12 (depends on 1)

The embedded controller according to claim 1, wherein the microcontroller core is configured to invoke the corrective action by switching to run the embedded controller using emergency software code that is not fetched in real time from the memory over the second bus interface.

### Claim 13 (depends on 12)

The embedded controller according to claim 12, and comprising an additional microcontroller core that is configured to execute the emergency software code in response to detection of the starvation condition.

### Claim 14

A method, comprising:
in an embedded controller, receiving and transmitting memory transactions from and to a Central Processing Unit (CPU) chipset over a first bus interface that does not support bus arbitration, and communicating with a memory and transferring the memory transactions of the CPU chipset to and from the memory over a second bus interface;
evaluating a starvation condition that identifies an inability of the embedded controller to access the memory via the second bus interface due to the memory transactions transferred between the CPU chipset and the memory via the first and second bus interfaces; and
invoking a predefined corrective action when the starvation condition is met.

### Claim 15 (depends on 14)

The method according to claim 14, wherein evaluating the starvation condition comprises detecting that no successful fetch transactions occur between the embedded controller and the memory within a predetermined time period.

### Claim 16 (depends on 14)

The method according to claim 14, wherein evaluating the starvation condition comprises detecting that a number of successful fetch transactions, initiated by the embedded controller to the memory over the second bus interface, is below a predetermined threshold.

### Claim 17 (depends on 14)

The method according to claim 14, wherein evaluating the starvation condition comprises detecting that the embedded controller fails to access the memory within a predetermined time period.

### Claim 18 (depends on 14)

The method according to claim 14, wherein evaluating the starvation condition comprises estimating an average length of fetch transactions between the embedded controller and the memory.

### Claim 19 (depends on 14)

The method according to claim 14, wherein evaluating the starvation condition comprises detecting a deviation from an expected progress of software executed by the embedded controller, using a watchdog circuit that monitors the expected progress of the software.

### Claim 20 (depends on 14)

The method according to claim 14, wherein the embedded controller comprises a cache memory for caching memory access operations between the embedded controller and the memory, and wherein evaluating the starvation condition comprises assessing the starvation condition based only on the memory access operations that are not served from the cache memory.

### Claim 21 (depends on 14)

The method according to claim 14, wherein evaluating the starvation condition comprises assigning to the inability of the embedded controller to access the memory a starvation severity level, selected from a set of multiple different severity levels, and wherein invoking the predefined corrective action comprises selecting the corrective action depending on the assigned starvation severity level.

### Claim 22 (depends on 14)

The method according to claim 14, wherein invoking the corrective action comprises initiating a shut-down of a computer that comprises the embedded controller and the CPU chipset.

### Claim 23 (depends on 22)

The method according to claim 22, wherein initiating the shut-down comprises shutting-down the computer without prior notification to the CPU chipset.

### Claim 24 (depends on 22)

The method according to claim 22, wherein initiating the shut-down comprises requesting software running on a CPU of the computer to shut-down the computer.

### Claim 25 (depends on 14)

The method according to claim 14, wherein invoking the corrective action comprises switching to run the embedded controller using emergency software code that is not fetched in real time from the memory over the second bus interface.

### Claim 26 (depends on 25)

The method according to claim 25, wherein the embedded controller comprises a microcontroller core that runs software code when the starvation condition is not met, and wherein invoking the corrective action comprises causing an additional microcontroller core in the embedded controller to execute the emergency software code upon meeting the starvation condition.

### Claim 27

A computer, comprising:
a Central Processing Unit (CPU) chipset;
a memory; and
an embedded controller, comprising:
a microcontroller core;
a first bus interface, which is configured to receive and transmit memory transactions from and to the CPU chipset and does not support bus arbitration;
a second bus interface, which is configured to communicate with the memory and to transfer the memory transactions of the CPU chipset to and from the memory; and
memory control circuitry, which is configured to evaluate a starvation condition that identifies an inability of the microcontroller core to access the memory via the second bus interface due to the memory transactions transferred between the CPU chipset and the memory via the first and second bus interfaces, and to invoke a predefined corrective action when the starvation condition is met.
