Curved surface virtual scrolling devices and button constructs

Embodiments of a new and innovative button construct include a curved button, a flexible printed circuit, and a frame. The curved button has a first, exterior side configured to be contacted by a user, and a second, interior side opposite the first, exterior side. The flexible printed circuit includes a first portion and a second portion. The first portion includes at least one touch sensor. The first portion and the second portion are folded relative to one another such that the frame is disposed between the second portion and at least the portion of the first portion including the touch sensor(s). The touch sensor(s) of the first portion is disposed between the second, interior side of the curved button and the frame.

FIELD OF THE DISCLOSURE

The instant disclosure relates to information handling systems. More specifically, portions of this disclosure relate to virtual scrolling using a touch sensitive curved surface.

BACKGROUND

SUMMARY

Information handling systems may be used to execute applications such as gaming applications. Users typically interact with gaming applications presented on a device display (e.g., a computer monitor, TV, tablet, etc.) through the use of a variety of input and/or output devices. For instance, users typically use a computer mouse when playing a gaming application on a computer. One particularly useful feature of a computer mouse for playing a gaming application is the scroll wheel. For example, users often use the scroll wheel for quick swaps within a list of options in a game. As such, scroll wheel operations are essential for an input device used to play a gaming application on a computer.

Aspects of embodiments of this disclosure involve a curved, touch sensitive surface that mimics the operations and tactile feedback of a scroll wheel. The curved, touch sensitive surface can be part of a button construct. For example, the curved, touch sensitive surface may be a part of a button (e.g., bumper button) included with a gaming controller. The bumper button acts like a typical clickable button and is also touch sensitive to allow swiping motions like a mouse scroll wheel. To provide a convincing scroll wheel effect, the button construct can include haptic feedback as a user scrolls using the bumper button. The three-dimensional curved surface of the button construct creates problems for a typical rigid touch sensor due to the inconsistent distance between the touch sensitive surface and the sensor. To overcome these problems, embodiments of the provided button construct include a new and innovative flexible printed circuit (FPC) design.

The FPC design includes one or more touch sensors (e.g., capacitive touch sensors) on a flexible region while the one or more haptic components (e.g., linear resonant actuator (LRA)) and the tact switch are on a different, rigid region along with the necessary electrical components (e.g., memory and processor). The touch sensor(s) is bonded directly to the curved inside surface of the bumper button before an inner frame is attached to (e.g., snapped into or adhered to) the bumper button thereby covering the touch sensor(s) and providing a new surface on which the rigid region is bonded. The inner frame creates a gap between the LRA and the touch sensor(s), which eliminates any regions of the touch sensor(s) that would have poor touch sensitivity without the gap. The FPC design also includes a tail that connects the button construct to the motherboard of the gaming controller while allowing movement when the button is pressed.

In some embodiments, the aspects described herein may be used to support the execution of gaming applications in different environments. Gaming sessions may execute on a service, either locally on a device, on another system on the network, or in the cloud. A device may access the gaming session by executing an application that communicates with the service to receive and transmit user input to the service and provide feedback to the user from the service. The device may include its own audio/visual (AV) output for displaying a graphical user interface and/or a rendered display from the gaming session. Different environments at a location may include different AV systems, and the device may be automatically paired with an AV system and may be reconfigured to support interaction with an application session using the paired AV system.

A user's home is one example location that may have multiple environments, such as a living room, a dining room, a study, and/or a bedroom, each with different screen configurations, speaker configurations, and/or network availability. Aspects of embodiments disclosed herein may provide a system that enables game play from a set of candidate game hosts and environments to consumption devices of a user's choice while the user moves about their home between the different environments. The system may employ methods to determine where a user is located within the home, availability and selection of candidate game hosting and target environments, homing and direction of related I/O, and/or AV for consumption. The system then migrates the user and their information to the determined environment by coordinating gameplay by the user. As such, it is advantageous to have a single gaming controller that can be used across multiple environments that have different game hosting devices (e.g., one environment has a computer whereas another environment has a TV) while also providing desired user experience when used with each of the game hosting devices. Embodiments of the gaming controller described herein provide a desired user experience for gameplay on both a TV and a computer by including the provided button construct having a curved, touch sensitive button that mimics the function and tactile feedback of a typical computer mouse's scroll wheel.

