+

WO2017166267A1 - Génération et personnalisation cohérentes d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques - Google Patents

Génération et personnalisation cohérentes d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques Download PDF

Info

Publication number
WO2017166267A1
WO2017166267A1 PCT/CN2016/078259 CN2016078259W WO2017166267A1 WO 2017166267 A1 WO2017166267 A1 WO 2017166267A1 CN 2016078259 W CN2016078259 W CN 2016078259W WO 2017166267 A1 WO2017166267 A1 WO 2017166267A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
firmware
simulation
setup
platform
Prior art date
Application number
PCT/CN2016/078259
Other languages
English (en)
Inventor
Junjing SHI
Jakob ENGBLOM
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to PCT/CN2016/078259 priority Critical patent/WO2017166267A1/fr
Publication of WO2017166267A1 publication Critical patent/WO2017166267A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Definitions

  • Embodiments described herein generally relate to computers. More particularly, embodiments relate to facilitating consistent generation and customization of simulation firmware and platform in computing environments.
  • Simulators are common for firmware, system software, and complex software application development. Although these simulators can be rather useful, there are some practical and critical limitations with how the simulators are provided and used. For example, a default simulation module is based on a standard customer reference board (CRB) and not on a customer’s particular customized production board (CPB) and thus customers are required to customize their simulation models into creating new models for their target production platforms. This sort of customization is cumbersome and requires a great deal of effort on part of the developers in acquiring expertise and learning to customize such simulation models, resulting in wastage of human and system resources.
  • CRM customer reference board
  • CPB customized production board
  • simulator customization work is kept isolated from any firmware development work and despite sharing of platform information between simulators and firmware, the two domains are kept different and do not leverage each other, which leads to double customization effort for a single CPB.
  • Figure 1 illustrates a computing device employing a simulation and firmware generation and customization mechanism according to one embodiment.
  • Figure 2 illustrates a simulation and firmware generation and customization mechanism according to one embodiment.
  • Figure 3A illustrates a use-case scenario according to one embodiment
  • Figure 3B illustrates a transaction sequence for facilitating generation and customization of simulation firmware and platform according to one embodiment.
  • Figure 3C illustrates a transaction sequence for facilitating generation and customization of simulation firmware and platform according to one embodiment.
  • Figure 3D illustrates a transaction sequence for facilitating generation and customization of simulation firmware and platform according to one embodiment.
  • Figure 4 illustrates a method for facilitating generation and customization of simulation firmware and platform in computing environments according to one embodiment.
  • Figure 5 illustrates computer environment suitable for implementing embodiments of the present disclosure according to one embodiment.
  • Figure 6 illustrates a method for facilitating dynamic targeting of users and communicating of message according to one embodiment.
  • Embodiments provide for a novel technique to allow for customers or users (e.g., software developers, hardware developers, system integrators, etc. ) representing customers (e.g., organizations, companies, business entities, government agencies, non-profit organizations, educational institutions, open-source developers, etc. ) to easily define their own firmware configuration without any learning effort (such as learning multiple programming languages) and further, to use the configuration to generate a simulator configuration using platform information as defined by firmware tools. For example, a user may perform this configuration setup without needing any help from a service provider or any third-party companies.
  • customers or users e.g., software developers, hardware developers, system integrators, etc.
  • customers e.g., organizations, companies, business entities, government agencies, non-profit organizations, educational institutions, open-source developers, etc.
  • firmware tools e.g., software developers, hardware developers, system integrators, etc.
  • a user may perform this configuration setup without needing any help from a service provider or any third-party companies.
  • a customized simulator and any platform firmware may be dynamically and automatically generated using configuration data, such as previous or known configuration data, associated with a firmware engine.
  • embodiments are not limited to any particular number and type of powered devices, unpowered objects, software applications, application services, customized settings, etc., or any particular number and type of computing devices, networks, deployment details, etc. ; however, for the sake of brevity, clarity, and ease of understanding, throughout this document, references are made to various sensors, cameras, microphones, speakers, display screens, user interfaces, software applications, user preferences, customized settings, mobile computers (e.g., smartphones, tablet computers, etc. ) , communication medium/network (e.g., cloud network, the Internet, proximity network, Bluetooth, etc. ) , but that embodiments are not limited as such.
  • communication medium/network e.g., cloud network, the Internet, proximity network, Bluetooth, etc.
  • FIG 1 illustrates a computing device 100 employing a simulation and firmware generation and customization mechanism 110 according to one embodiment.
  • Computing device 100 e.g., server computer, desktop computer, mobile computer, etc.
  • Computing device 100 may include any number and type of data processing devices, such as large computing systems, such as server computers, desktop computers, etc. Although in this embodiment computing device 100 is regarded as a server computer, embodiments are not limited at such. For example, in some embodiments, computing device 100 may include one or more of set-top boxes (e.g., Internet-based cable television set-top boxes, etc. ) , global positioning system (GPS) -based devices, etc. Computing device 100 may include mobile computing devices serving as communication devices, such as cellular phones including smartphones, personal digital assistants (PDAs) , tablet computers, laptop computers (e.g., Ultrabook TM system, etc.
  • PDAs personal digital assistants
  • laptop computers e.g., Ultrabook TM system, etc.
  • HMDs head-mounted displays
  • wearable glasses e.g., wearable glasses, head-mounted binoculars, gaming displays, military headwear, etc.
  • other wearable devices e.g., smart watches, bracelets, smartcards, jewelry, clothing items, etc. , and/or the like.
  • Computing device 100 may include an operating system (OS) 106 serving as an interface between hardware and/or physical resources of the computer device 100 and a user.
  • OS operating system
  • Computing device 100 further includes one or more processor (s) 102, memory devices 104, network devices, drivers, or the like, as well as input/output (I/O) sources 108, such as touchscreens, touch panels, touch pads, virtual or regular keyboards, virtual or regular mice, etc.
  • I/O input/output
  • job may refer to an individual or a person or a group of individuals or persons using or having access to one or more computing devices, such as computing device 100.
  • Figure 2 illustrates simulation and firmware generation and customization mechanism 110 of Figure 1 according to one embodiment.
  • simulation and firmware generation and customization mechanism 110 may include any number and type of components, such as (without limitation) : detection/reception and access logic ( “access logic” ) 201; evaluation and parsing logic ( “evaluation logic” ) 203, firmware and virtual platform generation engine ( “generation engine” ) 205; presentation logic 207; user interface logic 209; and communication/compatibility logic 211.
  • Computing device 100 is further illustrated as having access to and being in communication with one or more database (s) 225.
  • Computing device 100 may be in communication with one or more client computing devices including any communication and/or data processing devices, such as computing device 250 (e.g., client computer) , over communication medium (s) 230 (e.g., cloud network, Internet, proximity network, etc. ) .
  • Computing device 250 is shown as hosting software application 251 offering application programming interface ( “API” or “user interface” ) 253 and communication/interfacing logic 255.
  • Computing device 250 is further shown as having storage device 259 and one or more I/O component (s) 257, such as camera (s) 261, display screen (s) 269, and/or the like.
  • Computing device 250 may include (without limitation) mobile computers (e.g., smartphone, tablet computers, etc. ) , smart wearable devices (e.g., smart watch, wearable glasses, HMDs, etc. ) , Internet of Things (IoT) devices, laptop computers, netbooks, desktop computers, etc.
  • IoT Internet of Things
  • computing device 100 is referred to as a server computer (e.g., cloud-based server, application server, Web server, etc. ) ; however, embodiments are not limited as such.
  • computing device 100 may be in communication with one or more other computing device, such as computing device 250 serving as a user or client computer.
  • computing device 250 may include storage medium or device 259 and host client-side software application, such as software application 251, offering user interface 253 (e.g., graphical user interface (GUI) -based user interface, such as a Web browser, mobile application-based user interface, etc. ) and having communication/interface logic 255 to facilitate user interface 253 and communication with other devices including other computing devices, such as computing device 100.
  • GUI graphical user interface
  • simulation and firmware generation and customization mechanism 110 may be hosted entirely by a server computer, such as computing device 100, or, in another embodiment, one or more components of simulation and firmware generation and customization mechanism 110 may be hosted by a client computer, such as computing device 250.
  • software application 251 at computing device 250 may be a client-based software application complimenting simulation and firmware generation and customization mechanism 110 at computing device 100, where, for example, user interface logic 209 may offer user interface 219 at computing device 100 and, in some embodiments, also offer user interface 253 of software application 251 as further facilitated by communication/interfacing logic 255.
  • computing device 100 may be further in communication with one or more repositories, data sources, databases, such as database (s) 225, having any amount and type of information, such as data, metadata, etc., relating to any number and type of applications, such as world views or images, data/metadata relating to geographical locations and/or images sources (e.g., cameras, satellites, etc. ) , security data, user preferences and/or profiles, database of components, firmware components, virtual platform components, simulation specifications, customer specification documents, and/or the like.
  • database (s) 225 having any amount and type of information, such as data, metadata, etc., relating to any number and type of applications, such as world views or images, data/metadata relating to geographical locations and/or images sources (e.g., cameras, satellites, etc. ) , security data, user preferences and/or profiles, database of components, firmware components, virtual platform components, simulation specifications, customer specification documents, and/or the like.
  • the configuration of the simulator may be used by customers (e.g., companies, business entities, organizations, etc. ) of the service provider (such as Corporation) for development of firmware, system software, networking systems, complex software applications, and/or the like, and in turn, decrease the time-to-market (TTM) for their products.
  • customers e.g., companies, business entities, organizations, etc.
  • service provider such as Corporation
  • TTM time-to-market
  • simulators can be very useful for Internet of Things (IoT) projects, such as a user may rapidly create and deliver device and system software for IoT deployment and product development using a simulator. This may be performed locally, such as at computing device 250, or over communication medium (s) 230, such as one or more networks (e.g., a cloud network, a proximity network, the Internet, etc. ) .
  • IoT Internet of Things
  • a user may rapidly create and deliver device and system software for IoT deployment and product development using a simulator. This may be performed locally, such as at computing device 250, or over communication medium (s) 230, such as one or more networks (e.g., a cloud network, a proximity network, the Internet, etc. ) .
  • networks e.g., a cloud network, a proximity network, the Internet, etc.
  • simulators can be very useful for software development and production TTM, there can be serious and practical limitations with how simulations are configured and created.
  • a default simulation model is typically based on the standard CRB and not a particular customer’s CPB, which leads to each customer performing their own customization of a new model for their target production platform (TPP) .
  • TPP target production platform
  • building simulation models is regarded as a skill that is to be acquired by experience and learning.
  • one conventional technique for constructing a simulation model or setup may require learning and application of multiple programming languages, such as a device model languages, high-level general purpose object-oriented languages, command-line interface (CLI) scripting languages, etc.
  • another conventional technique for require incurring high cost and often long negotiations and may be beneficial for only big customers with large production volumes and large development teams.
  • basic simulators may be provided to customers but it is not feasible to customize each simulator for its potential customer based on the customer’s products, volume or level of production, etc.
  • Embodiments provide for reusing common platform information gathered in a simple interface to generate both firmware and a simulator configuration. Once tooling is set up, this technique has low cost for each incremental user and each incremental CPB, and thus can be freely scaled to support any number and type of small and large customers.
  • one or more components 201-211 of simulation and firmware generation and customization mechanism 110 may be capable of establishing communication between itself and user interface 253 at computing device 250 to define a platform, which may then be used to customize components in the firmware engine and the simulator to generate a customized pair of simulator and firmware engine-generated firmware such that it suits each customer CPB.
  • firmware engine may be provided as a tool to automatically generate a unified extensible firmware interface (UEFI) firmware image for customer production platforms.
  • firmware engine may employ a straight-forward platform modeling mechanism to easily define what components are or need to be present in the platform and how the components need to connect with each other and their configurations.
  • firmware engine may be capable of simplifying and accelerating the creation of platform firmware images, allowing developers to quickly deploy platforms based on reference designs (e.g., service provider reference designs) , etc., where customers can configure firmware features using a catalog of compatible firmware packages, without the need for modifying source.
  • reference designs e.g., service provider reference designs
  • access logic 201 may access this platform information at firmware engine and reuse the information to map any firmware engine components and configurations to simulation device components and attributes in order to then generate a platform simulation model to match the firmware as facilitated by generation engine 205. Further, for example, by focusing on selection from a known set of working components, automation and generation of correct-by-construction configurations may be performed, where a single source may be used for generating multiple interdependent assets, simplifying the customer work process and speeding time to market.
  • access logic 201 is capable of receiving or accessing design and other customer-relevant information from, for example, specification documents as provided by software application 251 at computing device 250. Similarly, access logic 201 may be used to receive or access firmware component implementation details from a firmware engine repository at database (s) 225 along with receiving or accessing virtual platform component implementation details from simulation packages at database (s) 225, wherein the firmware implementations and platform implementations may be used for generation of boot firmware and virtual platform setup, respectively, by generation engine 205.
  • evaluation logic 203 may be used as a parser to parse any information extracted from the specification document and communicate the parsed information to generation engine 205 so that the parsed information may be used for generating a package including boot firmware and/or virtual platform, wherein the boot firmware runs on the virtual platform to automatically provide for a binary setup of the platform firmware together with a simulator to allow for automatic customization of the simulator at computing device 250, using user interface 253, according to the needs and requirements of the customer associated with computing device 250.
  • evaluation logic 203 may be used to parse the information and any other relevant data to extract certain data that may be useful in generating a package of tools including and offering the boot framework and the virtual platform, where the boot framework runs on the virtual platform, wherein the boot framework and the virtual platform are capable of corresponding to local boot framework and hardware board or platform, respectively, of computing device 250 as facilitated by presentation logic 207.
  • presentation logic 207 prepares the newly-generated boot framework and virtual platform to be communicated over to computing device 250 over communication medium (s) 230 as facilitated by communication/compatibility logic 211 and communication/interfacing logic 255.
  • presentation logic 207 in communication with user interface logic 209 and communication/compatibility logic 211, establishes any relevant patterns and necessary protocols so that the boot firmware and the virtual platform accurately correspond to and are appropriately delivered over to computing device 250, where, for example, the boot framework may run on the local hardware of computing device 250, while, for example, access to the virtual platform and the boot framework running on it is offered to computing device 250.
  • presentation logic 207 is further to set up communication of relevant components, such as from database (s) 225, over to computing device 250 so that the user representing a customer and having access to computing device 250 may use user interface 253 to access various features of this package having the boot firmware and the virtual platform to allow for customization, modeling, and using of a simulator (e.g., simulator) for software development, etc., in compliance with the customer’s product types, business scale, sales volume, and other needs or requirements, etc.
  • a simulator e.g., simulator
  • user interface 253 may include any number and type of user application programming interfaces (APIs) , such as a graphical user interface (GUI) , a web browser, an application interface (e.g., mobile application interface) , etc., that may be used by the user to create a specification, simulation model, etc. Further, in one embodiment, user interface logic 209 to facilitate user interface 253 at computing device 250.
  • APIs user application programming interfaces
  • GUI graphical user interface
  • web browser e.g., a web browser
  • application interface e.g., mobile application interface
  • user interface logic 209 to facilitate user interface 253 at computing device 250.
  • firmware engine device model may be extended to and transformed into a simulation device component, as shown with reference to Figure 3A, where for a device, such as computing device 250, firmware engine may use bill of materials (BOM) meta files to define it, such as a BOM meta file that may be reused to define a simulation device, such as computing device 250.
  • BOM bill of materials
  • simulator may need to know and define how large is the size and what image contents are to be simulated, which is regarded as extra information for a firmware domain (e.g., UEFI firmware domain) .
  • firmware engine information may be mapped to corresponding simulation device attributes, where the mapping may be used to extend or transform BOM names to simulation device names, connection points to simulation connectors, commands into files, and/or like.
  • computing device 100 may host I/O sources 108 having capturing/sensing component (s) and output source (s) .
  • computing device 250 include one or more I/O component (s) 257, such as one or more camera (s) 261 (e.g., 2D/3D cameras, depth-sensing cameras, cameras, infrared (IR) cameras, etc.
  • I/O component (s) 257 such as one or more camera (s) 261 (e.g., 2D/3D cameras, depth-sensing cameras, cameras, infrared (IR) cameras, etc.
  • capacitors radio components, radar components, one or more microphones, one or more sensors, scanners, accelerometers, light-emitting diodes (LEDs) , one or more speakers and/or vibration motors, projectors, display screens 267, etc. ) .
  • capturing/sensing component (s) may include sensor array (such as microphones or microphone array (e.g., ultrasound microphones) , cameras or camera array (e.g., two-dimensional (2D) cameras, 3D cameras, infrared (IR) cameras, depth-sensing cameras, etc. ) , capacitors, radio components, radar components, etc. ) , scanners, etc., while output components may include display screens/devices, projectors, speakers, etc.
  • sensor array such as microphones or microphone array (e.g., ultrasound microphones)
  • cameras or camera array e.g., two-dimensional (2D) cameras, 3D cameras, infrared (IR) cameras, depth-sensing cameras, etc.
  • IR infrared
  • output components may include display screens/devices, projectors, speakers, etc.
  • Capturing/sensing component (s) at computing device 100 and/or I/O component (s) 257 at computing device 250 may further include one or more of vibration components, tactile components, conductance elements, biometric sensors, chemical detectors, signal detectors, electroencephalography, functional near-infrared spectroscopy, wave detectors, force sensors (e.g., accelerometers) , illuminators, eye-tracking or gaze-tracking system, head-tracking system, etc., that may be used for capturing any amount and type of visual data, such as images (e.g., photos, videos, movies, audio/video streams, etc. ) , and non-visual data, such as audio streams or signals (e.g., sound, noise, vibration, ultrasound, etc.
  • radio waves e.g., wireless signals, such as wireless signals having data, metadata, signs, etc.
  • chemical changes or properties e.g., humidity, body temperature, etc.
  • biometric readings e.g., figure prints, etc.
  • brainwaves brain circulation, environmental/weather conditions, maps, etc.
  • one or more capturing/sensing component (s) and/or I/O component (s) 257 may further include one or more of supporting or supplemental devices for capturing and/or sensing of data, such as illuminators (e.g., IR illuminator) , light fixtures, generators, sound blockers, etc.
  • illuminators e.g., IR illuminator
  • light fixtures e.g., IR illuminator
  • generators e.g., sound blockers
  • capturing/sensing component (s) and/or I/O component (s) 257 may further include any number and type of context sensors (e.g., linear accelerometer) for sensing or detecting any number and type of contexts (e.g., estimating horizon, linear acceleration, etc., relating to a mobile computing device, etc. ) .
  • context sensors e.g., linear accelerometer
  • capturing/sensing component (s) and/or I/O component (s) 257 may include any number and type of sensors, such as (without limitations) : accelerometers (e.g., linear accelerometer to measure linear acceleration, etc.
  • inertial devices e.g., inertial accelerometers, inertial gyroscopes, micro-electro-mechanical systems (MEMS) gyroscopes, inertial navigators, etc.
  • MEMS micro-electro-mechanical systems
  • gravity gradiometers to study and measure variations in gravitation acceleration due to gravity, etc.
  • capturing/sensing component (s) and/or I/O component (s) 257 may include (without limitations) : audio/visual devices (e.g., cameras, microphones, speakers, etc. ) ; context-aware sensors (e.g., temperature sensors, facial expression and feature measurement sensors working with one or more cameras of audio/visual devices, environment sensors (such as to sense background colors, lights, etc. ) ; biometric sensors (such as to detect fingerprints, etc. ) , calendar maintenance and reading device) , etc. ; global positioning system (GPS) sensors; resource requestor; and/or TEE logic. TEE logic may be employed separately or be part of resource requestor and/or an I/O subsystem, etc.
  • Capturing/sensing component (s) and/or I/O component (s) 257 may further include voice recognition devices, photo recognition devices, facial and other body recognition components, voice-to-text conversion components, etc.
  • output component (s) and/or I/O component (s) 257 may include dynamic tactile touch screens having tactile effectors as an example of presenting visualization of touch, where an embodiment of such may be ultrasonic generators that can send signals in space which, when reaching, for example, human fingers can cause tactile sensation or like feeling on the fingers.
  • output component (s) and/or I/O component (s) 257 may include (without limitation) one or more of light sources, display devices and/or screens, audio speakers, tactile components, conductance elements, bone conducting speakers, olfactory or smell visual and/or non/visual presentation devices, haptic or touch visual and/or non-visual presentation devices, animation display devices, biometric display devices, X-ray display devices, high-resolution displays, high-dynamic range displays, multi-view displays, and head-mounted displays (HMDs) for at least one of virtual reality (VR) and augmented reality (AR) , etc.
  • VR virtual reality
  • AR augmented reality
  • embodiments are not limited to any particular number or type of use-case scenarios; however, for the sake of brevity and clarity, one or more use-case scenarios are discussed throughout this document for exemplary purposes but that embodiments are not limited as such.
  • Wind simulator, UEFI firmware, and/or the like are discussed throughout this document, but that embodiments are not limited as such.
  • “user” may refer to someone having access to one or more computing devices, such as computing device 250, and may be referenced interchangeably with “person” , “individual” , “human” , “him” , “her” , “child” , “adult” , “viewer” , “player” , “gamer” , “software/system developer” , “software/system programmer” , “system administrator” , and/or the like.
  • Communication/compatibility logic 211 may be used to facilitate dynamic communication and compatibility between various components, networks, computing devices, etc., such as server computer 100, client computer 250, database (s) 225, and/or communication medium (s) 230, etc., and any number and type of other computing devices (such as wearable computing devices, mobile computing devices, desktop computers, server computing devices, etc. ) , processing devices (e.g., central processing unit (CPU) , graphics processing unit (GPU) , etc.
  • CPU central processing unit
  • GPU graphics processing unit
  • capturing/sensing components e.g., non-visual data sensors/detectors, such as audio sensors, olfactory sensors, haptic sensors, signal sensors, vibration sensors, chemicals detectors, radio wave detectors, force sensors, weather/temperature sensors, body/biometric sensors, scanners, etc., and visual data sensors/detectors, such as cameras, etc.
  • user/context-awareness components and/or identification/verification sensors/devices such as biometric sensors/detectors, scanners, etc.
  • memory or storage devices such as data storage devices, hard drives, solid-state drives, hard disks, memory cards or devices, memory circuits, etc.
  • network e.g., Cloud network, Internet, Internet of Things, intranet, cellular network, proximity networks, such as Bluetooth, Bluetooth low energy (BLE) , Bluetooth Smart, Wi-Fi proximity, Radio Frequency Identification, Near Field Communication, Body Area Network, etc. ) , wireless or wired communications and relevant protocols (e.g., WiMAX, Ethernet, etc. ) , connectivity and location management techniques, software applications/websites, (e.g., social and/or business networking websites, business applications, games and other entertainment applications, etc. ) , programming languages, etc., while ensuring compatibility with changing technologies, parameters, protocols, standards, etc.
  • network e.g., Cloud network, Internet, Internet of Things, intranet, cellular network, proximity networks, such as Bluetooth, Bluetooth low energy (BLE) , Bluetooth Smart, Wi-Fi proximity, Radio Frequency Identification, Near Field Communication, Body Area Network, etc.
  • wireless or wired communications and relevant protocols e.g., WiMAX, Ethernet, etc.
  • connectivity and location management techniques
  • logic may refer to or include a software component that is capable of working with one or more of an operating system, a graphics driver, etc., of a computing device, such as computing device 100, 250.
  • logic may refer to or include a hardware component that is capable of being physically installed along with or as part of one or more system hardware elements, such as an application processor, a graphics processor, etc., of a computing device, such as computing device 100, 250.
  • logic may refer to or include a firmware component that is capable of being part of system firmware, such as firmware of an application processor or a graphics processor, etc., of a computing device, such as computing device 100, 250.
  • any use of a particular brand, word, term, phrase, name, and/or acronym such as “simulator” , “firmware” , “boot firmware” , “virtual platform” , “user interface” , “package” , “tools” , “firmware engine” , “specification document” , “database of components” , “firmware component implementations” , “virtual platform component implementations” , “UEFI” , “BOM” , “binary image management” , “CRB” , “CPB” , “firmware image” , “Wind ” , “camera” , “sensor” , “microphone” , “display screen” , “speaker” , “recognition” , “authentication” , “privacy” , “user” , “user profile” , “user preference” , “sender” , “receiver” , “personal device” , “smart device”
  • simulation and firmware generation and customization mechanism 110 may be added to and/or removed from simulation and firmware generation and customization mechanism 110 to facilitate various embodiments including adding, removing, and/or enhancing certain features.
  • simulation and firmware generation and customization mechanism 110 many of the standard and/or known components, such as those of a computing device, are not shown or discussed here. It is contemplated that embodiments, as described herein, are not limited to any particular technology, topology, system, architecture, and/or standard and are dynamic enough to adopt and adapt to any future changes.
  • Figure 3A illustrates a use-case scenario 300 according to one embodiment.
  • Figure 3A illustrates a use-case scenario 300 according to one embodiment.
  • many of the details discussed with reference to the previous Figures 1-2 may not be discussed or repeated hereafter.
  • embodiments are not limited to any particular number or type of architectural placements, component setups, processes, and/or use-case scenarios, etc., such as use-case scenario 300.
  • use-case scenario 300 shows user interface 253 at a computing device, such as client computer 250 of Figure 2, allow access to auto-generation and any subsequent customization of simulator at simulation target virtual platform ( “virtual platform” or “target platform” ) 305 of the computing device as facilitated by platform firmware image 301, such as UEFI firmware image representing boot firmware (e.g., boot firmware running on target virtual platform 305) .
  • platform firmware image 301 such as UEFI firmware image representing boot firmware (e.g., boot firmware running on target virtual platform 305) .
  • FIG. 3B illustrates a transaction sequence 330 for facilitating generation and customization of simulation firmware and platform according to one embodiment.
  • Transaction sequence 330 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, etc. ) , software (such as instructions run on a processing device) , or a combination thereof, as facilitated by simulation and firmware generation and customization mechanism 110 of Figure 1.
  • the processes of transaction sequence 330 are illustrated in linear sequences for brevity and clarity in presentation; however, it is contemplated that any number of them can be performed in parallel, asynchronously, or in different orders. For brevity, many of the details discussed with reference to the previous Figures 1-3A may not be discussed or repeated hereafter.
  • firmware engine repository 331 (having firmware binary libraries) and simulation component repository 333 are created and maintained, where they may be accessed by a computing device, such as computing device 250 of Figure 2, using user interface 253.
  • transaction sequence 330 provides access to dual-purpose platform specification 335 that defines the information of a specific target platform, such as simulation target virtual platform 305, where the information include device topology (e.g., hardware, software, and/or firmware configurations) relating to the computing device, such as computing device 250 of Figure 2.
  • device topology e.g., hardware, software, and/or firmware configurations
  • dual-purpose platform specification 335 may be obtained using the firmware engine, such as from firmware engine repository 331, and simulation component repository 333.
  • Transaction sequence 330 continues with the firmware engine using BOM meta files having the same format as other meta files, such as UEFI module meta files, as a device configuration language and offer user interface 253 (e.g., GUI) and user interface modeling tool to define target platform 305 without any learning efforts.
  • BOM meta files having the same format as other meta files, such as UEFI module meta files, as a device configuration language and offer user interface 253 (e.g., GUI) and user interface modeling tool to define target platform 305 without any learning efforts.
  • GUI user interface modeling tool
  • any or all of platform modeling and firmware generation processes may be performed by the user using user interface 253 without involving any support from the service provider and further, for example, the user may freely download and use the firmware engine using firmware engine repository 331.
  • dual-purpose platform specification 335 may be used to assemble 337 and/or simulation assemble 339 flash firmware image 301 (e.g., UEFI flash image) , as facilitated by generation engine 205, to automatically generate and/or dynamically customize simulation target virtual platform 305.
  • this technique allows for extension and reusing of the firmware engine device configuration language and firmware engine-related information from firmware engine repository 331 along with a platform modeling toolset (e.g., user interface 253) to generate simulator configuration.
  • FIG. 3C illustrates a transaction sequence 350 for facilitating generation and customization of simulation firmware and platform according to one embodiment.
  • Transaction sequence 350 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, etc. ) , software (such as instructions run on a processing device) , or a combination thereof, as facilitated by simulation and firmware generation and customization mechanism 110 of Figure 1.
  • the processes of transaction sequence 350 are illustrated in linear sequences for brevity and clarity in presentation; however, it is contemplated that any number of them can be performed in parallel, asynchronously, or in different orders. For brevity, many of the details discussed with reference to the previous Figures 1-3B may not be discussed or repeated hereafter.
  • firmware image 301A e.g., UEFI firmware image
  • firmware image 301B and simulation target virtual platform 305B may then be uploaded to be accessed as firmware image 301B and simulation target virtual platform 305B over communication medium (s) 230, such as a cloud network, serving as the base for hosting simulation target virtual platform 305B.
  • firmware image 301B and simulation target virtual platform 305B may be the same as or similar to firmware image 301A and simulation target virtual platform 305A.
  • FIG. 3D illustrates a transaction sequence 360 for facilitating generation and customization of simulation firmware and platform according to one embodiment.
  • Transaction sequence 360 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, etc. ) , software (such as instructions run on a processing device) , or a combination thereof, as facilitated by simulation and firmware generation and customization mechanism 110 of Figure 1.
  • the processes of transaction sequence 360 are illustrated in linear sequences for brevity and clarity in presentation; however, it is contemplated that any number of them can be performed in parallel, asynchronously, or in different orders. For brevity, many of the details discussed with reference to the previous Figures 1-3C may not be discussed or repeated hereafter.
  • the illustrated embodiment offers transaction sequence 360 showing firmware remote service provider computer 361 (e.g., external third-party server computer) providing simulation services 371, such as server-side components and processes as further illustrated and discussed with respect to server-side 401 of Figure 4, to a user representing a customer and having access to a computing device, such as computing device 250, where services 371 (e.g., firmware engine online services, such as firmware repository and generator, simulation model repository and generator, etc. ) are provided online over communication medium (s) 230, such as a cloud network.
  • firmware remote service provider computer 361 e.g., external third-party server computer
  • simulation services 371 such as server-side components and processes as further illustrated and discussed with respect to server-side 401 of Figure 4
  • services 371 e.g., firmware engine online services, such as firmware repository and generator, simulation model repository and generator, etc.
  • communication medium (s) 230 such as a cloud network.
  • Such services 371 may be offered over communication medium (s) 230 (such as a cloud network) at computing device 250 using one or more types of user interfaces, such as user interface 253, where the one or more types of user interfaces are based on or include web-browser 363, programming, integrated development environment (IDE) interface 365 (e.g., Eclipse, Python) , and/or local application interface 367 (e.g., mobile application, desktop application, etc. ) .
  • IDE integrated development environment
  • Figure 4 illustrates a method 400 for facilitating generation and customization of simulation firmware and platform in computing environments according to one embodiment.
  • Method 400 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, etc. ) , software (such as instructions run on a processing device) , or a combination thereof, as facilitated by simulation and firmware generation and customization mechanism 110 of Figure 1.
  • the processes of method 400 are illustrated in linear sequences for brevity and clarity in presentation; however, it is contemplated that any number of them can be performed in parallel, asynchronously, or in different orders. For brevity, many of the details discussed with reference to the previous Figures 1-3D may not be discussed or repeated hereafter.
  • components are split one two sides, such as server-side 401, such as service provider-side as facilitated by server computing device 100 of Figure 1, and client-side 403, such as user and/or customer side as facilitated by client computing device 250 of Figure 2.
  • client-side 403 is shown as having hardware design of computing device 250 along with GUI tool 253 (e.g., user interface) to create specification document 335 provided by a software application, such as software application 251 of Figure 2.
  • hardware design 411 of computing device 250 being part of client-side 403 can be defined by the user using GUI tool 253, wherein the user-defined design based on hardware design 411 is then provided in specification document 335 which is created by the user using GUI tool 253.
  • method 400 continues with the design being sent from specification document 335, at client side 403, to specification parser 431, at server-side 401, for parsing and evaluation purposes as facilitated by evaluation logic 203.
  • any data from database of components 421 may be exposed to client-side 403 by providing GUI tool 253 access to components at database of components 421 so that the specification, as defined in specification document 335, knows of the available components at database of components 421.
  • this database of components 421 may be provided through one or more database (s) 225 of Figure 2.
  • specification document 335 may be accessed by specification parser 431 to receive the design as described by the user and as facilitated by evaluation and parsing logic 203.
  • repository files for firmware component implementations 331 and virtual platform component implementations 333 may be used for firmware generation 433 and virtual platform generation 435 as facilitated by generation engine 205.
  • boot firmware 301A generated through firmware generation 433 may then be communicated over to computing device 250 on client-side 403 and presented as boot firmware (image) 301B, such as UEFI firmware image, as illustrated in Figure 3A.
  • virtual platform 305 generated through virtual platform generation 435 is communicated over to hardware board 415 of computing device 250 over one or more networks, such as a cloud network as shown in Figure 3C.
  • an operating system at client computing device 250 may work in communication with boot firmware (image) 301B and hardware board 415 as facilitated by boot firmware 301A and virtual platform 305, respectively.
  • FIG. 5 illustrates an embodiment of a computing system 500 capable of supporting the operations discussed above.
  • Computing system 500 represents a range of computing and electronic devices (wired or wireless) including, for example, desktop computing systems, laptop computing systems, cellular telephones, personal digital assistants (PDAs) including cellular-enabled PDAs, set top boxes, smartphones, tablets, wearable devices, etc. Alternate computing systems may include more, fewer and/or different components.
  • Computing device 500 may be the same as or similar to or include computing devices 100, 250 described in reference to Figure 2.
  • Computing system 500 includes bus 505 (or, for example, a link, an interconnect, or another type of communication device or interface to communicate information) and processor 510 coupled to bus 505 that may process information. While computing system 500 is illustrated with a single processor, it may include multiple processors and/or co-processors, such as one or more of central processors, image signal processors, graphics processors, and vision processors, etc. Computing system 500 may further include random access memory (RAM) or other dynamic storage device 520 (referred to as main memory) , coupled to bus 505 and may store information and instructions that may be executed by processor 510. Main memory 520 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 510.
  • RAM random access memory
  • main memory main memory
  • Computing system 500 may also include read only memory (ROM) and/or other storage device 530 coupled to bus 505 that may store static information and instructions for processor 510.
  • Date storage device 540 may be coupled to bus 505 to store information and instructions.
  • Date storage device 540 such as magnetic disk or optical disc and corresponding drive may be coupled to computing system 500.
  • Computing system 500 may also be coupled via bus 505 to display device 550, such as a cathode ray tube (CRT) , liquid crystal display (LCD) or Organic Light Emitting Diode (OLED) array, to display information to a user.
  • display device 550 such as a cathode ray tube (CRT) , liquid crystal display (LCD) or Organic Light Emitting Diode (OLED) array
  • User input device 560 including alphanumeric and other keys, may be coupled to bus 505 to communicate information and command selections to processor 510.
  • cursor control 570 such as a mouse, a trackball, a touchscreen, a touchpad, or cursor direction keys to communicate direction information and command selections to processor 510 and to control cursor movement on display 550.
  • Camera and microphone arrays 590 of computer system 500 may be coupled to bus 505 to observe gestures, record audio and video and to receive and transmit visual and audio commands.
  • Computing system 500 may further include network interface (s) 580 to provide access to a network, such as a local area network (LAN) , a wide area network (WAN) , a metropolitan area network (MAN) , a personal area network (PAN) , Bluetooth, a cloud network, a mobile network (e.g., 3 rd Generation (3G) , etc. ) , an intranet, the Internet, etc.
  • Network interface (s) 580 may include, for example, a wireless network interface having antenna 585, which may represent one or more antenna (e) .
  • Network interface (s) 580 may also include, for example, a wired network interface to communicate with remote devices via network cable 587, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
  • network cable 587 may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
  • Network interface (s) 580 may provide access to a LAN, for example, by conforming to IEEE 802.11b and/or IEEE 802.11g standards, and/or the wireless network interface may provide access to a personal area network, for example, by conforming to Bluetooth standards.
  • Other wireless network interfaces and/or protocols, including previous and subsequent versions of the standards, may also be supported.
  • network interface (s) 580 may provide wireless communication using, for example, Time Division, Multiple Access (TDMA) protocols, Global Systems for Mobile Communications (GSM) protocols, Code Division, Multiple Access (CDMA) protocols, and/or any other type of wireless communications protocols.
  • TDMA Time Division, Multiple Access
  • GSM Global Systems for Mobile Communications
  • CDMA Code Division, Multiple Access
  • Network interface (s) 580 may include one or more communication interfaces, such as a modem, a network interface card, or other well-known interface devices, such as those used for coupling to the Ethernet, token ring, or other types of physical wired or wireless attachments for purposes of providing a communication link to support a LAN or a WAN, for example.
  • the computer system may also be coupled to a number of peripheral devices, clients, control surfaces, consoles, or servers via a conventional network infrastructure, including an Intranet or the Internet, for example.
  • computing system 500 may vary from implementation to implementation depending upon numerous factors, such as price constraints, performance requirements, technological improvements, or other circumstances.
  • Examples of the electronic device or computer system 500 may include without limitation a mobile device, a personal digital assistant, a mobile computing device, a smartphone, a cellular telephone, a handset, a one-way pager, a two-way pager, a messaging device, a computer, a personal computer (PC) , a desktop computer, a laptop computer, a notebook computer, a handheld computer, a tablet computer, a server, a server array or server farm, a web server, a network server, an Internet server, a work station, a mini-computer, a main frame computer, a supercomputer, a network appliance, a web appliance, a distributed computing system, multiprocessor systems, processor-based systems, consumer electronics, programmable consumer electronics, television, digital television, set top box,
  • Embodiments may be implemented as any or a combination of: one or more microchips or integrated circuits interconnected using a parentboard, hardwired logic, software stored by a memory device and executed by a microprocessor, firmware, an application specific integrated circuit (ASIC) , and/or a field programmable gate array (FPGA) .
  • logic may include, by way of example, software or hardware and/or combinations of software and hardware.
  • Embodiments may be provided, for example, as a computer program product which may include one or more transitory or non-transitory machine-readable storage media having stored thereon machine-executable instructions that, when executed by one or more machines such as a computer, network of computers, or other electronic devices, may result in the one or more machines carrying out operations in accordance with embodiments described herein.
  • a machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs (Compact Disc-Read Only Memories) , and magneto-optical disks, ROMs, RAMs, EPROMs (Erasable Programmable Read Only Memories) , EEPROMs (Electrically Erasable Programmable Read Only Memories) , magnetic or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing machine-executable instructions.
  • embodiments may be downloaded as a computer program product, wherein the program may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of one or more data signals embodied in and/or modulated by a carrier wave or other propagation medium via a communication link (e.g., a modem and/or network connection) .
  • a remote computer e.g., a server
  • a requesting computer e.g., a client
  • a communication link e.g., a modem and/or network connection
  • references to “one embodiment” , “an embodiment” , “example embodiment” , “various embodiments” , etc., indicate that the embodiment (s) so described may include particular features, structures, or characteristics, but not every embodiment necessarily includes the particular features, structures, or characteristics. Further, some embodiments may have some, all, or none of the features described for other embodiments.
  • Coupled is used to indicate that two or more elements co-operate or interact with each other, but they may or may not have intervening physical or electrical components between them.
  • Figure 6 illustrates an embodiment of a computing environment 600 capable of supporting the operations discussed above.
  • the modules and systems can be implemented in a variety of different hardware architectures and form factors including that shown in Figure 5.
  • the Command Execution Module 601 includes a central processing unit to cache and execute commands and to distribute tasks among the other modules and systems shown. It may include an instruction stack, a cache memory to store intermediate and final results, and mass memory to store applications and operating systems. The Command Execution Module may also serve as a central coordination and task allocation unit for the system.
  • the Screen Rendering Module 621 draws objects on the one or more multiple screens for the user to see. It can be adapted to receive the data from the Virtual Object Behavior Module 604, described below, and to render the virtual object and any other objects and forces on the appropriate screen or screens. Thus, the data from the Virtual Object Behavior Module would determine the position and dynamics of the virtual object and associated gestures, forces and objects, for example, and the Screen Rendering Module would depict the virtual object and associated objects and environment on a screen, accordingly.
  • the Screen Rendering Module could further be adapted to receive data from the Adjacent Screen Perspective Module 607, described below, to either depict a target landing area for the virtual object if the virtual object could be moved to the display of the device with which the Adjacent Screen Perspective Module is associated.
  • the Adjacent Screen Perspective Module 2 could send data to the Screen Rendering Module to suggest, for example in shadow form, one or more target landing areas for the virtual object on that track to a user’s hand movements or eye movements.
  • the Object and Gesture Recognition System 622 may be adapted to recognize and track hand and arm gestures of a user. Such a module may be used to recognize hands, fingers, finger gestures, hand movements and a location of hands relative to displays. For example, the Object and Gesture Recognition Module could for example determine that a user made a body part gesture to drop or throw a virtual object onto one or the other of the multiple screens, or that the user made a body part gesture to move the virtual object to a bezel of one or the other of the multiple screens.
  • the Object and Gesture Recognition System may be coupled to a camera or camera array, a microphone or microphone array, a touch screen or touch surface, or a pointing device, or some combination of these items, to detect gestures and commands from the user.
  • the touch screen or touch surface of the Object and Gesture Recognition System may include a touch screen sensor. Data from the sensor may be fed to hardware, software, firmware or a combination of the same to map the touch gesture of a user’s hand on the screen or surface to a corresponding dynamic behavior of a virtual object.
  • the sensor date may be used to momentum and inertia factors to allow a variety of momentum behavior for a virtual object based on input from the user’s hand, such as a swipe rate of a user’s finger relative to the screen.
  • Pinching gestures may be interpreted as a command to lift a virtual object from the display screen, or to begin generating a virtual binding associated with the virtual object or to zoom in or out on a display. Similar commands may be generated by the Object and Gesture Recognition System using one or more cameras without the benefit of a touch surface.
  • the Direction of Attention Module 623 may be equipped with cameras or other sensors to track the position or orientation of a user's face or hands. When a gesture or voice command is issued, the system can determine the appropriate screen for the gesture. In one example, a camera is mounted near each display to detect whether the user is facing that display. If so, then the direction of attention module information is provided to the Object and Gesture Recognition Module 622 to ensure that the gestures or commands are associated with the appropriate library for the active display. Similarly, if the user is looking away from all of the screens, then commands can be ignored.
  • the Device Proximity Detection Module 625 can use proximity sensors, compasses, GPS (global positioning system) receivers, personal area network radios, and other types of sensors, together with triangulation and other techniques to determine the proximity of other devices. Once a nearby device is detected, it can be registered to the system and its type can be determined as an input device or a display device or both. For an input device, received data may then be applied to the Object Gesture and Recognition System 622. For a display device, it may be considered by the Adjacent Screen Perspective Module 607.
  • the Virtual Object Behavior Module 604 is adapted to receive input from the Object Velocity and Direction Module, and to apply such input to a virtual object being shown in the display.
  • the Object and Gesture Recognition System would interpret a user gesture and by mapping the captured movements of a user’s hand to recognized movements
  • the Virtual Object Tracker Module would associate the virtual object's position and movements to the movements as recognized by Object and Gesture Recognition System
  • the Object and Velocity and Direction Module would capture the dynamics of the virtual object's movements
  • the Virtual Object Behavior Module would receive the input from the Object and Velocity and Direction Module to generate data that would direct the movements of the virtual object to correspond to the input from the Object and Velocity and Direction Module.
  • the Virtual Object Tracker Module 606 may be adapted to track where a virtual object should be located in three-dimensional space in a vicinity of a display, and which body part of the user is holding the virtual object, based on input from the Object and Gesture Recognition Module.
  • the Virtual Object Tracker Module 606 may for example track a virtual object as it moves across and between screens and track which body part of the user is holding that virtual object. Tracking the body part that is holding the virtual object allows a continuous awareness of the body part’s air movements, and thus an eventual awareness as to whether the virtual object has been released onto one or more screens.
  • the Gesture to View and Screen Synchronization Module 608 receives the selection of the view and screen or both from the Direction of Attention Module 623 and, in some cases, voice commands to determine which view is the active view and which screen is the active screen. It then causes the relevant gesture library to be loaded for the Object and Gesture Recognition System 622.
  • Various views of an application on one or more screens can be associated with alternative gesture libraries or a set of gesture templates for a given view. As an example in Figure 1A a pinch-release gesture launches a torpedo, but in Figure 1B, the same gesture launches a depth charge.
  • the Adjacent Screen Perspective Module 607 which may include or be coupled to the Device Proximity Detection Module 625, may be adapted to determine an angle and position of one display relative to another display.
  • a projected display includes, for example, an image projected onto a wall or screen. The ability to detect a proximity of a nearby screen and a corresponding angle or orientation of a display projected therefrom may for example be accomplished with either an infrared emitter and receiver, or electromagnetic or photo-detection sensing capability. For technologies that allow projected displays with touch input, the incoming video can be analyzed to determine the position of a projected display and to correct for the distortion caused by displaying at an angle.
  • An accelerometer, magnetometer, compass, or camera can be used to determine the angle at which a device is being held while infrared emitters and cameras could allow the orientation of the screen device to be determined in relation to the sensors on an adjacent device.
  • the Adjacent Screen Perspective Module 607 may, in this way, determine coordinates of an adjacent screen relative to its own screen coordinates. Thus, the Adjacent Screen Perspective Module may determine which devices are in proximity to each other, and further potential targets for moving one or more virtual object's across screens.
  • the Adjacent Screen Perspective Module may further allow the position of the screens to be correlated to a model of three-dimensional space representing all of the existing objects and virtual objects.
  • the Object and Velocity and Direction Module 603 may be adapted to estimate the dynamics of a virtual object being moved, such as its trajectory, velocity (whether linear or angular) , momentum (whether linear or angular) , etc. by receiving input from the Virtual Object Tracker Module.
  • the Object and Velocity and Direction Module may further be adapted to estimate dynamics of any physics forces, by for example estimating the acceleration, deflection, degree of stretching of a virtual binding, etc. and the dynamic behavior of a virtual object once released by a user’s body part.
  • the Object and Velocity and Direction Module may also use image motion, size and angle changes to estimate the velocity of objects, such as the velocity of hands and fingers
  • the Momentum and Inertia Module 602 can use image motion, image size, and angle changes of objects in the image plane or in a three-dimensional space to estimate the velocity and direction of objects in the space or on a display.
  • the Momentum and Inertia Module is coupled to the Object and Gesture Recognition System 622 to estimate the velocity of gestures performed by hands, fingers, and other body parts and then to apply those estimates to determine momentum and velocities to virtual objects that are to be affected by the gesture.
  • the 3D Image Interaction and Effects Module 605 tracks user interaction with 3D images that appear to extend out of one or more screens.
  • the influence of objects in the z-axis can be calculated together with the relative influence of these objects upon each other.
  • an object thrown by a user gesture can be influenced by 3D objects in the foreground before the virtual object arrives at the plane of the screen. These objects may change the direction or velocity of the projectile or destroy it entirely.
  • the object can be rendered by the 3D Image Interaction and Effects Module in the foreground on one or more of the displays.
  • various components such as components 601, 602, 603, 604, 605.606, 607, and 608 are connected via an interconnect or a bus, such as bus 609.
  • Example 1 includes an apparatus to facilitate generation and customization of simulation firmware and platform in computing environments, the apparatus comprising: detection/reception and access logic ( “access logic” ) to access specification details relating to a system setup at a computing device; simulation/firmware/platform generation engine ( “generation engine” ) to generate, based on the specification details, a boot firmware and a virtual platform setup corresponding to the system setup of the computing device; communication/compatibility logic to communicate a simulation package having the boot firmware and the virtual platform setup over to the computing device; and user interface logic to facilitate access to the simulation package using a user interface at the computing device, wherein the simulation package is capable of being used to generate or customize a simulator at the computing device, wherein the simulator is compatible with the system setup.
  • detection/reception and access logic (access logic” ) to access specification details relating to a system setup at a computing device
  • simulation/firmware/platform generation engine “generation engine”
  • generation engine” to generate, based on the specification details, a boot firmware and a virtual platform setup corresponding
  • Example 2 includes the subject matter of Example 1, wherein the boot firmware is provided as a firmware image at the computing device, and wherein the virtual platform setup is used, in combination with the boot firmware image, to generate a simulation target platform at the computing device, wherein the simulation target platform to host and facilitate the simulator using the system setup at the computing device.
  • Example 3 includes the subject matter of Example 2, wherein the simulation target platform is capable of being accessed locally using a software application or over one or more networks comprising at least one of a cloud network, a proximity network, or the Internet.
  • Example 4 includes the subject matter of Example 2, wherein the simulator is capable of being accessed using the user interface comprising at least one of a graphical user interface (GUI) , a web browser, or an application-based user interface.
  • GUI graphical user interface
  • Example 5 includes the subject matter of Example 2, wherein the simulator is capable of being used for generation or simulation of one or more of firmware, system software, application software, and system simulation for devices, wherein the devices include one or more of Internet of Things (IoT) devices, mobile computing devices, wearable smart devices, and desktop computers.
  • IoT Internet of Things
  • Example 6 includes the subject matter of Example 1, further comprising: evaluation and parsing logic ( “evaluation logic” ) to parse and evaluate the specification details to extract relevant specification data, wherein the evaluation logic is further to provide the relevant specification data to the generation engine to subsidize generation of the boot firmware and the virtual platform setup, wherein the specification details include hardware details regarding one or more hardware components at the computing device, wherein the system setup includes hardware setup at the computing device.
  • evaluation logic evaluation logic
  • Example 7 includes the subject matter of Example 1, further comprising: presentation logic to prepare the simulation package for presentation to the computing device such that the simulation package is presented in accordance with the system setup of the computing device.
  • Example 8 includes the subject matter of Example 1, wherein the boot firmware and the virtual platform setup are generated based on firmware component implementations and the virtual platform component implementations, respectively, wherein, as part of the simulation target platform, the hardware setup is allowed access to a virtual platform based on the virtual platform setup, and the boot firmware running on the virtual platform, wherein the boot firmware is communicated to the computing device as a boot firmware image.
  • Example 9 includes a method for facilitating generation and customization of simulation firmware and platform in computing environments, the method comprising: accessing specification details relating to a system setup at a computing device; generating, based on the specification details, a boot firmware and a virtual platform setup corresponding to the system setup of the computing device; communicating a simulation package having the boot firmware and the virtual platform setup over to the computing device; and facilitating access to the simulation package using a user interface at the computing device, wherein the simulation package is capable of being used to generate or customize a simulator at the computing device, wherein the simulator is compatible with the system setup.
  • Example 10 includes the subject matter of Example 9, wherein the boot firmware is provided as a firmware image at the computing device, and wherein the virtual platform setup is used, in combination with the boot firmware image, to generate a simulation target platform at the computing device, wherein the simulation target platform to host and facilitate the simulator using the system setup at the computing device.
  • Example 11 includes the subject matter of Example 10, wherein the simulation target platform is capable of being accessed locally using a software application or over one or more networks comprising at least one of a cloud network, a proximity network, or the Internet.
  • Example 12 includes the subject matter of Example 10, wherein the simulator is capable of being accessed using the user interface comprising at least one of a graphical user interface (GUI) , a web browser, or an application-based user interface.
  • GUI graphical user interface
  • Example 13 includes the subject matter of Example 10, wherein the simulator is capable of being used for generation or simulation of one or more of firmware, system software, application software, and system simulation for devices, wherein the devices include one or more of Internet of Things (IoT) devices, mobile computing devices, wearable smart devices, and desktop computers.
  • IoT Internet of Things
  • Example 14 includes the subject matter of Example 9, further comprising: parsing and evaluating the specification details to extract relevant specification data, wherein the relevant specification data is used for subsidizing generation of the boot firmware and the virtual platform setup, wherein the specification details include hardware details regarding one or more hardware components at the computing device, wherein the system setup includes hardware setup at the computing device.
  • Example 15 includes the subject matter of Example 9, further comprising: preparing the simulation package for presentation to the computing device such that the simulation package is presented in accordance with the system setup of the computing device.
  • Example 16 includes the subject matter of Example 9, wherein the boot firmware and the virtual platform setup are generated based on firmware component implementations and the virtual platform component implementations, respectively, wherein, as part of the simulation target platform, the hardware setup is allowed access to a virtual platform based on the virtual platform setup, and the boot firmware running on the virtual platform, wherein the boot firmware is communicated to the computing device as a boot firmware image.
  • Example 17 includes a system comprising a storage device having instructions, and a processor to execute the instructions to facilitate a mechanism to: access specification details relating to a system setup at a computing device; generate, based on the specification details, a boot firmware and a virtual platform setup corresponding to the system setup of the computing device; communicate a simulation package having the boot firmware and the virtual platform setup over to the computing device; and facilitate access to the simulation package using a user interface at the computing device, wherein the simulation package is capable of being used to generate or customize a simulator at the computing device, wherein the simulator is compatible with the system setup.
  • Example 18 includes the subject matter of Example 17, wherein the boot firmware is provided as a firmware image at the computing device, and wherein the virtual platform setup is used, in combination with the boot firmware image, to generate a simulation target platform at the computing device, wherein the simulation target platform to host and facilitate the simulator using the system setup at the computing device.
  • Example 19 includes the subject matter of Example 18, wherein the simulation target platform is capable of being accessed locally using a software application or over one or more networks comprising at least one of a cloud network, a proximity network, or the Internet.
  • Example 20 includes the subject matter of Example 18, wherein the simulator is capable of being accessed using the user interface comprising at least one of a graphical user interface (GUI) , a web browser, or an application-based user interface.
  • GUI graphical user interface
  • Example 21 includes the subject matter of Example 18, wherein the simulator is capable of being used for generation or simulation of one or more of firmware, system software, application software, and system simulation for devices, wherein the devices include one or more of Internet of Things (IoT) devices, mobile computing devices, wearable smart devices, and desktop computers.
  • IoT Internet of Things
  • Example 22 includes the subject matter of Example 17, wherein the mechanism is further to:parse and evaluate the specification details to extract relevant specification data, wherein the relevant specification data is used for subsidizing generation of the boot firmware and the virtual platform setup, wherein the specification details include hardware details regarding one or more hardware components at the computing device, wherein the system setup includes hardware setup at the computing device.
  • Example 23 includes the subject matter of Example 17, wherein the mechanism is further to:prepare the simulation package for presentation to the computing device such that the simulation package is presented in accordance with the system setup of the computing device.
  • Example 24 includes the subject matter of Example 17, wherein the boot firmware and the virtual platform setup are generated based on firmware component implementations and the virtual platform component implementations, respectively, wherein, as part of the simulation target platform, the hardware setup is allowed access to a virtual platform based on the virtual platform setup, and the boot firmware running on the virtual platform, wherein the boot firmware is communicated to the computing device as a boot firmware image.
  • Example 25 includes an apparatus comprising: means for accessing specification details relating to a system setup at a computing device; means for generating, based on the specification details, a boot firmware and a virtual platform setup corresponding to the system setup of the computing device; means for communicating a simulation package having the boot firmware and the virtual platform setup over to the computing device; and means for facilitating access to the simulation package using a user interface at the computing device, wherein the simulation package is capable of being used to generate or customize a simulator at the computing device, wherein the simulator is compatible with the system setup.
  • Example 26 includes the subject matter of Example 25, wherein the boot firmware is provided as a firmware image at the computing device, and wherein the virtual platform setup is used, in combination with the boot firmware image, to generate a simulation target platform at the computing device, wherein the simulation target platform to host and facilitate the simulator using the system setup at the computing device.
  • Example 27 includes the subject matter of Example 26, wherein the simulation target platform is capable of being accessed locally using a software application or over one or more networks comprising at least one of a cloud network, a proximity network, or the Internet.
  • Example 28 includes the subject matter of Example 26, wherein the simulator is capable of being accessed using the user interface comprising at least one of a graphical user interface (GUI) , a web browser, or an application-based user interface.
  • GUI graphical user interface
  • Example 29 includes the subject matter of Example 26, wherein the simulator is capable of being used for generation or simulation of one or more of firmware, system software, application software, and system simulation for devices, wherein the devices include one or more of Internet of Things (IoT) devices, mobile computing devices, wearable smart devices, and desktop computers.
  • IoT Internet of Things
  • Example 30 includes the subject matter of Example 25, further comprising: means for parsing and evaluating the specification details to extract relevant specification data, wherein the relevant specification data is used for subsidizing generation of the boot firmware and the virtual platform setup, wherein the specification details include hardware details regarding one or more hardware components at the computing device, wherein the system setup includes hardware setup at the computing device.
  • Example 31 includes the subject matter of Example 25, further comprising: means for preparing the simulation package for presentation to the computing device such that the simulation package is presented in accordance with the system setup of the computing device.
  • Example 32 includes the subject matter of Example 25, wherein the boot firmware and the virtual platform setup are generated based on firmware component implementations and the virtual platform component implementations, respectively, wherein, as part of the simulation target platform, the hardware setup is allowed access to a virtual platform based on the virtual platform setup, and the boot firmware running on the virtual platform, wherein the boot firmware is communicated to the computing device as a boot firmware image.
  • Example 33 includes at least one non-transitory machine-readable medium comprising a plurality of instructions, when executed on a computing device, to implement or perform a method as claimed in any of claims or examples 9-16.
  • Example 34 includes at least one machine-readable medium comprising a plurality of instructions, when executed on a computing device, to implement or perform a method as claimed in any of claims or examples 9-16.
  • Example 35 includes a system comprising a mechanism to implement or perform a method as claimed in any of claims or examples 9-16.
  • Example 36 includes an apparatus comprising means for performing a method as claimed in any of claims or examples 9-16.
  • Example 37 includes a computing device arranged to implement or perform a method as claimed in any of claims or examples 9-16.
  • Example 38 includes a communications device arranged to implement or perform a method as claimed in any of claims or examples 9-16.
  • Example 39 includes at least one machine-readable medium comprising a plurality of instructions, when executed on a computing device, to implement or perform a method or realize an apparatus as claimed in any preceding claims or examples.
  • Example 40 includes at least one non-transitory machine-readable medium comprising a plurality of instructions, when executed on a computing device, to implement or perform a method or realize an apparatus as claimed in any preceding claims or examples.
  • Example 41 includes a system comprising a mechanism to implement or perform a method or realize an apparatus as claimed in any preceding claims or examples.
  • Example 42 includes an apparatus comprising means to perform a method as claimed in any preceding claims or examples.
  • Example 43 includes a computing device arranged to implement or perform a method or realize an apparatus as claimed in any preceding claims or examples.
  • Example 44 includes a communications device arranged to implement or perform a method or realize an apparatus as claimed in any preceding claims or examples.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention concerne un mécanisme pour faciliter la génération et la personnalisation d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques. Un procédé consiste à accéder à des détails de spécification concernant une configuration de système au niveau d'un dispositif informatique (100), et à générer, sur la base des détails de spécification, un micrologiciel d'amorçage et une configuration de plateforme virtuelle correspondant à la configuration de système du dispositif informatique. Le procédé peut en outre consister à communiquer un progiciel de simulation ayant le micrologiciel d'amorçage et la configuration de plateforme virtuelle sur le dispositif informatique, et à faciliter l'accès au progiciel de simulation à l'aide d'une interface utilisateur au niveau du dispositif informatique, le progiciel de simulation étant capable d'être utilisé pour générer ou personnaliser un simulateur au niveau du dispositif informatique, le simulateur étant compatible avec la configuration de système.
