IP Library Granted Patent US 8,880,785
Granted Patent B2
US 8,880,785 · App. 13/630,002 · Granted Nov 4, 2014

Microcontroller with integrated interface enabling reading data randomly from serial flash memory

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,880,785
App. No.
13/630,002
Granted
Nov 4, 2014
Kind
B2
Abstract

A microcontroller includes a microprocessor, a serial flash memory interface, and input/output (I/O) terminals for coupling the serial flash memory interface to external serial flash memory. The microprocessor is operable to generate instruction frames that trigger respective commands to read data from specified addresses in the external serial flash memory. The serial flash memory interface receives and processes the instruction frames, obtains the data contained in the specified addresses in the external serial flash memory regardless of whether the specified addresses are sequential or non-sequential, and provides the data for use by the microprocessor.

Claims (43)

1. A microcontroller comprising:

a microprocessor;

a serial flash memory interface; and

input/output (I/O) terminals for coupling the serial flash memory interface to external serial flash memory;

wherein the microprocessor is operable to generate instruction frames that trigger respective commands to read data from specified addresses in the external serial flash memory, and

wherein the serial flash memory interface is configured to receive and process the instruction frames, obtain the data contained in the specified addresses in the external serial flash memory regardless of whether the specified addresses are sequential or non-sequential, and to provide the data for use by the microprocessor.

2. The microcontroller of claim 1 wherein, in response to receiving the instruction frames generated by the microprocessor, the serial flash memory interface launches one or more corresponding instruction frames, each of which contains a read command that triggers reading of a continuous stream of data from one or more sequential addresses in the external serial flash memory starting at a respective specified address.

3. The microcontroller of claim 2 wherein the serial flash memory interface includes a serial flash memory controller that determines how many instruction frames to launch based, at least in part, on whether or not the addresses specified in the instruction frames generated by the microprocessor are sequential, on whether the instruction frames generated by the microprocessor dictate a backward or forward jump in non-sequential addresses, and on the distance from the address in a first one of the instruction frames to the address in the next one of the instruction frames if a forward jump is dictated.

4. The microcontroller of claim 3 wherein, if the address of a current read access request generated by the microprocessor is lower than the address of an immediately previous read access request, the serial flash memory controller launches a new instruction frame to obtain data starting at the address specified by the current read access request.

5. The microcontroller of claim 3 wherein, if the address of a current read access request generated by the microprocessor is higher than the address of an immediately previous read access request, and if the immediately previous address and the current address are not sequential, the serial flash memory controller determines whether to launch a new instruction frame to obtain data starting at the address specified by the current read access request based, at least in part, on a comparison of an amount of time required to launch the new instruction frame and an amount of time to wait for the external serial flash memory to read out the data sequentially in a current stream of data.

6. The microcontroller of claim 5 wherein, if the address of the current read access request generated by the microprocessor is higher than the address of the immediately previous read access request, and if the immediately previous address and the current address are not sequential, the serial flash memory controller launches the new instruction frame if it is determined that doing so will require less time than waiting for the external serial flash memory to read out the data, including the data from the current address, sequentially in a current stream of data.

7. The microcontroller of claim 5 wherein the serial flash memory controller calculates a number of clock cycles required to access data from the external serial flash memory when sending a new instruction frame and compares the calculated number of clock cycles to the number of clock cycles estimated to be required to access the data at the current address as part of the current stream of data.

8. The microcontroller of claim 1 wherein the serial flash memory interface comprises cache memory integrated as part of the serial flash memory interface.

9. The microcontroller of claim 1 wherein the serial flash memory interface is configured to detect that the microprocessor has generated a wrap transfer instruction and, in response to detecting the wrap transfer instruction, to launch a single instruction frame to the external serial flash memory requesting data required to complete the wrap data transfer instruction.

10. The microcontroller of claim 9 wherein the serial flash memory interface comprises cache memory integrated as part of the serial flash memory interface, wherein at least some of the data received from the external serial flash memory in response to the single instruction frame is stored in the cache memory before providing that data for use by the microprocessor.

11. A method of a microcontroller accessing data from external serial flash memory, the method comprising:

generating, by a microprocessor in the microcontroller, instruction frames that trigger respective commands to read data from specified addresses in the external serial flash memory; and

receiving and processing the instruction frames in a serial flash memory interface in the microcontroller;

obtaining, by way of the serial flash memory interface, the data contained in the specified addresses in the external serial flash memory regardless of whether the specified addresses are sequential or non-sequential; and

providing the data for use by the microprocessor.

12. The method of claim 11 including, in response to receiving the instruction frames generated by the microprocessor, launching one or more corresponding instruction frames, each of which contains a read command that triggers reading of a continuous stream of data from one or more sequential addresses in the external serial flash memory starting at a respective specified address.