The solution for supporting the execution of gaming applications in different environments accommodates multiple users simultaneously within the home, whether in single player, multiplayer using the same screen, or multiplayer using separate screen games. The solution may configure AV and input/output (I/O) such that multiple users can consume one or multiple games in the home simultaneously, whether in separate locations or when seated together in front of the same consumption device, e.g., a large television, where multiple games might be hosted simultaneously. The system may adjust the aspect ratio of one or both of the games when hosted simultaneously on the same consumption device.

The mobility of a user between services and applications for executing an application session may be supported by an information handling system that uses available telemetry from multiple sources to build a confidence-based knowledge graph of the user's gaming environments and determine a position of the user within that graph. A system with knowledge of devices in a user's gaming environment may build a knowledge graph by aggregating and comparing telemetry. For example, network telemetry may reveal that devices are positioned relatively near each other, a mobile device may reveal an absolute location based on GPS data, and/or an infrared presence sensor may reveal that the user is sitting in front of a device. An intelligent system may assemble these individual pieces of telemetry into a broader knowledge graph based on the absolute and/or relative locations of the user's devices, the location of the user in relation, and or characteristics of the devices. This knowledge graph may be updated in real time and/or based on changes in device telemetry.

According to one embodiment, a button construct includes a curved button, a frame, and a flexible printed circuit. The curved button has a first side opposite a second side, wherein the first side is configured to be contacted by a user. The flexible printed circuit includes a first portion integral with a second portion such that the first portion is bendable relative to the second portion. The first portion includes at least one touch sensor. At least a portion of the first portion is disposed between the second side of the curved button and the frame, the at least a portion of the first portion including the at least one touch sensor, and the frame is disposed between the at least one touch sensor and the second portion.

In certain embodiments, the at least a portion of the first portion including the at least one touch sensor is adhered directly to the second side of the curved button.

In certain embodiments, the second portion and the first portion are folded relative to one another such that a side of the second portion faces towards the first portion.

In certain embodiments, the at least one touch sensor is configured and arranged to detect a user conducting a swiping motion along the first side of the curved button.

According to another embodiment, a gaming controller includes a controller frame and a button construct housed by the controller frame. The button construct includes a curved button, a frame, and a flexible printed circuit. The curved button has a first side opposite a second side, wherein the first side is configured to be contacted by a user. The flexible printed circuit includes a first portion integral with a second portion such that the first portion is bendable relative to the second portion. The first portion includes at least one touch sensor. At least a portion of the first portion is disposed between the second side of the curved button and the frame, the at least a portion of the first portion including the at least one touch sensor, and the frame is disposed between the at least one touch sensor and the second portion.

In certain embodiments, the at least a portion of the first portion including the at least one touch sensor is adhered directly to the second side of the curved button.

In certain embodiments, the button construct is configured to: (i) detect, via a tact switch, a user pressing the first side of the curved button, and (ii) detect, via the at least one touch sensor, a user conducting a swiping motion along the first side of the curved button.

In certain embodiments, the second portion of the flexible printed circuit is adhered to the frame of the button construct.

According to another embodiment, a flexible printed circuit includes a first portion and a second portion. The first portion includes at least one touch sensor. The second portion has a first side opposite a second side, wherein the first side of the second portion includes a plurality of components including a tact switch. The first portion and the second portion are configured to be folded relative to one another such that the second side of the second portion faces towards the first portion.

In certain embodiments, the first side of the second portion further includes a linear resonant actuator.

In certain embodiments, the flexible printed circuit further includes a tail configured to connect the flexible printed circuit to a motherboard.

As used herein, the term “coupled” means connected, although not necessarily directly, and not necessarily mechanically; two items that are “coupled” may be unitary with each other. The terms “a” and “an” are defined as one or more unless this disclosure explicitly requires otherwise. The term “substantially” is defined as largely but not necessarily wholly what is specified (and includes what is specified; e.g., substantially parallel includes parallel), as understood by a person of ordinary skill in the art.

DETAILED DESCRIPTION