PCT/CN2016/078259 2016-04-01 2016-04-01 Génération et personnalisation cohérentes d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques WO2017166267A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/078259 WO2017166267A1 (fr) 2016-04-01 2016-04-01 Génération et personnalisation cohérentes d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/078259 WO2017166267A1 (fr) 2016-04-01 2016-04-01 Génération et personnalisation cohérentes d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques

Publications (1)

Publication Number Publication Date
WO2017166267A1 true WO2017166267A1 (fr) 2017-10-05

Family

ID=59963304

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/078259 WO2017166267A1 (fr) 2016-04-01 2016-04-01 Génération et personnalisation cohérentes d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques

Country Status (1)

Country Link
WO (1) WO2017166267A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070143748A1 (en) * 2005-12-20 2007-06-21 International Business Machines Corporation System and method for emulating the processing of Java Server Pages
CN101086760A (zh) * 2006-06-08 2007-12-12 洛克威尔自动控制技术股份有限公司 自动控制和信息系统的选择性功能组模拟
CN103399528A (zh) * 2013-03-06 2013-11-20 中国电力科学研究院 一种Modbus从站模拟器系统的自动生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070143748A1 (en) * 2005-12-20 2007-06-21 International Business Machines Corporation System and method for emulating the processing of Java Server Pages
CN101086760A (zh) * 2006-06-08 2007-12-12 洛克威尔自动控制技术股份有限公司 自动控制和信息系统的选择性功能组模拟
CN103399528A (zh) * 2013-03-06 2013-11-20 中国电力科学研究院 一种Modbus从站模拟器系统的自动生成方法

