Abstraction of configurable processor functionality for operating systems portability
First Claim
1. A method for allowing a desired operating system to be executed on different configurations of a base configurable processor comprising:
- automatically providing a common software interface to a plurality of different operating systems, including the desired operating system; and
automatically providing an abstraction layer that abstracts areas of the processor configurability, such that a first software implementation of the interface and abstraction layer build is executable together with the desired operating system on a first configuration of the base configurable processor, and a second software implementation of the interface and abstraction layer build is executable together with the desired operating system on a second different configuration of the base configurable processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A hardware abstraction layer operates as a system architectural layer between a real-time operating system and an underlying configurable processor. The hardware abstraction layer provides an abstraction of processor-specific functionality to the operating system. In particular, it abstracts configurable processor features visible to the operating system to provide a uniform, standardized interface between the operating system and the configurable processor on which it runs. Thus, an operating system running on top of the hardware abstraction layer will work on all configurations of the processor which differ from one another only in the configuration parameters covered by the hardware abstraction layer. The hardware abstraction layer may be generated using the same information that is used to describe the features being configured in the configurable processor. Automatic generation of the HAL greatly eases use of the HAL and the configurable processor, since the user is not required to manually write the HAL or adapt an existing one based on the processor configuration parameters.
163 Citations
16 Claims
-
1. A method for allowing a desired operating system to be executed on different configurations of a base configurable processor comprising:
-
automatically providing a common software interface to a plurality of different operating systems, including the desired operating system; and
automatically providing an abstraction layer that abstracts areas of the processor configurability, such that a first software implementation of the interface and abstraction layer build is executable together with the desired operating system on a first configuration of the base configurable processor, and a second software implementation of the interface and abstraction layer build is executable together with the desired operating system on a second different configuration of the base configurable processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 11)
-
-
10. A system for generating software for execution on a configurable processor, comprising:
-
an interface that receives a configurable processor description, including a first configuration of the configurable processor and a second different configuration of the configurable processor; and
a build system that receives the first and second configurations and automatically generates a software implementation having an abstraction layer that abstracts configurable portions of the configurable processor, such that a first build of the software implementation is executable on the first configuration of the configurable processor and a second build of the software implementation is executable on the second configuration of the configurable processor. - View Dependent Claims (12)
-
-
13. A method of porting a desired operating system to different configurations of a base configurable processor comprising:
-
providing a common software interface to a plurality of different operating systems, including the desired operating system;
receiving a first configuration of the base configurable processor;
automatically generating a first abstraction layer based on the first configuration;
building a first software implementation using the common software interface and the first abstraction layer, the first software implementation being executable together with the desired operating system on the first configuration of the base configurable processor;
receiving a second configuration of the base configurable processor, the second configuration being different than the first configuration; and
automatically generating a second abstraction layer based on the first configuration;
building a second software implementation using the common software interface and the second abstraction layer, the second software implementation being executable together with the desired operating system on the second configuration of the base configurable processor. - View Dependent Claims (14)
-
-
15. A method of designing a configurable processor, the configurable processor having a first instruction set architecture portion that is not configurable and a second instruction set architecture portion that is user-configurable, the configurable processor being able to execute software intended for a desired operating system, the method comprising:
-
automatically providing a common software interface to a plurality of different operating systems, including the desired operating system;
receiving a desired configuration for the configurable processor, the desired configuration specifying parameters for configuration of the second instruction set architecture portion of the configurable processor, the parameters including two or more of save and restore of configurable processor state, co-processor initialization and control, interrupts, timers, instruction caches, processor data caches, processor debug features, and instruction stream disassembly;
automatically generating an abstraction layer based on the received configuration; and
building a software implementation using the common software interface and the abstraction layer, the software implementation being executable together with the desired operating system on the configurable processor.
-
-
16. A system for designing a configurable processor, the configurable processor having a first instruction set architecture portion that is not configurable and a second instruction set architecture portion that is user-configurable, the configurable processor being able to execute software intended for a desired operating system, the system comprising:
-
a common software interface to a plurality of different operating systems, including the desired operating system;
a user interface for receiving a desired configuration for the configurable processor, the desired configuration specifying parameters for configuration of the second instruction set architecture portion of the configurable processor, the parameters including two or more of save and restore of configurable processor state, co-processor initialization and control, interrupts, timers, instruction caches, processor data caches, processor debug features, and instruction stream disassembly;
means for automatically generating an abstraction layer based on the received configuration; and
means for building a implementation using the common software interface and the abstraction layer, the software implementation being executable together with the desired operating system on the configurable processor.
-
Specification