These example embodiments describe and illustrate various aspects of a gaming controller that may used with a configurable and dynamic gaming environment that can be supported through the use of a hub device, which may be an information handling system. A hub device may be located in a user's home and used to arrange game play sessions (or more generically application sessions) between host devices and services. The host devices may execute an application for receiving an AV stream for displaying rendered content from a game play session (or other application session), and in some configurations also receive user input for interacting with the session from a peripheral device, such as a gaming controller having an embodiment of the button construct described herein. The AV stream presented by the host device may be generated by a service. The service may execute on the hub device or another information handling system, such as a cloud computing resource. A home may include one or several host devices (e.g., televisions, mobile computers, tablet computers, and personal computers) and may include one or several information handling systems executing the service (e.g., a hub devices and personal computers).

The user's home may be divided into different environments defined by a space around a host device. For example, a living room with a television may be one environment and a bedroom with a personal computer may be another environment. A user may use a peripheral device in one of the environments and the hub device may configure a host device, a service, and the peripheral device for operation in the environment by determining the corresponding environment using a knowledge graph. The knowledge graph provides a database of historical information about the environments from which the hub device may use current characteristics of the peripheral device to deduce the location, and thus current environment, of the peripheral device. For example, the knowledge graph may include information about location of rooms (e.g., environments) in the house based on wireless signatures of devices within the different rooms. This difference in signatures reflects that a device on a one side of the house may receive beacon signals from different neighboring access points than a device on an opposite side of the house. When a user carries the peripheral device around the house, the hub device may determine a location of the peripheral device based on visible access points to the peripheral device. Other example characteristics beyond wireless signature for determining location are described in further detail below, and the knowledge graph may be used to combine different characteristics to identify the location, and thus environment, of the peripheral device.

Based on the location of the peripheral device determined from the knowledge graph, the hub device may initialize an application session for the peripheral device by determining an appropriate host device and service for the application session. For example, if the peripheral device is in the living room and is requesting a game that is within the capabilities of the service on the hub device to execute, the hub device may initialize an application session for the peripheral device between the television as a consumption device and the hub device as a service. The service on the hub device executes the game and streams rendered content to an application executing on the television consumption device.

The hub device may be used to migrate the peripheral device to a different environment and/or migrate the application session between host devices and/or services. For example, initially the application session may use a communication link between the peripheral device and the television host device for receiving user input, in which the application executing on the television host device relays user input to the service through a backhaul communication link from the television host device to the hub device. During the application session, the hub device may monitor characteristics of the peripheral device, including signal strength of connection to other components, and determine that the communication link from the peripheral device to the hub device is stronger than the peripheral device to the television host device. The hub device may migrate the peripheral device to a communications link with the hub device such that the service executing on the hub device directly receives the user input but the streaming session continues from the service to the application executing on the television host device. Such a change is illustrated in the change in configuration fromFIG.3Ato the configuration ofFIG.3Bdescribed in further detail below.

Other aspects of the application session may also be migrated. For example, if the peripheral device is determined to move to a different environment, then the hub device may migrate the application session to an application executing on a host device within the new environment. If the host device within the new environment has a display with a different aspect ratio, the hub device may modify the user interface of the application to accommodate the different aspect ratio. As another example, if a connection between the television host device and the service becomes unstable, the hub device may recommend and/or initiate a migration of the application session to a different host device. One scenario for such a migration may be where the television host device is connected through a wireless link to the service in which the wireless link quality is reducing quality of the streaming and a second host device with a wired connection is available in a nearby environment. Each of these example migrations may be determined based on information in the knowledge graph regarding locations of environments and capabilities within those environments. As yet another example, a user may request execution of an application, such as a particular game, during the application session for which a better configuration exists than the current host device and/or current service. The request for a different application, such as a game requiring a certain GPU capability, may cause the hub device to determine that a second device executing a second service is better for hosting the application and migrate the peripheral device to the second service by, for example, reconfiguring network connections.

The hub device may support connecting to multiple peripheral devices. In one example, the hub device may support two peripheral devices using a shared session on one host device to play the same or different games on the host device. In another example, the hub device may support two peripheral devices in different environments using different sessions with different host devices. The hub device may determine the environment of each of the peripheral devices based on characteristics of the device and the knowledge graph and configure application session for each of the peripheral devices accordingly. Different arrangements of peripherals and players may be supported. For example, one hub device executing a service and one host device executing an application can support a configuration with Game A and one player (P1) with peripheral (C1) and Game B and one player (P2) with peripheral (C2); or can support a configuration with Game A and one player (P1) with peripheral (C1) and Game A and one player (P2) with peripheral (C2); or can support a configuration with Game A and two players (P1, P2) with peripherals (C1, C2).