Similar Documents

Publication Publication Date Title
US11757675B2 (en) Facilitating portable, reusable, and sharable internet of things (IoT)-based services and resources
US20210157149A1 (en) Virtual wearables
US11062510B2 (en) Facilitating body measurements through loose clothing and/or other obscurities using three-dimensional scans and smart calculations
CN107111361B (zh) 促进用于增强现实的动态非视觉标记的方法和装置
US10402281B2 (en) Dynamic capsule generation and recovery in computing environments
US20240231436A1 (en) Facilitating dynamic detection and intelligent use of segmentation on flexible display screens
US9878209B2 (en) Facilitating dynamic monitoring of body dimensions over periods of time based on three-dimensional depth and disparity
US10331945B2 (en) Fair, secured, and efficient completely automated public Turing test to tell computers and humans apart (CAPTCHA)
US20160195849A1 (en) Facilitating interactive floating virtual representations of images at computing devices
US10176798B2 (en) Facilitating dynamic and intelligent conversion of text into real user speech
US10715468B2 (en) Facilitating tracking of targets and generating and communicating of messages at computing devices
US10045001B2 (en) Powering unpowered objects for tracking, augmented reality, and other experiences
US20170262972A1 (en) Generating voxel representations and assigning trust metrics for ensuring veracity for use with multiple applications
US20170090582A1 (en) Facilitating dynamic and intelligent geographical interpretation of human expressions and gestures
US9792673B2 (en) Facilitating projection pre-shaping of digital images at computing devices
US20240104744A1 (en) Real-time multi-view detection of objects in multi-camera environments
US20190045169A1 (en) Maximizing efficiency of flight optical depth sensors in computing environments
US20160285842A1 (en) Curator-facilitated message generation and presentation experiences for personal computing devices
US20170178294A1 (en) Code filters for coded light depth acquisition in depth images
WO2017166267A1 (fr) Génération et personnalisation cohérentes d'un micrologiciel et d'une plateforme de simulation dans des environnements informatiques

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16896047

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16896047

Country of ref document: EP

Kind code of ref document: A1

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载