# US 10,120,815 B2 · Configurable mailbox data buffer apparatus

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

- Number: US 10,120,815 B2
- Document ID: US10120815B2
- Status: Granted
- Kind: B2
- Application number: 15/184,789
- Filed: 2016-06-16
- Published: 2016-12-22
- Granted: 2018-11-06
- Earliest claimed: 2015-06-18
- Assignees: Microchip Technology Incorporated
- Applicants: Microchip Technology Incorporated
- Inventors: Michael Catherwood; David Mickey; Bryan Kris
- Web page: https://patentgrep.com/patent/US10120815B2

## CPC

- G06F 13/102: {where the program performs an interfacing function, e.g. device driver (G06F13/105 takes precedence; contention policies within device drivers G06F9/4881; scheduling within device drivers G06F9/52)}
- G06F 13/16: for access to memory bus (G06F13/28 takes precedence)
- G06F 13/20: for access to input/output bus
- G06F 13/42: Bus transfer protocol, e.g. handshake; Synchronisation
- G06F 15/167: using a common memory, e.g. mailbox
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A single chip microcontroller has a master core and at least one slave core. The master core is clocked by a master system clock and the slave core is clocked by a slave system clock and wherein each core is associated with a plurality of peripheral devices to form a master microcontroller and a slave microcontroller, respectively. A communication interface is provided between the master microcontroller and the slave microcontroller, wherein the communication interface has a plurality of configurable directional data registers coupled with a flow control logic which is configurable to assign a direction to each of the plurality of configurable data registers.

## Claims

### Claim 1

A single chip microcontroller comprising a master core and a slave core, wherein the master core is clocked by a master system clock and the slave core is clocked by a slave system clock and wherein each core is associated with a plurality of peripheral devices to form a master microcontroller and a slave microcontroller, respectively, further comprising a communication interface between the master microcontroller and the slave microcontroller, wherein the communication interface comprises a plurality of configurable directional data registers coupled with a flow control logic which is configurable to assign a direction to each of the plurality of configurable data registers, and further comprising fuses or configuration registers to configure each directional data registers.

### Claim 2 (depends on 1)

The single chip microcontroller according to claim 1, wherein each directional data register is configured by said fuses.

### Claim 3 (depends on 1)

The single chip microcontroller according to claim 1, wherein each directional data register is configured by said configuration register.

### Claim 4 (depends on 1)

The single chip microcontroller according to claim 1, further comprising handshake logic block configured to provide handshake signals between the master and slave core with respect to the plurality of configurable directional data registers.

### Claim 5 (depends on 1)

The single chip microcontroller according to claim 1, wherein the communication interface is further configurable to define a plurality of mailboxes, wherein a configurable number of consecutive data registers of said plurality of configurable data registers is assigned to each mailbox.

### Claim 6 (depends on 5)

The single chip microcontroller according to claim 5, further comprising fuses to configure each directional data registers.

### Claim 7 (depends on 5)

The single chip microcontroller according to claim 5, further comprising configuration registers to configure each directional data registers.

### Claim 8 (depends on 5)

The single chip microcontroller according to claim 5, wherein assignment of registers to a mailbox and a data direction of each of the plurality of configurable data register is programmed during programming of the single chip microcontroller.

### Claim 9 (depends on 5)

The single chip microcontroller according to claim 5, wherein one of said configurable registers of a mailbox is used as a control register.

### Claim 10 (depends on 1)

The single chip microcontroller according to claim 1, wherein a data direction of a configurable data register is assigned during programming of the single chip microcontroller.

### Claim 11 (depends on 1)

The single chip microcontroller according to claim 1, wherein each data register is controlled by a direction signal and a handshake signal.

### Claim 12 (depends on 1)

The single chip microcontroller according to claim 1, wherein at least one of said plurality of configurable data registers is as a status register.

### Claim 13 (depends on 1)

The single chip microcontroller according to claim 1, wherein at least one of said plurality of configurable data registers is as a command register.

### Claim 14 (depends on 1)

The single chip microcontroller according to claim 1, comprising a plurality of multiplexers for defining either a write path only from the master core to one of the configurable data register and a read path from the one of the configurable data register to the salve core or a write path only from the slave core to one of the configurable data register and a read path from the one of the configurable data register to the master core.

### Claim 15 (depends on 14)

The single chip microcontroller according to claim 14, wherein when the write path from the master or slave core to one of the configurable data register is set, respectively, a read path from the one of the configurable data register to the master or slave core is available.

### Claim 16 (depends on 14)

The single chip microcontroller according to claim 14, wherein when the write path from the master core to one of the configurable data register is set, the master clock provides a clock for writing the one of the configurable data register and the slave clock provides a clock for reading the one of the configurable data register.

### Claim 17 (depends on 14)

The single chip microcontroller according to claim 14, wherein when the write path from the slave core to one of the configurable data register is set, the slave clock provides a clock for writing the one of the configurable data register and the master clock provides a clock for reading the one of the configurable data register.

### Claim 18 (depends on 1)

The single chip microcontroller according to claim 1, further comprising a read FIFO memory and a write FIFO memory within the communication interface, wherein the read FIFO memory comprises a data input coupled with the slave core and a data output coupled with the master core and the write FIFO memory comprises a data input coupled with the master core and a data output coupled with the slave core.

### Claim 19 (depends on 18)

The single chip microcontroller according to claim 18, wherein the read FIFO memory and write FIFO memory are optionally enabled through a configuration register.

### Claim 20 (depends on 1)

The single chip microcontroller according to claim 1, further comprising a plurality of slave cores, wherein the communication interface comprises a plurality of data registers sets, each data register set comprising a plurality of configurable directional data registers coupled with a flow control logic which is configurable to assigned a direction to each of the plurality of configurable data registers.

### Claim 21

A method for providing communication between a master core and a slave core on a single chip microcontroller, wherein the master core is clocked by a master system clock and the slave core is clocked by a slave system clock and wherein each core is associated with a plurality of peripheral devices to form a master microcontroller and a slave microcontroller, respectively, the method comprising:
providing a communication interface between the master microcontroller and the slave microcontroller,
configuring a plurality of configurable directional data registers coupled with a flow control logic to form respective mailboxes by setting fuses or by programming configuration registers,
configuring for each of the plurality of configurable directional data registers a data direction from or to the master core;
exchanging data between the master core and the slave core only through said plurality of configurable directional data registers.

### Claim 22 (depends on 21)

The method according to claim 21, the steps of configuring is performed through fuses during programming of the single chip microcontroller.

### Claim 23 (depends on 21)

The method according to claim 21, wherein the step of exchanging is performed with handshake signals between the master and slave core.

### Claim 24 (depends on 21)

The method according to claim 21, wherein a configurable number of consecutive data registers of said plurality of configurable data registers is assigned to each mailbox.

### Claim 25 (depends on 24)

The method according to claim 24, wherein one of said configurable registers of a mailbox is used as a control register.

### Claim 26 (depends on 24)

The method according to claim 24, wherein at least one of said plurality of configurable data registers is as a status register or a command register.