FIG.1is a block diagram illustrating aspects of a configurable system for providing services to users according some embodiments of the disclosure. A system100includes users102who may have access to a shared library of applications106including applications108A-108N. The users102may have separate libraries, with some overlapping applications between the libraries. The users102may access the library106through devices110A-I, such as mobile gaming device110A, tablet computing device110B, phone computing device110C, television110D, personal computing device110E, desktop computing device110F, laptop computing device110G, game controller110H, VR headset110I. The devices110may access services at any of locations112, including cars, busses, homes, hotels, offices, parks, etc. One or more of the devices110may communicate with an application session executing on a computing device114, such as a home application hub114A, a server114B, or a cloud execution environment114C. In some embodiments, environments may only exist for fixed devices, e.g., desktop computers, televisions, etc.

FIG.2is a block diagram illustrating possible game environments according to some embodiments of the disclosure. A user's home200may include rooms202A-F, and each of the rooms may have different information handling systems present, different AV equipment present, and/or different characteristics. For example, a living room202B may include a large-size television, a bedroom202D may include a personal computer, and a dining room202C may include a table computing device. Gaming environments204A-E in the home200may be defined based on spaces where a user is likely to execute an application session. Each gaming environment204A-E may include numerous devices and gaming environments, devices that may or may not be capable of hosting games, and/or devices that may or may not be capable of receiving game output. A system100may allow multiple users in the home200to simultaneously execute an application session. In some embodiments, multiple games may be hosted on a single device. In some embodiments, multiple games may target a single output device. In some embodiments, solution manages where games should be hosted, where game output should go, and how to best route peripheral I/O for users.

A user may move between gaming environments204A-E within the home200and continue an application session. For example, a user may take a device, such as the gaming controller described herein, from environment204A to environment204C. The gaming controller may migrate and reconfigure for operation in environment204C from a configuration for environment204A. For example, the controller may transition from an application hosted on a TV in living room202B to an application hosted on a TV in dining room202C while remaining connected to a host service executing on a PC in bedroom202D.

Example configurations for applications and services in gaming environments are shown inFIGS.3A-3D.FIG.3Ais a block diagram illustrating application and services hosted in different gaming environments according to some embodiments of the disclosure. InFIG.3A, a first gaming environment304A may include a device, such as a TV or PC, hosting an application302, which is an endpoint for an application session such as a gaming session. The application302communicates with a service306, which may be hosted on a device in a different gaming environment304B. A controller308may communicate with the application302to receive user input for the application session to control, for example, a character in a game. In some embodiments, the controller308is connected to the environment304A hosting the application and the I/O is configured to be relayed to the environment304B hosting the actual game.

Another arrangement for the application and service is shown inFIG.3B.FIG.3Bis a block diagram illustrating application and services hosted in different gaming environments according to some embodiments of the disclosure. InFIG.3B, the controller308communicates with the service306for providing user input to an application session, with the AV rendering target of the application session being application302in a different gaming environment.

Another arrangement for the application and service is shown inFIG.3C.FIG.3Cis a block diagram illustrating application and service hosted in a common gaming environment according to some embodiments of the disclosure. InFIG.3C, the application302and the service306are executed in the same gaming environment304A, which may be a single device, two devices, or a combination of devices in the gaming environment304A. The controller308may communicate with either the service306and/or the application302.

A further arrangement for the application and service is shown inFIG.3D.FIG.3Dis a block diagram illustrating a cloud-based service arrangement for a gaming environment according to some embodiments of the disclosure. InFIG.3D, the controller308may communicate with a service306hosted in a gaming environment304B that is remote from the gaming environment304A in which the application302is executing. The service306may be executing, for example, on a remote device, such as when the user's home includes the gaming environment304B but the user is engaging with application302at a location on a different network from their home (e.g., at a friend's house). The service306may also or alternatively be executed, for example, on a cloud computing device available as a subscription service to the user.

