This disclosure relates in general to the field of computer systems and, more particularly, to light-emitting diodes (LEDs) and microLED devices.
A light emitting diode (LED) is a two-lead semiconductor light source. More simply, LEDs are essentially p-n junction diodes that emit light when activated. This effect is called electroluminescence, and the color of the light emitted is determined by the energy band gap of the semiconductor material. Traditional LEDs are typically of a size on the order of hundreds of microns. In contrast, micro-sized LEDs (or microLEDs) are of a size on the order of tens of microns or less. Micro LED displays can provide brighter screens and wider color ranges than that achievable using traditional LED or organic LED (OLED) displays. Micro LEDs are an emerging technology area, and demand for micro LED-based technology platforms in devices such as consumer wearables (for example, watches, augmented reality devices, virtual reality devices) and mobile or stationary display devices is increasing rapidly. Such devices may require a full color range, high brightness (for example, more than 2,000 cd/m.sup.2), high contrast, low power requirements, high pixel densities (for example, more than 2,500 pixels per inch), and low manufacturing costs. To make active matrix micro LED display panels capable of satisfying these requirements, many workflows produce individual micro LEDs that are tuned to emit red, green or blue colors on separate wafers. These micro LEDs are then transferred from the original wafers to thin film transistor (TFT) backplanes to make red, green, and blue (RGB) pixels that make up the active matrix LED display panel. In other words, conventional micro LEDs may be made up of micron sized digital components formed on appropriate substrates, separated from those substrates, and then placed together on one new substrate.
Like reference numbers and designations in the various drawings indicate like elements.
Emerging micro display technologies utilize microscopic implementations of light emitting diodes (LEDs) (e.g., micro LEDs, micro OLEDs, micro QLEDs, etc.) to form individual pixel elements within a display. Indeed, an array of such LEDs may be provided to implement a digital display. MicroLED technology, for instance, may provide higher total brightness and high contrast ratio, while at the same time offering higher efficiency and power consumption that other, conventional LED technologies (e.g., organic LED (OLED), and greatly reduced energy consumption over conventional liquid crystal display (LCD) technologies, among other example advantages.
In the case of microLEDs, gallium nitride (GaN)-based LED elements may be implemented which, in some cases, are LEDs with dimensions smaller than 100 μm. When illuminated a micro LED device may present a pixel with an effective width many times wider than the dimensions of the micro LED itself. In some implementations, displays may be constructed from an array of microLED elements to realize a particular display resolution, where the pixel pitch and corresponding distance between LED elements results in untapped real estate (e.g., on the backplane or semiconductor substrate holding the LED elements) on a per pixel basis (e.g., the unused silicon area between neighboring microLEDs and the pixels they implement). The efficiency and miniature size of microLEDs realize such “extra” space on the backplane, which was not the case (nor possible) in traditional display technologies (e.g., including mini LED technology). In some implementations, this unused real estate may be utilized to enhance a microLED-based display, for instance, by using this area to implement in-pixel memory, in-pixel compute, antennae, and other compute logic for the displays or subareas (e.g., sections, rows, columns) of the display, among other examples
In traditional personal computing systems, memory and processing capabilities are concentrated on that portion of the device (e.g., a personal computer, laptop, wearable, smartphone, etc.) physically supporting the central processing unit, processing core, graphics processing unit, and other processing capabilities of the host. As an example, traditional laptop computers locate all processing resources on the base of the device, with no processing capabilities on the lid (e.g., where the display is located). For instance, traditional laptops may dedicate the lid to the display, one or more antennas, and one or more sensors (e.g., cameras, microphones, light sensors, etc.). Moreover, adding processing and memory to traditional displays is likely to increase the thickness of the device, which may undermine efforts to address demand for devices with thinner and lighter form factors. An improved micro display device (e.g., utilizing microLED, microOLED, or microQLED technology) may integrate memory and/or compute resources on the display (e.g., on the same substrate where the LEDs are mounted or grown and within the pitch between LEDs), thereby taking advantage of previously untapped real estate per pixel which does not exist in traditional display technologies. This real estate can be used to integrate new functionalities in to display that can enable new capabilities, such as improved or true bezel-less display, improve thermal dissipation and performance for small form factor designs by distributing compute on base and the display in the lid, non-isochronous high speed I/O architecture from base to lid to simplify the design of the host compute and timing controls, enable per-pixel addressing and addressing per-pixel memory, and improved per-pixel power management through the reduction of display power to increase battery life of the system, among other example features and advantages.
Traditional systems have attempted to address efficiency and power issues in personal computing systems through solutions such as Panel Self Refresh (PSR), timing controller (TCON) embedded driver (TED), and Embedded Display Panel (eDP) interface technologies, among other examples. For instance, PSR displays integrate remote frame buffer (RFB) in to the display timing controller (TCON) so that during idle desktop the display can refresh from RFB, consequently allowing the host processor (e.g. system on chip (SoC)) of the system to enter low power sleep state. PSR thus lowers the SoC power usage, but does not significantly lower display power. Furthermore, in PSR, the system TCON imposes a power penalty every time it self-refresh the display, because it will have to light up the source and row drivers, among other example issues. A TED is designed to lower the bottom bezel size by integrating the TCON on to the glass (e.g., chip on glass). While a TED implementation helps to reduce the bezel size of at least one side of the display (e.g., the bottom frame), it has challenges in integrating the RFB on the glass because it increases the complexity of manufacturing and typically increases the width of at least one bezel (e.g., the bottom bezel). In short, TED displays are able to achieve narrow bottom bezel, but without integration of RFB, hence at higher SoC power. Further, while eDP has become a widely used internal display interface in mobile PC systems, the eDP protocol is defined to operate at the per-frame (e.g., non-PSR and PSR1), or -scanline (PSR2) boundaries, and does not implement or support pixel-wise updates, leaving some inefficiencies, which may be improved upon in next generation technologies. Indeed, an improved computer display architecture, such as discussed herein, may address many of the challenges of existing displays, such as power, cost, bezel width, and inefficient interconnect and compute implementations, among other examples.
Turning to
Continuing with the example microarchitecture of
Turning to
In the cases of both architectures shown in the examples of
Turning to
As introduced above, micro-displays allow significant per pixel available real estate, the amount of which is dependent on the size of sub-pixels (e.g., a red, green, or blue sub-pixel of the pixel) and the overall resolution of the display (e.g., the pixel pitch applied). Just as sub-pixels can be deposited onto a display backplane though a variety of micro-transfer processes, other intelligences can also be integrated into the LEDs implementing individual pixels or sub-pixels. Each LED element (e.g., 210a-r) may implement an entire pixel (e.g., providing both red, green, and blue LEDs) or a sub-pixel of the pixel. As shown in
Continuing with the example of
In some implementations, through the providing of in-pixel memory and compute, such as shown in the example of
In general, “processors,” “processor complexes”, “systems on chip”, “servers,” “clients,” “computing devices,” “network elements,” “hosts,” “platforms”, “compute elements”, “sensor devices,” and “systems”, etc. in example computing environments (such as shown and discussed in
While systems illustrated in the figures may be described as containing or being associated with a plurality of elements, not all elements illustrated may be utilized in each alternative implementation of the present disclosure. Additionally, one or more of the elements described in connection with the examples herein may be located external to the computing environments illustrated, while in other instances, certain elements may be included within or as a portion of one or more of the other described elements, as well as other elements not described in the illustrated implementation. Further, certain elements illustrated may be combined with other components, as well as used for alternative or additional purposes in addition to those purposes described herein.
With reference now to
By integrating in-pixel memory and compute for pixel backend processing on the display, such as shown in the example of
A variety of techniques may be employed to embed memory and/or compute elements with LED elements on a substrate of a display (e.g., the backplane). In some implementations, each element (e.g., LED, memory, compute, etc.) or some of the elements may be embedded through “pick and place” techniques. In some implementations, an LED element may be manufactured as an element with embedded memory and/or compute (e.g., on the same wafer), with the integrated element being then added to the display backplane through pick and place or another technique. In still other examples, the backplane or substrate may be manufactured to integrate memory and/or compute circuitry, with the LED elements later added, or vice versa with the LED elements grown on the substrate and memory and/or compute elements later added to correspond to the individual LED elements, among other example techniques, including combinations and subcombinations of the techniques introduced above. Further, while
As introduced above, an improved micro display architecture, which embeds in-pixel memory and/or in-pixel compute with microLEDs on the display substrate may enable a variety of new and improved applications, designs, and features. For instance, the improved display may include and make use of a non-isochronous high-speed display interface permitting access to individual pixels, thereby improving power and efficiency of the display's performance. In some implementations, rather than using a conventional TCON module, control circuitry of the improved display may be simplified relative to convention TCONs by integrating the RFB on a per pixel basis in to display, thereby assisting in reducing panel electronics board size and in effect the bezel size. Further, per pixel power management may be implemented thus reducing overall display power consumption (e.g., by limiting signaling and display-wide frame refresh, by instead maintaining pixel state across frames, when no changes are needed at the pixel (and maintaining pixel state through in-pixel memory)). Additionally, distributing memory and compute (and corresponding I/O traffic) at the display may assist in distributing power and thermal loads across the system and even offloading some display-related workload from the platform processor, freeing up processing bandwidth for other system workloads. Such distribution may enable thinner, more powerful (and/or more battery friendly) devices, among other example improvements.
In some implementations, controllers provided in an improved display utilizing in-pixel memory to dictate individual pixel values and when these values should change (based on writes to these memory elements) may be comparatively simplified relative to traditional timing controllers and scaler controllers in conventional displays. For instance, a remote frame buffer (RFB) may be omitted from controller logic of the improved display (e.g., with in -pixel memory replacing the traditional frame buffer and RFB, etc.). Pixel-wise addressing may be performed, resulting in only a subset (and in some cases a very small subset) of in-pixel memory being signaled based on those pixels changing state. In some cases, the computing platform (e.g., SoC) generating the display data may be adapted to operate efficiently with such display architectures, sending display data that identifies (e.g., by coordinates) those pixels which are to have their respective in-pixel memory element overwritten to reflect the new, updated pixel value, among other example implementations.
The high-speed interconnect utilized to provide connectivity between the computing platform and the display may be implemented as an optical, electrical, or radio frequency communication channel. As noted above, controllers utilized to signal individual LEDs in an improved display may similarly enable a simplified interconnect (relative to traditional interconnects supporting frame-based signaling and display control). Additionally, by locating controller circuitry within the display (e.g., between individual LED elements) and not outside the active area of the display, as is common in convention displays, a truly bezel-less display may be realized. For instance, a controller for delivering data to in-pixel may be embedded (like the in-pixel memory) in the display, driving LED element according to a specific bus/protocol defined to connect the display to the host platform. Turning to
Turning to
In the example of
Turning to
In some implementations, display data generated by the host processor platform (e.g., 715) may be in a legacy format, assuming the display operates as a conventional display refreshing rows (or columns) on a frame-by-frame basis. Such display data may be converted at the display (e.g., utilizing an on-glass TCON) to enable pixel-wise, memory-centric pixel updates, such as discussed in the examples above. In other implementations, a host processor platform (e.g., 715) may implement an interface adapted to efficiently operate with an improved micro-display with in-pixel memory addressing. For instance, display data 720 generated by the host platform may be simplified, identifying pixel-wise changes from frame to frame, rather than the entirety of the frame (identifying values for each and every pixel), among other examples. Further, in implementations with on-display compute (e.g., implemented through in-pixel backend processing capabilities), the host platform may omit or disable redundant graphics engine and/or display engine capabilities of the host platform (e.g., 715) and, in some cases, utilize the interface with the display's controllers (e.g., 745) to initiate execution of in-pixel operations using local EUs embedded among the LED elements on the display, among other examples. In some implementations, in-pixel EUs may be leveraged to realize enhanced solutions, such as performing video codecs/graphics as fixed functions on the in-pixel execution units (e.g., allowing a streaming video to be decoded directly at the display), among other example applications and use cases.
From the display data, the display (e.g., a controller implemented on the display) may determine 810 which, if any, pixels are to be changed between the preceding first frame and the immediately succeeding second frame. For each pixel that is to be changed from its preceding pixel value (in the first frame) to a new pixel value (in the second frame), a controller at the display may communicate a message or other signal 815 to logic associated with each respective pixel (and the microLED element(s) implementing the pixel) to cause the pixel value to be changed. In one implementation, in-pixel memory may be provided for each pixel in the array. Specifically, the signal 815 may cause a pixel value stored in in-pixel memory associated with the corresponding pixel to be updated 820 to reflect the new pixel value. The in-pixel memory may be collocated with the corresponding LED element(s) implementing the pixel to be positioned between the corresponding LED element and LED elements implementing a neighboring pixel. The illumination of each one of the LED element(s) may be at least partially driven (or controlled) based on the pixel value stored in the corresponding in-pixel memory. Accordingly, changing the in-pixel memory for a pixel causes the presentation of the pixel to change consistent with the pixel value written to the in-pixel memory. The pixel may remain in this pixel state as long as the in-pixel memory stores this pixel value, even across transitions in frames (if the pixel is not to change in the frame transition). For instance, for pixels determined not to change value in the transition from the first frame to the second frame, no signal 825 will be sent, as the pixel value stored in corresponding in-pixel memory may be allowed to remain held 830 untouched and continue driving the presentation of the corresponding pixel (using corresponding LED elements utilizing the in-pixel memory for control). In some implementations, the display may additional include local in-pixel execution unit circuitry (also mounted on the backplane with the LED elements and in-pixel memory elements) to provide in-pixel backend processing and graphics functions at the corresponding LED elements. Indeed, the in-pixel execution units may utilize data stored in corresponding in-pixel memory to perform graphics processing and further cause the display to present 840 graphics on the display based on the display data (e.g., reflecting the second frame determined by the host processor platform), among other example implementations.
Processor 900 can execute any type of instructions associated with algorithms, processes, or operations detailed herein. Generally, processor 900 can transform an element or an article (e.g., data) from one state or thing to another state or thing.
Code 904, which may be one or more instructions to be executed by processor 900, may be stored in memory 902, or may be stored in software, hardware, firmware, or any suitable combination thereof, or in any other internal or external component, device, element, or object where appropriate and based on particular needs. In one example, processor 900 can follow a program sequence of instructions indicated by code 904. Each instruction enters a front-end logic 906 and is processed by one or more decoders 908. The decoder may generate, as its output, a micro operation such as a fixed width micro operation in a predefined format, or may generate other instructions, microinstructions, or control signals that reflect the original code instruction. Front-end logic 906 also includes register renaming logic 910 and scheduling logic 912, which generally allocate resources and queue the operation corresponding to the instruction for execution.
Processor 900 can also include execution logic 914 having a set of execution units 916a, 916b, 916n, etc. Some embodiments may include a number of execution units dedicated to specific functions or sets of functions. Other embodiments may include only one execution unit or one execution unit that can perform a particular function. Execution logic 914 performs the operations specified by code instructions.
After completion of execution of the operations specified by the code instructions, back-end logic 918 can retire the instructions of code 904. In one embodiment, processor 900 allows out of order execution but requires in order retirement of instructions. Retirement logic 920 may take a variety of known forms (e.g., re-order buffers or the like). In this manner, processor 900 is transformed during execution of code 904, at least in terms of the output generated by the decoder, hardware registers and tables utilized by register renaming logic 910, and any registers (not shown) modified by execution logic 914.
Although not shown in
Processors 1070 and 1080 may also each include integrated memory controller logic (MC) 1072 and 1082 to communicate with memory elements 1032 and 1034. In alternative embodiments, memory controller logic 1072 and 1082 may be discrete logic separate from processors 1070 and 1080. Memory elements 1032 and/or 1034 may store various data to be used by processors 1070 and 1080 in achieving operations and functionality outlined herein.
Processors 1070 and 1080 may be any type of processor, such as those discussed in connection with other figures. Processors 1070 and 1080 may exchange data via a point-to-point (PtP) interface 1050 using point-to-point interface circuits 1078 and 1088, respectively. Processors 1070 and 1080 may each exchange data with a chipset 1090 via individual point-to-point interfaces 1052 and 1054 using point-to-point interface circuits 1076, 1086, 1094, and 1098. Chipset 1090 may also exchange data with a co-processor 1038, such as a high-performance graphics circuit, machine learning accelerator, or other co-processor 1038, via an interface 1039, which could be a PtP interface circuit. In alternative embodiments, any or all of the PtP links illustrated in
Chipset 1090 may be in communication with a bus 1020 via an interface circuit 1096. Bus 1020 may have one or more devices that communicate over it, such as a bus bridge 1018 and I/O devices 1016. Via a bus 1010, bus bridge 1018 may be in communication with other devices such as a user interface 1012 (such as a keyboard, mouse, touchscreen, or other input devices), communication devices 1026 (such as modems, network interface devices, or other types of communication devices that may communicate through a computer network 1060), audio I/O devices 1014, and/or a data storage device 1028. Data storage device 1028 may store code 1030, which may be executed by processors 1070 and/or 1080. In alternative embodiments, any portions of the bus architectures could be implemented with one or more PtP links.
The computer system depicted in
While some of the systems and solutions described and illustrated herein have been described as containing or being associated with a plurality of elements, not all elements explicitly illustrated or described may be utilized in each alternative implementation of the present disclosure. Additionally, one or more of the elements described herein may be located external to a system, while in other instances, certain elements may be included within or as a portion of one or more of the other described elements, as well as other elements not described in the illustrated implementation. Further, certain elements may be combined with other components, as well as used for alternative or additional purposes in addition to those purposes described herein.
Further, it should be appreciated that the examples presented above are non-limiting examples provided merely for purposes of illustrating certain principles and features and not necessarily limiting or constraining the potential embodiments of the concepts described herein. For instance, a variety of different embodiments can be realized utilizing various combinations of the features and components described herein, including combinations realized through the various implementations of components described herein. Other implementations, features, and details should be appreciated from the contents of this Specification.
Although this disclosure has been described in terms of certain implementations and generally associated methods, alterations and permutations of these implementations and methods will be apparent to those skilled in the art. For example, the actions described herein can be performed in a different order than as described and still achieve the desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve the desired results. In certain implementations, multitasking and parallel processing may be advantageous. Additionally, other user interface layouts and functionality can be supported. Other variations are within the scope of the following claims.
In general, one aspect of the subject matter described in this specification can be embodied in methods and executed instructions that include or cause the actions of identifying a sample that includes software code, generating a control flow graph for each of a plurality of functions included in the sample, and identifying, in each of the functions, features corresponding to instances of a set of control flow fragment types. The identified features can be used to generate a feature set for the sample from the identified features
These and other embodiments can each optionally include one or more of the following features. The features identified for each of the functions can be combined to generate a consolidated string for the sample and the feature set can be generated from the consolidated string. A string can be generated for each of the functions, each string describing the respective features identified for the function. Combining the features can include identifying a call in a particular one of the plurality of functions to another one of the plurality of functions and replacing a portion of the string of the particular function referencing the other function with contents of the string of the other function. Identifying the features can include abstracting each of the strings of the functions such that only features of the set of control flow fragment types are described in the strings. The set of control flow fragment types can include memory accesses by the function and function calls by the function. Identifying the features can include identifying instances of memory accesses by each of the functions and identifying instances of function calls by each of the functions. The feature set can identify each of the features identified for each of the functions. The feature set can be an n-graph.
Further, these and other embodiments can each optionally include one or more of the following features. The feature set can be provided for use in classifying the sample. For instance, classifying the sample can include clustering the sample with other samples based on corresponding features of the samples. Classifying the sample can further include determining a set of features relevant to a cluster of samples. Classifying the sample can also include determining whether to classify the sample as malware and/or determining whether the sample is likely one of one or more families of malware. Identifying the features can include abstracting each of the control flow graphs such that only features of the set of control flow fragment types are described in the control flow graphs. A plurality of samples can be received, including the sample. In some cases, the plurality of samples can be received from a plurality of sources. The feature set can identify a subset of features identified in the control flow graphs of the functions of the sample. The subset of features can correspond to memory accesses and function calls in the sample code.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
The following examples pertain to embodiments in accordance with this Specification. Example 1 is an apparatus including: a portion of a backplane, where the portion is associated with a particular pixel of a display, and the display is to include an array of pixels; a particular light emitting diode (LED) on the portion of the backplane, where the particular LED is to implement the particular pixel; and local memory located with the particular LED on the portion of the backplane, where the local memory is to store data to be used to control the particular LED and presentation at the particular pixel.
Example 2 may include the subject matter of example 1, further including execution unit circuitry to perform one or more graphics operations for the particular pixel using data stored in the local memory, where the execution unit circuitry is located with the particular LED and the local memory on the portion of the backplane.
Example 3 may include the subject matter of example 2, where the one or more graphics operations include at least one of gamma correction, color calibration, or tone mapping at the particular pixel.
Example 4 may include the subject matter of any one of examples 1-3, further including controller circuitry to send a signal to control presentation of the particular pixel based on display data, where the signal is to cause data to be stored in the local memory based on the display data.
Example 5 may include the subject matter of example 4, where the controller circuitry is located with the particular LED on the portion of the backplane.
Example 6 may include the subject matter of any one of examples 4-5, where the data is to be stored in the local memory to reflect a change in pixel state for the particular pixel based on the display data, and the data overwrites other data associated with a previous pixel state.
Example 7 may include the subject matter of example 6, where the pixel state of the particular pixel is to remain unchanged based on other display data, the controller circuitry refrains from signaling the particular LED based on the other display data, and illumination of the particular LED remains static in response to the other display data based on the data stored in the local memory.
Example 8 may include the subject matter of any one of examples 4-7, where the particular LED is one of a plurality of LEDs in the array of pixels, and the apparatus further includes a plurality of controllers, where each of the plurality of controllers controls a respective subset of the plurality of LEDs.
Example 9 may include the subject matter of any one of examples 1-8, where the particular LED is one of a plurality of LEDs in the array of pixels, and another one of the plurality of LEDs is located in another portion of the backplane, the other LED is to implement another one of the array of pixels, and another local memory is located in the other portion of the backplane and serves as local memory for the other pixel, where the other LED is controlled based on pixel state data stored in the other local memory.
Example 10 may include the subject matter of any one of examples 1-9, further including an interface to couple to a host processor, where display data is received for the display from the host processor on the interface, and the host processor is separate from the backplane.
Example 11 may include the subject matter of any one of examples 1-10, where the LED includes a microLED.
Example 12 is a non-transitive machine accessible storage medium having instructions stored thereon, where the instructions, when executed on a machine, causes the machine to: identify display data corresponding to graphics to be presented on a display, where the graphics are to transition from a first frame to a second frame based on the display data, the display includes a backplane with an array of light emitting diodes (LEDs) to implement a plurality of pixels of the display, the backplane further includes a plurality of memory elements to serve as local memory for each one of the plurality of pixels, and at least some of the plurality of memory elements are located on the backplane between LEDs in the array of LEDs; determine, from the display data, that a first subset of the plurality of pixels are to retain respective pixel values in the transition from the first frame to the second frame; determine, from the display data, that a second subset of the plurality of pixels are to change from a respective previous value in the first frame to a respective new value in the second frame; and cause a set of signals to be sent to write data to a subset of the plurality of memory elements, where the subset of memory elements serve as local memory for the second subset of pixels, and the data is written to the subset of memory elements to identify the respective new pixel values for the second subset of pixels, where each LED in the array of LEDs is driven by a corresponding value stored in the respective local memory for the LED.
Example 13 may include the subject matter of example 12, where the array of LEDs includes an array of microLEDs.
Example 14 may include the subject matter of any one of examples 12-13, where the instructions, when executed, further cause the machine to cause a graphics operation to be performed for a particular one of the plurality of pixels by execution unit circuitry on the backplane, where the execution unity circuitry is positioned between two LEDs in the array of LEDs.
Example 15 may include the subject matter of example 14, where the graphics operation includes one of gamma correction, color calibration, or tone mapping at the particular pixel.
Example 16 may include the subject matter of any one of examples 12-15, where a second subset of the memory elements implementing local memory for the first set of pixels retain respective pixel values for the first set of pixels to cause presentation of the first set of pixels to remain static over the transition from the first frame to the second frame.
Example 17 is a method including: identifying display data corresponding to graphics to be presented on a display, where the graphics are to transition from a first frame to a second frame based on the display data, the display includes a backplane with an array of light emitting diodes (LEDs) to implement a plurality of pixels of the display, the backplane further includes a plurality of memory elements to serve as local memory for each one of the plurality of pixels, and at least some of the plurality of memory elements are located on the backplane between LEDs in the array of LEDs; determining, from the display data, that a first subset of the plurality of pixels are to retain respective pixel values in the transition from the first frame to the second frame; determining, from the display data, that a second subset of the plurality of pixels are to change from a respective previous value in the first frame to a respective new value in the second frame; and causing a set of signals to be sent to write data to a subset of the plurality of memory elements, where the subset of memory elements serve as local memory for the second subset of pixels, and the data is written to the subset of memory elements to identify the respective new pixel values for the second subset of pixels, where each LED in the array of LEDs is driven by a corresponding value stored in the respective local memory for the LED.
Example 18 may include the subject matter of example 17, where the array of LEDs includes an array of microLEDs.
Example 19 may include the subject matter of any one of examples 17-18, further including causing a graphics operation to be performed for a particular one of the plurality of pixels by execution unit circuitry on the backplane, where the execution unity circuitry is positioned between two LEDs in the array of LEDs.
Example 20 may include the subject matter of example 19, where the graphics operation includes one of gamma correction, color calibration, or tone mapping at the particular pixel.
Example 21 may include the subject matter of any one of examples 17-20, where a second subset of the memory elements implementing local memory for the first set of pixels retain respective pixel values for the first set of pixels to cause presentation of the first set of pixels to remain static over the transition from the first frame to the second frame.
Example 22 may include the subject matter of any one of examples 17-21, where the method is performed, at least in part, by a host processor platform, where the host processor platform interfaces with the display.
Example 23 may include the subject matter of any one of examples 17-21, where the method is performed by circuitry at the display.
Example 24 is a system including means to perform the method of any one of examples 17-21.
Example 25 is a system including: a host platform including: a data processor; and a memory; and a display to interface with the host platform, where the display includes: a backplane; a plurality of light emitting diode (LED) elements mounted on the backplane to implement an array of pixels of the display; and a plurality of memory elements mounted on the backplane, where at least some of the plurality of memory elements are mounted between LED elements in the plurality of LED elements, and the plurality of memory elements provide local memory for the array of pixels, where each one of the plurality of LED elements is driven based on a respective pixel value stored in the local memory of the respective pixel implemented by the LED element.
Example 26 may include the subject matter of example 25, where the display further includes a plurality of execution unit circuits mounted on the backplane, at least a portion of the plurality of execution unit circuits are positioned between LED elements in the plurality of LED elements, and the plurality of execution units are to perform graphics processing functions for pixels in the array of pixels.
Example 27 may include the subject matter of any one of examples 25-26, where the system includes a laptop computer, the laptop computer includes a base and a lid, the host platform is implemented in the base, and the display is implemented in the lid.
Example 28 may include the subject matter of any one of examples 25-27, where each one of the plurality of LED elements includes a respective microLED device.
Example 29 may include the subject matter of any one of examples 25-28, where a particular one of the memory elements is to serve as local memory for a particular one of the array of pixels, the particular pixel is implemented by a particular one of the plurality of LED elements, the particular LED element is located in a subarea of the backplane associated with a position of the particular pixel, and the particular memory element is also located in the subarea.
Example 30 may include the subject matter of example 29, where the host platform includes a system on chip (SoC).
Example 31 may include the subject matter of any one of examples 25-30, further including a high-speed interconnect to couple the host platform to the display.
Example 32 may include the subject matter of any one of examples 25-31, further including a wearable device, where the wearable device includes the display.
Example 33 may include the subject matter of any one of examples 25-32, further including a smartphone, where the smartphone includes the display.
Example 34 may include the subject matter of any one of examples 25-33, where the display includes controller circuitry to send a signal to control presentation of pixels in the display based on display data, where the signal is to cause data to be stored in local memory of at least a portion of the pixels based on the display data.
Example 35 may include the subject matter of example 34, where the controller circuitry is located between two or more LED elements on the backplane.
Example 36 may include the subject matter of any one of examples 34-35, where the controller circuitry includes a plurality of controller blocks, and each one of the plurality of controller blocks interfaces with a respective subset of the plurality of memory elements to controls a corresponding subset of the plurality of LED elements.
Example 37 may include the subject matter of any one of examples 34-36, where the host platform is to generate the display data.
Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results.