13. The method of claim 12 including determining how many instruction frames are to be launched by the serial flash memory interface based, at least in part, on whether or not the addresses specified in the instruction frames generated by the microprocessor are sequential, on whether the instruction frames generated by the microprocessor dictate a backward or forward jump in non-sequential addresses, and on the distance from the address in a first one of the instruction frames to the address in the next one of the instruction frames if a forward jump is dictated.

14. The method of claim 13 including launching a new instruction frame, by the serial flash memory interface, to obtain data starting at the address specified by a current read access request, if the address of the current read access request generated by the microprocessor is lower than the address of an immediately previous read access request.

15. The method of claim 13 wherein, if the address of a current read access request generated by the microprocessor is higher than the address of an immediately previous read access request, and if the immediately previous address and the current address are not sequential, the serial flash memory controller determines whether to launch a new instruction frame to obtain data starting at the address specified by the current read access request based, at least in part, on a comparison of an amount of time required to launch the new instruction frame and an amount of time to wait for the external serial flash memory to read out the data sequentially in a current stream of data.

16. The method of claim 15 wherein, if the address of the current read access request generated by the microprocessor is higher than the address of the immediately previous read access request, and if the immediately previous address and the current address are not sequential, the serial flash memory controller launches the new instruction frame if it is determined that doing so will require less time than waiting for the external serial flash memory to read out the data, including the data from the current address, sequentially in a current stream of data.

17. The method of claim 15 including:

calculating a number of clock cycles required to access data from the external serial flash memory when sending a new instruction frame; and

comparing the calculated number of clock cycles to the number of clock cycles estimated to be required to access the data at the current address as part of the current stream of data.

18. The method of claim 11 including:

detecting that the microprocessor has generated a wrap transfer instruction; and

in response to detecting the wrap transfer instruction, launching a single instruction frame to the external serial flash memory requesting data required to complete the wrap data transfer instruction.

19. The method of claim 18 including storing in cache memory integrated as part of the serial flash memory controller at least some of the data received from the external serial flash memory in response to the single instruction frame.

20. A microcontroller-based system comprising:

a microcontroller; and

serial flash memory that is not integrated as part of the microcontroller,

wherein the microcontroller includes:

a microprocessor;

a serial flash memory interface; and

input/output (I/O) terminals for connecting the serial flash memory interface to the serial flash memory;

wherein the microprocessor generates instruction frames that trigger respective commands to read data from specified addresses in the external serial flash memory, and

wherein the serial flash memory interface receives and processes the instruction frames, obtains the data contained in the specified addresses in the serial flash memory regardless of whether the specified addresses are sequential or non-sequential, and provides the data to the microprocessor.

21. The microcontroller-based system of claim 20 wherein, in response to receiving the instruction frames generated by the microprocessor, the serial flash memory interface launches one or more corresponding instruction frames, each of which contains a read command that triggers reading of a continuous stream of data from one or more sequential addresses in the serial flash memory starting at a respective specified address.

22. The microcontroller-based system of claim 21 wherein the serial flash memory interface includes a serial flash memory controller that determines how many instruction frames it should launch based, at least in part, on whether or not the addresses specified in the instruction frames generated by the microprocessor are sequential, on whether the instruction frames generated by the microprocessor dictate a backward or forward jump in non-sequential addresses, and on the distance from the address in a first one of the instruction frames to the address in the next one of the instruction frames if a forward jump is dictated.

Assignments (18)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 060894/0437 →
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059363/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059863/0400 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: ATMEL CORPORATION
Reel/Frame 059262/0105 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059333/0222 →
SECURITY INTEREST Recorded Jun 4, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 057935/0474 →
SECURITY INTEREST Recorded Dec 24, 2020
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055671/0612 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 053468/0705 →
RELEASE OF SECURITY INTEREST Recorded May 30, 2020
From: JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 053466/0011 →
SECURITY INTEREST Recorded Apr 24, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 053311/0305 →
SECURITY INTEREST Recorded Sep 18, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 047103/0206 →
SECURITY INTEREST Recorded Jun 25, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 046426/0001 →
SECURITY INTEREST Recorded Feb 10, 2017
From: ATMEL CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041715/0747 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Apr 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ATMEL CORPORATION
Reel/Frame 038376/0001 →
PATENT SECURITY AGREEMENT Recorded Jan 3, 2014
From: ATMEL CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC. AS ADMINISTRATIVE AGENT
Reel/Frame 031912/0173 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2013
From: ATMEL ROUSSET S.A.S
To: ATMEL CORPORATION
Reel/Frame 030181/0642 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2012
From: SCHUMACHER, FREDERIC; PEAN, GUILLAUME; TIENNOT, RENAUD
To: ATMEL ROUSSET S.A.S.
Reel/Frame 029134/0818 →