As mentioned above, it is advantageous to have a single gaming controller that can be used across multiple environments that have different game hosting devices (e.g., one environment has a computer whereas another environment has a TV) while also providing desired user experience when used with each of the game hosting devices.FIG.4shows an example gaming controller400that enables desired user experience when used with a computer as well as with other hosting devices such as a TV. The gaming controller400has a controller frame404along with a button402A and a button402B. Each of the buttons402A and402B is curved. For example, each of the buttons402A and402B is a bumper button in this embodiment of the disclosure. As described below, each of the buttons402A and402B is a component of a button construct configured to detect a user pressing a button402A or402B or conducting a swiping motion along a button402A or402B. Although curved buttons are described in embodiments of this disclosure, aspects of this disclosure may be incorporated into button of different shapes and sizes. Though not described here, one having skill in the art should appreciate the various other buttons (e.g., trigger button) and control mechanisms (e.g., joystick) that may be included with the gaming controller400.

FIGS.5and6show an example button construct500including the button402A of the gaming controller400, though it will be understood that the button construct500could include the button402B instead. Additionally, the concepts of the button construct500described herein can be applied to suitable buttons other than the button402A or the button402B, such as to other suitable buttons having a curved surface whether or not such suitable buttons are components of a gaming controller. The button402A has a first, exterior side (visible inFIG.4) that a user may contact and a second, interior side having a surface502. In various embodiments, the button402A includes an arm504extending from the main portion of the button402A and terminating in an end506. The end506may be pivotably attached to a portion of the controller frame404of the gaming controller400(e.g., seeFIGS.7B and8B). The pivotable attachment of the button402A to the controller frame404enables the button402A to maintain its relative position as it is pressed into the gaming controller400.

The button construct500further includes a flexible printed circuit508. The flexible printed circuit508includes a rigid portion510(e.g., second portion) and a flexible portion512(e.g., first portion) that are integral with one another. While the rigid portion510is stiff and not bendable, the flexible portion512is bendable relative to the rigid portion510. The rigid portion510includes a plurality of components. For example, in at least some embodiments, the rigid portion510includes a tact switch600. In at least some embodiments, the rigid portion510includes a linear resonant actuator602configured to generate haptic feedback (e.g., vibration), as will be described in more detail below. In some embodiments, the rigid portion510includes a tail514configured to connect the button construct500(e.g., the flexible printed circuit508) to a motherboard of the gaming controller400. The tail514allows movement of the button construct500as a user presses the button402A. The flexible portion512includes at least one touch sensor. The at least one touch sensor can have any suitable quantity of channels (e.g., four independent channels) for touch input. In at least some embodiments, the at least one touch sensor is a capacitive touch sensor. The flexible portion512may be attached (e.g., directly) to the surface502of the button402A. For example, adhesive516may attach the flexible portion512directly to the surface502. The flexible portion512may be curved so as to follow the curved surface502without any air gaps.

In at least some embodiments, the button construct500includes a frame518. The frame518is configured to attach to the button402A in a suitable manner. For example, the frame518may snap into the side of the button402A having the surface502. In another example, the frame518is secured to the button402A with adhesive (e.g., glue). When the frame is attached to the button402A, the frame518covers the flexible portion512attached to the surface502such that the flexible portion512, and therefore the touch sensor(s), is between the surface502and the frame518. In this arrangement, the flexible portion512enables the rigid portion510to be folded over such that the side of the rigid portion510absent the plurality of components faces towards the flexible portion512. In at least some embodiments, the frame518is shaped with an indent to receive the rigid portion510when it is folded over.FIG.6shows a final construction of the button construct500with the rigid portion510and the flexible portion512folded relative to one another and the frame518in between the rigid portion510and the flexible portion512. In this way, the frame518acts as a spacer that creates a gap between the touch sensor(s) on the flexible portion510and the linear resonant actuator602on the rigid portion512. The gap eliminates any regions of poor touch sensitivity on the touch sensor(s) that would otherwise exist without the gap.

FIGS.7A and7Billustrate a user700pressing the button402A in the direction of the arrow702. As seen in the cross section ofFIG.7B, the button construct500pivots about the end506to provide bending torque as the button402A is pressed. For instance, the end506may be positioned around a pin in the controller frame400. As the button402A is pressed in the direction of the arrow702, the tact switch600is triggered, which signals that the button402A was pressed.

FIGS.8A and8Billustrate the user700conducting a swiping motion along the button402A in the direction of the arrow800. To conduct the swiping motion, the user700places a finger against the exterior surface of the button402A and then drags the finger across the exterior surface, while maintaining contact, in the direction of the arrow800(or in the opposite direction of the arrow800). As shown inFIG.8B, the flexible portion512including the touch sensor(s) extends along a majority of the surface502of the button402A. With this arrangement, the touch sensor(s) is able to sense the finger of the user700as the finger touches various portions of the button402A and as the finger drags along the button402A.

