Dual boot panel SWAP mechanism

US9858083B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9858083-B2
Application numberUS-201414204208-A
CountryUS
Kind codeB2
Filing dateMar 11, 2014
Priority dateMar 14, 2013
Publication dateJan 2, 2018
Grant dateJan 2, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A central processing unit with dual boot capabilities is disclosed comprising an instruction memory further comprising a first and second memory area which are configured to be individually programmable, wherein first and second memory area can be assigned to an active memory from which instructions are executed and an inactive memory, respectively. The instruction set for the central processing unit comprises a dedicated instruction that allows to perform a swap from the an active memory area to an inactive memory area, wherein the swap is performed by executing the dedicated instruction in the active memory followed by a program flow change instruction in the active memory, whereupon the inactive memory becomes the new active memory and the active memory becomes the new inactive memory and execution of instructions continues in the new active memory.

First claim

Opening claim text (preview).

What is claimed is: 1. A central processing unit with dual boot capabilities, comprising: an instruction memory comprising a first and second memory area which are configured to be individually programmable, wherein first and second memory area can be assigned to an active memory from which instructions are executed and an inactive memory, respectively; wherein the instruction set for the central processing unit comprises a opcode, the sole purpose of the opcode to cause a swap from the an active memory area to an inactive memory area, wherein the swap is performed by executing the opcode in the active memory immediately followed by a program flow change instruction in the active memory, whereupon the inactive memory becomes the new active memory and the active memory becomes the new inactive memory and execution of instructions continues in the new active memory. 2. The central processing unit according to claim 1 , wherein the program flow change instruction is a branch or jump instruction. 3. The central processing unit according to claim 1 , further comprising a control register comprising at least one status bit which is set when said opcode has been successfully executed. 4. The central processing unit according to claim 3 , wherein the opcode acts as a no operation instruction when a swap cannot be successfully performed, wherein the no operation instruction advances a program counter to skip the program flow change instruction. 5. The central processing unit according to claim 1 , further comprising a control register comprising at least one control bit which must be set to allow a swap from the active memory to the inactive memory. 6. The central processing unit according to claim 5 , wherein the at least one control bit is set by setting said control bit at least twice within a predetermined time window. 7. The central processing unit according to claim 6 , wherein the time window is 2 instruction cycles. 8. The central processing unit according to claim 1 , wherein the inactive memory is configured to be programmable while a program is executed from the active memory. 9. The central processing unit according to claim 1 , wherein during initialization, the central processing unit is configured to assign the first memory area to the active memory based at least in part on a panel select value read from nonvolatile memory. 10. The central processing unit according to claim 9 , wherein the panel select value in nonvolatile memory is modified as a result of successful execution of the opcode. 11. The central processing unit according to claim 9 , wherein the panel select value in nonvolatile memory is modifiable by a software instruction subsequent to successful execution of the opcode. 12. The central processing unit according to claim 1 , further comprising a control register configured to enable or disable said opcode. 13. The central processing unit according to claim 12 , wherein to allow execution of the opcode the control register must be written with a first value followed by a second value within a predetermined time window, wherein the second value is a digital value inverse to the first value. 14. The central processing unit according to claim 13 , wherein the time window is 2 instruction cycles. 15. The central processing unit according to claim 3 , further comprising the step of enabling said opcode to be executable only after said at least one status bit in the control register has been cleared. 16. The central processing unit according to claim 15 , wherein said at least one status bit in the control register cannot be set by an instruction. 17. A method of operating a central processing unit with dual boot capabilities, comprising: providing an instruction memory with a first and second memory area which are configured to be individually programmable; assigning the first memory area to be an active memory from which instructions are executed and the second memory are to an inactive memory, wherein the central processing unit comprises an instruction set that includes a opcode, the sole purpose of the opcode when executed is to cause a swap from the first memory area to the second memory area, wherein the opcode is configurable to be executable or not executable; configuring the opcode to be executable; executing the opcode in the active memory followed by a program flow change instruction in the active memory, whereupon execution of the instructions the inactive memory becomes the new active memory and the active memory becomes the new inactive memory and execution of instructions continues in the new active memory. 18. The method according to claim 17 , wherein the program flow change instruction is a branch or jump instruction. 19. The method according to claim 17 , further comprising the step of automatically setting at least one status bit in a control register when said opcode has been successfully executed. 20. The method according to claim 19 , further comprising the step of enabling said opcode to be executable only after said at least one status bit in the control register has been cleared. 21. The method according to claim 20 , wherein said at least one status bit in the control register cannot be set by an instruction. 22. The method according to claim 20 , wherein the opcode acts as a no operation instruction when the opcode is not enabled, wherein the no operation instruction advances a program counter to skip the program flow change instruction. 23. The method according to claim 17 , further comprising the step of setting a control bit in a control register before executing the opcode wherein setting the control bit enables execution of the opcode. 24. The method according to claim 23 , further comprising setting the at least one control bit at least twice within a predetermined time window before executing the opcode whereupon execution of the opcode is enabled. 25. The method according to claim 24 , wherein the predetermined time window is 2 instruction cycles long. 26. The method according to claim 17 , further comprising the step of programming the inactive memory while a program is executed from the active memory. 27. The method according to claim 17 , wherein during initialization, the central processing unit assigns the first memory area to the active memory based at least in part on a panel select value read from nonvolatile memory. 28. The method according to claim 27 , wherein the panel select value in nonvolatile memory is modified as a result of successful execution of the opcode. 29. The method according to claim 27 , wherein the panel select value in nonvolatile memory is modifiable by a software instruction subsequent to successful execution of the opcode. 30. The method according to claim 17 , further comprising the step of writing a first value to a control register and subsequently writing a second value to the control register within a predetermined time window to enable said opcode, wherein the second value is a digital value inverse to the first value. 31. The method according to claim 30 , wherein the time window is 2 instruction cycles. 32. A central processing unit with dual boot capabilities, comprising: an instruction memory comprising a first and second memory area which are configured to be individually programmable, whe

Assignees

Inventors

Classifications

  • G06F9/441Primary

    Multiboot arrangements, i.e. selecting an operating system to be loaded · CPC title

  • G06F9/4401Primary

    Bootstrapping (security arrangements therefor G06F21/57) · CPC title

  • Physics · mapped topic

  • while running · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9858083B2 cover?
A central processing unit with dual boot capabilities is disclosed comprising an instruction memory further comprising a first and second memory area which are configured to be individually programmable, wherein first and second memory area can be assigned to an active memory from which instructions are executed and an inactive memory, respectively. The instruction set for the central processin…
Who is the assignee on this patent?
Microchip Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/441. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 02 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).