In various embodiments, the button construct500is configured to provide haptic feedback in response to user interactions with the button402A. For instance, the LRA602can generate vibration(s) in response to receiving one or more signals from the touch sensor(s). In an example, the LRA602generates a vibration in response to contact with the button being sensed (e.g., by a finger of the user700). In another example, the LRA602generates a series of vibrations while the finger of the user700swipes along the button402A. For instance, a vibration may be generated every time the finger of the user700travels a certain distance during the swiping motion. Generating the series of vibrations in this way creates tactile feedback that simulates the mechanical scroll wheel effect of a computer mouse.

The button construct may be used to provide user input to an information handling system, such as the system illustrated in and described with reference toFIG.9. In some embodiments, the button construct may be incorporated into a gaming controller or other user input device that is capable of communicating through a wired and/or wireless interface to an information handling system, such as the system illustrated in and described with reference toFIG.9. In some embodiments, an information handling system, such as the system illustrated in and described with reference toFIG.9, may be incorporated into a gaming controller or other user input device including the button construct.

FIG.9illustrates an example information handling system900. Information handling system900may include a processor902(e.g., a central processing unit (CPU)), a memory (e.g., a dynamic random-access memory (DRAM))904, and a chipset906. In some embodiments, one or more of the processor902, the memory904, and the chipset906may be included on a motherboard (also referred to as a mainboard), which is a printed circuit board (PCB) with embedded conductors organized as transmission lines between the processor902, the memory904, the chipset906, and/or other components of the information handling system. The components may be coupled to the motherboard through packaging connections such as a pin grid array (PGA), ball grid array (BGA), land grid array (LGA), surface-mount technology, and/or through-hole technology. In some embodiments, one or more of the processor902, the memory904, the chipset906, and/or other components may be organized as a System on Chip (SoC).

The processor902may execute program code by accessing instructions loaded into memory904from a storage device, executing the instructions to operate on data also loaded into memory904from a storage device, and generate output data that is stored back into memory904or sent to another component. The processor902may include processing cores capable of implementing any of a variety of instruction set architectures (ISAs), such as the x86, POWERPC®, ARM®, SPARC®, or MIPS® ISAs, or any other suitable ISA. In multi-processor systems, each of the processors902may commonly, but not necessarily, implement the same ISA. In some embodiments, multiple processors may each have different configurations such as when multiple processors are present in a big-little hybrid configuration with some high-performance processing cores and some high-efficiency processing cores. The chipset906may facilitate the transfer of data between the processor902, the memory904, and other components. In some embodiments, chipset906may include two or more integrated circuits (ICs), such as a northbridge controller coupled to the processor902, the memory904, and a southbridge controller, with the southbridge controller coupled to the other components such as USB910, SATA920, and PCIe buses908. The chipset906may couple to other components through one or more PCIe buses908.

Some components may be coupled to one bus line of the PCIe buses908, whereas some components may be coupled to more than one bus line of the PCIe buses908. One example component is a universal serial bus (USB) controller910, which interfaces the chipset906to a USB bus912. A USB bus912may couple input/output components such as a keyboard914and a mouse916, but also other components such as USB flash drives, or another information handling system. Another example component is a SATA bus controller920, which couples the chipset906to a SATA bus922. The SATA bus922may facilitate efficient transfer of data between the chipset906and components coupled to the chipset906and a storage device924(e.g., a hard disk drive (HDD) or solid-state disk drive (SDD)) and/or a compact disc read-only memory (CD-ROM)926. The PCIe bus908may also couple the chipset906directly to a storage device928(e.g., a solid-state disk drive (SDD)). A further example of an example component is a graphics device930(e.g., a graphics processing unit (GPU)) for generating output to a display device932, a network interface controller (NIC)940, and/or a wireless interface950(e.g., a wireless local area network (WLAN) or wireless wide area network (WWAN) device) such as a Wi-Fi® network interface, a Bluetooth® network interface, a GSM® network interface, a 3G network interface, a 4G LTE® network interface, and/or a 5G NR network interface (including sub-6 GHz and/or mmWave interfaces).

The chipset906may also be coupled to a serial peripheral interface (SPI) and/or Inter-Integrated Circuit (I2C) bus960, which couples the chipset906to system management components. For example, a non-volatile random-access memory (NVRAM)970for storing firmware972may be coupled to the bus960. As another example, a controller, such as a baseboard management controller (BMC)980, may be coupled to the chipset906through the bus960. BMC980may be referred to as a service processor or embedded controller (EC). Capabilities and functions provided by BMC980may vary considerably based on the type of information handling system. For example, the term baseboard management system may be used to describe an embedded processor included at a server, while an embedded controller may be found in a consumer-level device. As disclosed herein, BMC980represents a processing device different from processor902, which provides various management functions for information handling system900. For example, an embedded controller may be responsible for power management, cooling management, and the like. An embedded controller included at a data storage system may be referred to as a storage enclosure processor or a chassis processor.

System900may include additional processors that are configured to provide localized or specific control functions, such as a battery management controller. Bus960can include one or more busses, including a Serial Peripheral Interface (SPI) bus, an Inter-Integrated Circuit (I2C) bus, a system management bus (SMBUS), a power management bus (PMBUS), or the like. BMC980may be configured to provide out-of-band access to devices at information handling system900. Out-of-band access in the context of the bus960may refer to operations performed prior to execution of firmware972by processor902to initialize operation of system900.

Firmware972may include instructions executable by processor102to initialize and test the hardware components of system900. For example, the instructions may cause the processor902to execute a power-on self-test (POST). The instructions may further cause the processor902to load a boot loader or an operating system (OS) from a mass storage device. Firmware972additionally may provide an abstraction layer for the hardware, such as a consistent way for application programs and operating systems to interact with the keyboard, display, and other input/output devices. When power is first applied to information handling system900, the system may begin a sequence of initialization procedures, such as a boot procedure or a secure boot procedure. During the initialization sequence, also referred to as a boot sequence, components of system900may be configured and enabled for operation and device drivers may be installed. Device drivers may provide an interface through which other components of the system900can communicate with a corresponding device. The firmware972may include a basic input-output system (BIOS) and/or include a unified extensible firmware interface (UEFI). Firmware972may also include one or more firmware modules of the information handling system. Additionally, configuration settings for the firmware972and firmware of the information handling system900may be stored in the NVRAM970. NVRAM970may, for example, be a non-volatile firmware memory of the information handling system900and may store a firmware memory map namespace900of the information handling system. NVRAM970may further store one or more container-specific firmware memory map namespaces for one or more containers concurrently executed by the information handling system.

Information handling system900may include additional components and additional busses, not shown for clarity. For example, system900may include multiple processor cores (either within processor902or separately coupled to the chipset906or through the PCIe buses908), audio devices (such as may be coupled to the chipset906through one of the PCIe busses908), or the like. While a particular arrangement of bus technologies and interconnections is illustrated for the purpose of example, one of skill will appreciate that the techniques disclosed herein are applicable to other system architectures. System900may include multiple processors and/or redundant bus controllers. In some embodiments, one or more components may be integrated together in an integrated circuit (IC), which is circuitry built on a common substrate. For example, portions of chipset906can be integrated within processor902. Additional components of information handling system900may include one or more storage devices that may store machine-executable code, one or more communications ports for communicating with external devices, and various input and output (I/O) devices, such as a keyboard, a mouse, and a video display.

In some embodiments, processor902may include multiple processors, such as multiple processing cores for parallel processing by the information handling system900. For example, the information handling system900may include a server comprising multiple processors for parallel processing. In some embodiments, the information handling system900may support virtual machine (VM) operation, with multiple virtualized instances of one or more operating systems executed in parallel by the information handling system900. For example, resources, such as processors or processing cores of the information handling system may be assigned to multiple containerized instances of one or more operating systems of the information handling system900executed in parallel. A container may, for example, be a virtual machine executed by the information handling system900for execution of an instance of an operating system by the information handling system900. Thus, for example, multiple users may remotely connect to the information handling system900, such as in a cloud computing configuration, to utilize resources of the information handling system900, such as memory, processors, and other hardware, firmware, and software capabilities of the information handling system900. Parallel execution of multiple containers by the information handling system900may allow the information handling system900to execute tasks for multiple users in parallel secure virtual environments.