Directory Tables (e.g., Dlat, Tlb) Patents (Class 711/207)
  • Patent number: 10180911
    Abstract: A processor including logic to execute an instruction to synchronize a mapping from a physical address of a guest of a virtualization based system (guest physical address) to a physical address of the host of the virtualization based system (host physical address), and stored in a translation lookaside buffer (TLB), with a corresponding mapping stored in an extended paging table (EPT) of the virtualization based system.
    Type: Grant
    Filed: June 12, 2017
    Date of Patent: January 15, 2019
    Assignee: Intel Corporation
    Inventors: Steven M. Bennett, Andrew V. Anderson, Gilbert Neiger, Richard Uhlig, Scott Dion Rodgers, Rajesh M. Sankaran, Camron Rust, Sebastian Schoenberg
  • Patent number: 10176109
    Abstract: When performing non-sequential accesses to large data sets, hot spots may be avoided by permuting the memory locations being accesses to more evenly spread those accesses across the memory and across multiple memory channels. A permutation step may be used when accessing data, such as to improve the distribution of those memory accesses within the system. Instead of accessing one memory address, that address may be permuted so that another memory address is accessed. Non-sequential accesses to an array may be modified such that each index to the array is permuted to another index in the array. Collisions between pre- and post-translation addresses may be prevented and one-to-one mappings may be used. Permutation mechanisms may be implemented in software, hardware, or a combination of both, with or without the knowledge of the process performing the memory accesses.
    Type: Grant
    Filed: April 20, 2017
    Date of Patent: January 8, 2019
    Assignee: Oracle International Corporation
    Inventors: Timothy L. Harris, David Dice
  • Patent number: 10176111
    Abstract: A marking capability is used to provide an indication of whether a block of memory is being used by a guest control program to back an address translation structure. The marking capability includes setting an indicator in one or more locations associated with the block of memory. In a further aspect, the marking capability includes an invalidation facility based on the setting of the indicators.
    Type: Grant
    Filed: July 18, 2016
    Date of Patent: January 8, 2019
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Jonathan D. Bradbury, Michael K. Gschwind, Lisa Cranton Heller, Christian Jacobi, Damian L. Osisek, Anthony Saporito
  • Patent number: 10169279
    Abstract: An input/output control device is connected to an input/output switch which transfers a received input/output instruction to an input/output device whose local address is specified in the input/output instruction. The input/output control device includes a memory and circuitry. The memory stores specific information about a processor and a conversion table for converting a logical address of the input/output device into the local address, with the specific information and the conversion table each being associated with a device group that includes the processor and the input/output device. The circuitry identifies the device group based on the specific information about the processor of sender which information is obtained. The circuitry converts the logical address included in the input/output instruction into the local address which is obtained from the conversion table for the identified device group, and then sends the input/output instruction to the input/output switch.
    Type: Grant
    Filed: January 15, 2016
    Date of Patent: January 1, 2019
    Assignee: NEC CORPORATION
    Inventor: Hiroki Yokoyama
  • Patent number: 10162617
    Abstract: Systems and methods for binary translation are disclosed. In some implementations, guest software to run in a Native Client environment is received. The guest software is configured to execute at a specified guest hardware architecture and not within the Native Client environment. A binary translation of the guest software into Native Client compatible machine code is provided using emulation software. The Native Client compatible machine code executes within a sandbox for the Native Client environment. The Native Client compatible machine code is executable within an application. Providing the binary translation of the guest software into the Native Client compatible machine code for execution within the sandbox occurs just in time, during a runtime of the emulated guest software, and without porting or recompiling the guest software. Providing the binary translation interleaves with execution of the emulated guest software.
    Type: Grant
    Filed: April 10, 2015
    Date of Patent: December 25, 2018
    Assignee: Google LLC
    Inventors: Evgeny Eltsin, Nikolay Igotti, Andrey Khalyavin, Dmitry Polukhin
  • Patent number: 10162762
    Abstract: A data processing system 4 includes a translation lookaside buffer 6 storing mapping data entries 10 indicative of virtual-to-physical address mappings for different regions of physical addresses. A hint generator 20 coupled to the translation lookaside buffer 6 generates hint data in dependence upon the storage of mapping data entries within the translation lookaside buffer 6. The hint generator 20 tracks the loading of mapping data entries and the eviction of mapping data entries from the translation lookaside buffer 6. The hint data is supplied to a memory controller 8 which controls how data corresponding to respective different regions of physical addresses is stored within a heterogeneous memory system, e.g. the power state of different portions of the memories storing different regions, which type of memory is used to store different regions.
    Type: Grant
    Filed: April 22, 2015
    Date of Patent: December 25, 2018
    Assignee: ARM LIMITED
    Inventors: Geoffrey Blake, Ali Ghassan Saidi, Mitchell Hayenga
  • Patent number: 10146698
    Abstract: A method and apparatus for reducing dynamic power consumption in a multi-thread content-addressable memory (CAM) is described. The disclosed apparatus includes a first input configured to receive a first virtual address corresponding to a first thread, a second input configured to receive a second virtual address corresponding to a second thread, a register bank including a plurality of registers each configured to store a binary word mapped to one of a plurality of physical addresses, a first comparator bank including a first plurality of comparators each coupled to one of the plurality of registers in a fully-associative configuration and configured to determine whether a first match is present, and a second comparator bank including a second plurality of comparators each coupled to one of the plurality of registers in a fully-associative configuration and configured to determine whether a second match is present.
    Type: Grant
    Filed: December 21, 2017
    Date of Patent: December 4, 2018
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Anthony J. Bybell
  • Patent number: 10146687
    Abstract: Embodiments of techniques and systems for execution of code with multiple page tables are described. In embodiments, a heterogenous system utilizing multiple processors may use multiple page tables to selectively execute appropriate ones of different versions of executable code. The system may be configured to support use of function pointers to virtual memory addresses. In embodiments, a virtual memory address may be mapped, such as during a code fetch. In embodiments, when a processor seeks to perform a code fetch using the function pointer, a page table associated with the processor may be used to translate the virtual memory address to a physical memory address where code executable by the processor may be found. Usage of multiple page tables may allow the system to support function pointers while utilizing only one virtual memory address for each function that is pointed to. Other embodiments may be described and claimed.
    Type: Grant
    Filed: April 25, 2017
    Date of Patent: December 4, 2018
    Assignee: Intel Corporation
    Inventor: Mike B. Macpherson
  • Patent number: 10140216
    Abstract: An apparatus includes processing circuitry to process instructions, some of which may require addresses to be translated. The apparatus also includes address translation circuitry to translate addresses in response to instruction processed by the processing circuitry. Furthermore, the apparatus also includes translation latency measuring circuitry to measure a latency of at least part of an address translation process performed by the address translation circuitry in response to a given instruction.
    Type: Grant
    Filed: January 21, 2016
    Date of Patent: November 27, 2018
    Assignee: ARM LIMITED
    Inventors: Michael John Williams, Michael Filippo, Hazim Shafi
  • Patent number: 10140217
    Abstract: The present disclosure relates to a method of operating a hierarchical translation lookaside buffer (TLB). The TLB comprises at least two TLB levels, wherein a given entry of the upper level TLB comprises a portion of bits for indicating related entries in the lower level TLB. The method comprises the following when a TLB miss is encountered for a requested first virtual address. A first table walk is performed to obtain the absolute memory address for the first virtual address. A logical tag is stored. The logical tag comprises the portion of bits that has been identified in association with the first table walk. In response to determining that a concurrent second table walk, of the ongoing first table walk, that has a second virtual address that addresses the same entry in the upper level TLB as the first virtual address is writing in the TLB, the stored logical tag may be incremented. And, the incremented logical tag and the obtained absolute memory address may be stored in the TLB.
    Type: Grant
    Filed: December 17, 2017
    Date of Patent: November 27, 2018
    Assignee: International Business Machines Corporation
    Inventors: Uwe Brandt, Frank S. Lehnert, Thomas G. Koehler, Markus M. Helms, Martin Recktenwald
  • Patent number: 10127159
    Abstract: The present disclosure relates to a method of operating a hierarchical translation lookaside buffer (TLB). The TLB comprises at least two TLB levels, wherein a given entry of the upper level TLB comprises a portion of bits for indicating related entries in the lower level TLB. The method comprises the following when a TLB miss is encountered for a requested first virtual address. A first table walk is performed to obtain the absolute memory address for the first virtual address. A logical tag is stored. The logical tag comprises the portion of bits that has been identified in association with the first table walk. In response to determining that a concurrent second table walk, of the ongoing first table walk, that has a second virtual address that addresses the same entry in the upper level TLB as the first virtual address is writing in the TLB, the stored logical tag may be incremented. And, the incremented logical tag and the obtained absolute memory address may be stored in the TLB.
    Type: Grant
    Filed: July 13, 2017
    Date of Patent: November 13, 2018
    Assignee: International Business Machines Corporation
    Inventors: Uwe Brandt, Frank S. Lehnert, Thomas G. Koehler, Markus M. Helms, Martin Recktenwald
  • Patent number: 10127071
    Abstract: The invention concerns a multi-core processing system comprising: a first input/output interface (312) configured to transmit data over a first network (313) based on a first network protocol; a second input/output interface (314) configured to transmit data over a second network (315) based on a second network protocol; a plurality of processing cores; and one or more memory devices storing software enabling virtual processing resources of the plurality of processing cores and virtual memory to be assigned to support: a first compartment (303) implementing one or more first virtual machines; a second compartment (304) implementing one or more second virtual machines; and a programmable virtual switch (302) configured to provide an interface between the first and second virtual machines and the first and second input/output interfaces (312, 314).
    Type: Grant
    Filed: June 16, 2017
    Date of Patent: November 13, 2018
    Assignee: Virtual Open Systems
    Inventors: Michele Paolino, Kevin Chappuis, Salvatore Daniele Raho
  • Patent number: 10095498
    Abstract: A provisioning system to automatically determine the appropriate components to install or make available for installation on a target computer system. An example system may comprise: receiving data indicative of a bit-size and a virtual machine extension support of a processing device of the client device; determining that the processing device supports a plurality of bit-size versions of a software component; querying the client device to select a preferred version of the software component associated with the virtual machine extension support; determining that the version of a software component associated with the first bit-size is unavailable; provisioning the version of the software component associated with the virtual machine extension support and the second bit-size to the client device in view of the determination; and notifying the client device when the version of the software component associated with the first bit-size and the virtual machine extension support is available for installation.
    Type: Grant
    Filed: April 25, 2017
    Date of Patent: October 9, 2018
    Assignee: Red Hat, Inc.
    Inventors: Miroslav Suchy, Milan Zazrivec
  • Patent number: 10089220
    Abstract: Methods and apparatus for saving state information resulting from non-idempotent operations are described. A computer system includes a system memory coupled to one or more processors. The system memory comprises at least a non-volatile portion. Elements of state information associated with an executable component that are to be stored within the non-volatile portion are identified. In response to detecting an occurrence of a particular non-idempotent operation that results in the generation of state information, selected elements of information are stored in the non-volatile portion of the system memory. In response to a request subsequent to a failure event, wherein the failure event resulted in a loss of data stored in a volatile portion of the system memory, the state information is read from the non-volatile portion.
    Type: Grant
    Filed: November 1, 2013
    Date of Patent: October 2, 2018
    Assignee: Amazon Technologies, Inc.
    Inventors: Samuel James McKelvie, Anurag Windlass Gupta
  • Patent number: 10084613
    Abstract: A self adapting driver for controlling datapath hardware elements uses a generic driver and a configuration library to create a set of data structures and methods to map information provided by applications to physical tables. A set of virtual tables is implemented as an interface between the applications and the generic driver. The generic driver uses the configuration library to determine a mapping from the virtual tables to the physical tables. A virtual table schema definition is parsed to create the configuration library, such that changes to the physical infrastructure may be implemented as changes to the virtual table schema definition without adjusting the driver code. Thus automatically generated creation of generic packet forwarding drivers is able to be implemented through the use of a configuration language that defines the meaning of the information stored in the virtual tables.
    Type: Grant
    Filed: September 27, 2012
    Date of Patent: September 25, 2018
    Assignee: Extreme Networks, Inc.
    Inventor: Hamid Assarpour
  • Patent number: 10073620
    Abstract: Memory management is provided within a data processing system 2 which includes a memory protection unit 8 and defines memory regions within the memory address space which extend between base addresses and limit addresses and have respective attributes associated therewith. When a hit occurs within a memory region which is a valid hit, then block data is generated comprising a mask value and a TAG value (derived from the original query address) which may then be used to identify subsequent hits within at least a portion of that region using a bitwise AND. In another embodiment a micro-translation lookaside buffer is reused by the memory protection unit to store page data identifying pages which fall validly within memory regions and may be used to return attribute data for those pages upon subsequent accesses rather than performing the comparison with the base address and the limit addresses.
    Type: Grant
    Filed: October 29, 2015
    Date of Patent: September 11, 2018
    Assignee: ARM Limited
    Inventor: Simon John Craske
  • Patent number: 10067873
    Abstract: A method for operating a data storage device includes: dividing a cache into a plurality of cache areas; grouping a plurality of logical addresses into a plurality of logical address groups; allocating indexes to the respective logical address groups; and matching a read-requested first logical address set, a first cache area where data corresponding to the first logical address set are cached and an empty size of the first cache area, to an index corresponding to a logical address group to which the first logical address set belongs.
    Type: Grant
    Filed: January 20, 2016
    Date of Patent: September 4, 2018
    Assignee: SK Hynix Inc.
    Inventors: Seok Hoon Jung, Ji Hoon Lee
  • Patent number: 10031856
    Abstract: A system for managing virtual memory. The system includes a first processing unit configured to execute a first operation that references a first virtual memory address. The system also includes a first memory management unit (MMU) associated with the first processing unit and configured to generate a first page fault upon determining that a first page table that is stored in a first memory unit associated with the first processing unit does not include a mapping corresponding to the first virtual memory address. The system further includes a first copy engine associated with the first processing unit. The first copy engine is configured to read a first command queue to determine a first mapping that corresponds to the first virtual memory address and is included in a first page state directory. The first copy engine is also configured to update the first page table to include the first mapping.
    Type: Grant
    Filed: October 16, 2013
    Date of Patent: July 24, 2018
    Assignee: NVIDIA CORPORATION
    Inventors: Jerome F. Duluk, Jr., Chenghuan Jia, John Mashey, Cameron Buschardt, Sherry Cheung, James Leroy Deming, Samuel H. Duncan, Lucien Dunning, Robert George, Arvind Gopalakrishnan, Mark Hairgrove
  • Patent number: 10025726
    Abstract: A memory management unit (MMU) may manage address translations. The MMU may obtain a first intermediate physical address (IPA) based on a first virtual address (VA) relating to a first memory access request. The MMU may identify, based on the first IPA, a first memory page entry in a second address translation table. The MMU may store, in a second cache memory, a first IPA-to-PA translation based on the identified first memory page entry. The MMU may store, in the second cache memory and in response to the identification of the first memory page entry, one or more additional IPA-to-PA translations that are based on corresponding one or more additional memory page entries in the second address translation table. The one or more additional memory page entries may be contiguous to the first memory page entry.
    Type: Grant
    Filed: October 29, 2014
    Date of Patent: July 17, 2018
    Assignee: STMicroelectronics International N.V.
    Inventors: Herve Sibert, Loic Pallardy
  • Patent number: 10019379
    Abstract: Example devices are disclosed. For example, a device may include a processor, a plurality of translation lookaside buffers, a plurality of switches, and a memory management unit. Each of the translation lookaside buffers may be assigned to a different process of the processor, each of the plurality of switches may include a register for storing a different process identifier, and each of the plurality of switches may be associated with a different one of the translation lookaside buffer buffers. The memory management unit may be for receiving a virtual memory address and a process identifier from the processor and forwarding the process identifier to the plurality of switches. Each of the plurality of switches may be for connecting the memory management unit to a translation associated with the switch when there is a match between the process identifier and the different process identifier stored by the register of the switch.
    Type: Grant
    Filed: February 5, 2018
    Date of Patent: July 10, 2018
    Assignees: AT&T Mobility II LLC, AT&T Intellectual Property I, L.P.
    Inventors: Sheldon Kent Meredith, Brandon B. Hilliard, William Cottrill
  • Patent number: 10002084
    Abstract: An example method of memory management in a virtualized computing system includes: generating a page table hierarchy that includes address translations to first pages of memory that store kernel software and second pages of the memory that store user software; configuring a processor to: 1) implement a first address translation scheme, which uses a first virtual address width, for a hypervisor privilege level; 2) implement a second address translation scheme, which uses a second virtual address width, for supervisor and user privilege levels, where the first virtual address width is larger than the second virtual address width; and 3) use the page table hierarchy for each of the first and second address translation schemes; and executing the kernel software at the hypervisor privilege level and the user software at the user privilege level.
    Type: Grant
    Filed: December 19, 2016
    Date of Patent: June 19, 2018
    Assignee: VMware, Inc.
    Inventors: Andrei Warkentin, Cyprien Laplace, Ye Li
  • Patent number: 9996461
    Abstract: A method for storing data on a storage device includes receiving data to be stored and a logical address for storing the data. A physical address is determined and the data to be stored is stored at the determined physical address. A table that associates logical addresses with physical addresses is examined to determine a difference relationship between the determined physical address and a corresponding physical address for one of other logical addresses. Information representing the determined physical address is stored in the table, in association with the received logical address, as a function of the determined difference relationship. A data storage device includes controller circuitry and memory for storing a lookup table that associates logical addresses with physical addresses. The controller circuitry operates in accordance with the method.
    Type: Grant
    Filed: August 20, 2015
    Date of Patent: June 12, 2018
    Assignee: Marvell International Ltd.
    Inventors: Wei Xu, Ka-Ming Keung, Fei Sun, Jinjin He, ChengKuo Huang, Tony Yoon
  • Patent number: 9984342
    Abstract: Data relevant to a predefined data object of a set of predefined data objects can be extracted from a unit of date received at a recurring revenue management system. The extracted relevant data can be populated to an instance of the predefined data object. One or more relationships between the instance of the predefined data object and at least one other instance of the predefined data object or a second predefined data object. The defining occurs based on a set of parameters associated with the predefined data object and content of the extracted data. An opportunity can be generated for a sale or renewal of a recurring revenue asset based at least in part on the one or more relationships, and the generated opportunity can be presented to a user. Related methods, systems, and computer program products are also described.
    Type: Grant
    Filed: May 8, 2017
    Date of Patent: May 29, 2018
    Assignee: SERVICESOURCE INTERNATIONAL, INC.
    Inventors: Greg Olsen, Ganesh Bell, Ricardo Craft, Lenin Subramanian, Chellah Thirunavukkarasu, Manohar Raghunath, Zheng Chen
  • Patent number: 9983880
    Abstract: An apparatus and method are described for improved thread selection. For example, one embodiment of a processor comprises: first logic to maintain a history table comprising a plurality of entries, each entry in the table associated with an instruction and including history data indicating prior hits and/or misses to a cache level and/or a translation lookaside buffer (TLB) for that instruction; and second logic to select a particular thread for execution at a particular processor pipeline stage based on the history data.
    Type: Grant
    Filed: September 26, 2014
    Date of Patent: May 29, 2018
    Assignee: Intel Corporation
    Inventors: Rekai Gonzalez-Alberquilla, Tanausu Ramirez, Josep M. Codina, Enric Gibert Codina
  • Patent number: 9971702
    Abstract: An example system that includes a processor and a memory device. The processor may include multiple execution units to execute instructions and a memory device coupled to the processor. The memory device stores the instructions in an unprotected region and a protected region. The processor may determine that a first exception occurred while executing a first set of instructions for an application stored in a secured page of the protected region. The processor may invoke a first subroutine to forward exception context for the first exception to a second subroutine, where the first subroutine is stored in the protected region and the second subroutine is stored in the unprotected region. The processor may invoke, by the second subroutine, a third subroutine to execute a second set of instructions associated with the exception context for the first exception.
    Type: Grant
    Filed: October 24, 2016
    Date of Patent: May 15, 2018
    Assignee: Intel Corporation
    Inventor: Bin Xing
  • Patent number: 9971707
    Abstract: A system is described to provide protection key access control in a system whose operating system and processor were not designed to provide a protection key memory access control mechanism. Such a system can be applied to an emulator or to enable a system that executes native applications to be interoperable with a legacy system that employs protection key memory access control.
    Type: Grant
    Filed: August 31, 2017
    Date of Patent: May 15, 2018
    Assignee: LZLABS GMBH
    Inventor: Jan Jaeger
  • Patent number: 9966654
    Abstract: To provide a filter circuit, a communication circuit including a filter circuit, and a numerical control including a filter circuit, which improve transmission efficiency of partial write performed in a communication circuit made using an all-purpose serial communication protocol. A partial-write enable filter circuit includes: a data input unit that accepts input data; a determination unit that determines whether partial write of input data is valid; an enable information acquisition unit that acquires partial-write enable information; a storage unit that stores partial-write enable information; a computation unit that computes valid data in the input data; and a data output unit that outputs the valid data computed by the computation unit.
    Type: Grant
    Filed: July 14, 2017
    Date of Patent: May 8, 2018
    Assignee: FANUC CORPORATION
    Inventor: Teruki Nakasato
  • Patent number: 9934155
    Abstract: A method, system, and apparatus may initialize a fixed plurality of page table entries for a fixed plurality of pages in memory, each page having a first size, wherein a linear address for each page table entry corresponds to a physical address and the fixed plurality of pages are aligned. A bit in each of the page table entries for the aligned pages may be set to indicate whether or not the fixed plurality of pages is to be treated as one combined page having a second page size larger than the first page size. Other embodiments are described and claimed.
    Type: Grant
    Filed: December 20, 2012
    Date of Patent: April 3, 2018
    Assignee: Intel Corporation
    Inventors: Edward Grochowski, Julio Gago, Roger Gramunt, Roger Espasa, Rolf Kassa
  • Patent number: 9916254
    Abstract: A logical address key is generated based at least in part on a logical address. Encoded data is generated by systematically error correction encoding the logical address key and write data. One or more physical addresses are determined that correspond to the logical address where the physical addresses that correspond to the logical address are dynamic. At the physical addresses, the encoded data is stored with the logical address key removed.
    Type: Grant
    Filed: June 2, 2016
    Date of Patent: March 13, 2018
    Assignee: SK Hynix Inc.
    Inventors: Kwok Wah Yeung, Marcus Marrow, Aditi R. Ganesan
  • Patent number: 9898416
    Abstract: In a multithreaded data processing system including a plurality of processor cores and a system fabric, translation entries can be invalidated without deadlock. A processing unit forwards translation invalidation request(s) received on the system fabric to a processor core via a non-blocking channel. Each of the translation invalidation requests specifies a respective target address and requests invalidation of any translation entry in the processor core that translates its respective target address. Responsive to a translation snoop machine of the processing unit snooping broadcast of a synchronization request on the system fabric of the data processing system, the translation synchronization request is presented to the processor core, and the translation snoop machine remains in an active state until a signal confirming completion of processing of the one or more translation invalidation requests and the synchronization request at the processor core is received and thereafter returns to an inactive state.
    Type: Grant
    Filed: December 22, 2015
    Date of Patent: February 20, 2018
    Assignee: International Business Machines Corporation
    Inventors: Guy L. Guthrie, Hugh Shen, Derek E. Williams
  • Patent number: 9898411
    Abstract: A set associative cache memory, comprising: an array of storage elements arranged as M sets by N ways, each set belongs in one of L mutually exclusive groups; an allocation unit allocates the storage elements in response to memory accesses that miss in the cache; each memory access has an associated memory access type (MAT) of a plurality of predetermined MAT; a mapping, for each group of the L mutually exclusive groups: for each MAT, associates the MAT with a subset of the N ways; and for each memory access, the allocation unit allocates into a way of the subset of ways that the mapping associates with the MAT of the memory access and with one of the L mutually exclusive groups in which the selected set belongs.
    Type: Grant
    Filed: December 14, 2014
    Date of Patent: February 20, 2018
    Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
    Inventors: Rodney E. Hooker, Douglas R. Reed, John Michael Greer, Colin Eddy
  • Patent number: 9892058
    Abstract: Systems, apparatuses, and methods for managing a unified shared virtual address space. A host may execute system software and manage a plurality of nodes coupled to the host. The host may send work tasks to the nodes, and for each node, the host may externally manage the node's view of the system's virtual address space. Each node may have a central processing unit (CPU) style memory management unit (MMU) with an internal translation lookaside buffer (TLB). In one embodiment, the host may be coupled to a given node via an input/output memory management unit (IOMMU) interface, where the IOMMU frontend interface shares the TLB with the given node's MMU. In another embodiment, the host may control the given node's view of virtual address space via memory-mapped control registers.
    Type: Grant
    Filed: December 16, 2015
    Date of Patent: February 13, 2018
    Assignee: Advanced Micro Devices, Inc.
    Inventor: John Wilkes
  • Patent number: 9891980
    Abstract: A processor of an aspect includes an instruction pipeline to process a multiple memory address instruction that indicates multiple memory addresses. The processor also includes multiple page fault aggregation logic coupled with the instruction pipeline. The multiple page fault aggregation logic is to aggregate page fault information for multiple page faults that are each associated with one of the multiple memory addresses of the instruction. The multiple page fault aggregation logic is to provide the aggregated page fault information to a page fault communication interface. Other processors, apparatus, methods, and systems are also disclosed.
    Type: Grant
    Filed: December 29, 2011
    Date of Patent: February 13, 2018
    Assignee: Intel Corporation
    Inventors: Boris Ginzburg, Ronny Ronen, Ilya Osadchiy
  • Patent number: 9892060
    Abstract: A mapping may be changed in a table stored in memory. The table may map a first set of addresses, for a set of data, to a second set of addresses. The changing of the mapping may including mapping the first set of addresses to a third set of addresses. In response to the changing of the mapping, one or more flush operations may be executed to invalidate one or more entries within one or more address translation caches. The one or more entries may include the second set of addresses. In response to the executing of the one or more flush operations, a first test case may be run. The first test case may be to test whether any of the first set of addresses are mapping to the second set of addresses.
    Type: Grant
    Filed: December 2, 2015
    Date of Patent: February 13, 2018
    Assignee: International Business Machines Corporation
    Inventors: Vinod Bussa, Manoj Dusanapudi, Shakti Kapoor
  • Patent number: 9875115
    Abstract: Techniques are described for preserving application state in virtual memory during operating system reboot. A preserved virtual memory allocation that has been populated with state by an application is identified. The application is shutdown during the OS reboot. The operating system is rebooted without modifying the preserved virtual memory allocation. For example, physical memory and paging file pages associated with the preserved virtual memory allocation on the computer system are unmodified when the operating system is rebooted. The application is restarted after the operating system has been rebooted. The preserved virtual memory allocations are identified after the application is restarted, such as by checking contents of a memory region or by an API return value. The application is then reconnected to the preserved virtual memory allocation, which allows the application to immediately access the preserved state without having to rebuild new state.
    Type: Grant
    Filed: December 20, 2013
    Date of Patent: January 23, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventor: Mark E. Russinovich
  • Patent number: 9870834
    Abstract: A data device includes a memory having a plurality of memory cells configured to store data values in accordance with a predetermined rank modulation scheme that is optional and a memory controller that receives a current error count from an error decoder of the data device for one or more data operations of the flash memory device and selects an operating mode for data scrubbing in accordance with the received error count and a program cycles count.
    Type: Grant
    Filed: October 19, 2016
    Date of Patent: January 16, 2018
    Assignee: California Institute of Technology
    Inventors: Yue Li, Jehoshua Bruck
  • Patent number: 9864700
    Abstract: A method and apparatus for reducing dynamic power consumption in a multi-thread content-addressable memory is described. The apparatus includes a first input configured to receive a first virtual address corresponding to a first thread, a second input configured to receive a second virtual address corresponding to a second thread, a register bank including a plurality of registers each configured to store a binary word mapped to one of a plurality of physical addresses, a first comparator bank including a first plurality of comparators each coupled to an associated register of the plurality of registers in a fully-associative configuration, and a second comparator bank including a second plurality of comparators each coupled to an associated register of the plurality of registers in a fully-associative configuration. An input virtual address to each comparator bank maintains its previous value for when a corresponding thread is not selected.
    Type: Grant
    Filed: August 17, 2016
    Date of Patent: January 9, 2018
    Assignee: ADVANCED MICRO DEVICES, INC.
    Inventor: Anthony J. Bybell
  • Patent number: 9864699
    Abstract: Aspects of the disclosure provide a circuit that includes a memory circuit and a controller circuit. The memory circuit is to have a look-up table (LUT) that associates logical address used in computation with physical address used in storage space. The LUT includes a first level LUT with first level entries corresponding to logical addresses, each first level entry includes an indicator field and a content field, and the indicator field is indicative of a compressible/non-compressible attribute of a physical address associated with a logical address. The controller circuit is to receive a logical address, and translate the logical address into a physical address associated with the logical address based on the LUT.
    Type: Grant
    Filed: April 14, 2016
    Date of Patent: January 9, 2018
    Assignee: Marvell International Ltd.
    Inventors: Wei Xu, Fei Sun, Ka-Ming Keung, Jinjin He, Young-Ta Wu, Tony Yoon
  • Patent number: 9864609
    Abstract: A non-disruptive, non-migratory hypervisor reboot is performed by suspending execution of the guest operating system, rebooting the container, and then resuming execution of the guest operating system. Suspending execution of the guest operating system can include stopping guest OS access to processing resources. Reboot includes the container loading or reloading itself while preserving the contents of the volatile memory in place. It is also possible to relocate some or all of the contents of the volatile memory to different addresses by creating an abstraction layer.
    Type: Grant
    Filed: June 13, 2013
    Date of Patent: January 9, 2018
    Assignee: EMC IP HOLDING COMPANY LLC
    Inventors: Steven McClure, Jonathan I. Krasner, Serge J. Pirotte, Velmurugan Rathnam, Steven R. Chalmer
  • Patent number: 9846552
    Abstract: A memory device includes a nonvolatile memory and a memory controller. The memory controller is configured to receive an access command with respect to a cluster of the nonvolatile memory, the access command including a size of the cluster and a logical address corresponding to a part of the cluster, translate the logical address to a physical address in the nonvolatile memory, by referring to a table storing physical addresses corresponding to part of logical addresses of the nonvolatile memory, identify all physical addresses corresponding to the cluster, based on the size of the cluster, the translated physical address, and an algorithm that generates a sequence for accessing the nonvolatile memory, and access the cluster of the nonvolatile memory in accordance with the identified physical addresses.
    Type: Grant
    Filed: September 1, 2015
    Date of Patent: December 19, 2017
    Assignee: Toshiba Memory Corporation
    Inventor: Katsuhiko Ueki
  • Patent number: 9836410
    Abstract: A comparand that includes a virtual address is received. Upon determining a match of the comparand to a burst entry tag, a candidate matching translation data unit is selected. The selecting is from a plurality of translation data units associated with the burst entry tag, and is based at least in part on at least one bit of the virtual address. Content of the candidate matching translation data unit is compared to at least a portion of the comparand. Upon a match, a hit is generated.
    Type: Grant
    Filed: September 25, 2015
    Date of Patent: December 5, 2017
    Assignee: QUALCOMM Incorporated
    Inventors: Jason Edward Podaima, Paul Christopher John Wiercienski, Alexander Miretsky
  • Patent number: 9823933
    Abstract: A reissue instruction parking system for a microprocessor including a reservation stations module that dispatches instructions for execution and a reorder buffer that reissues instructions to the reservation stations module during a reissue state, in which the reissue instruction parking system includes at least one first pipeline stage and at least one second pipeline stage, in which the first pipeline stages provide a first reissue instruction from a reissue data path to the reservation stations module during the reissue state and that parks the first reissue instruction once the reservation stations module is determined to be full, and in which the second pipeline stages select a pointer to the reorder buffer which provides a corresponding first reissue instruction onto the reissue data path, in which the second pipeline stages are placed into a hold state when a second full signal is asserted.
    Type: Grant
    Filed: March 16, 2015
    Date of Patent: November 21, 2017
    Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
    Inventors: Penghao Zou, Mengchen Yang, Jianbin Wang, Xiaoyuan Yu, Xin Yu Gao
  • Patent number: 9824022
    Abstract: An address translation capability in which information is obtained from an address translation structure to be used to translate a first address to a second address, the first address being of a first address type and the second address being of a second address type. The address translation structure includes a first set of information to translate the first address to one address of the second address type and a second set of information to translate the first address to another address of the second address type. To obtain the information, the first set of information or the second set of information is selected as the information to be used to translate the first address to the second address, based on an attribute of the first address.
    Type: Grant
    Filed: September 13, 2014
    Date of Patent: November 21, 2017
    Assignee: International Business Machines Corporation
    Inventor: Michael K. Gschwind
  • Patent number: 9824021
    Abstract: An address translation capability in which information is obtained from an address translation structure to be used to translate a first address to a second address, the first address being of a first address type and the second address being of a second address type. The address translation structure includes a first set of information to translate the first address to one address of the second address type and a second set of information to translate the first address to another address of the second address type. To obtain the information, the first set of information or the second set of information is selected as the information to be used to translate the first address to the second address, based on an attribute of the first address.
    Type: Grant
    Filed: March 31, 2014
    Date of Patent: November 21, 2017
    Assignee: International Business Machines Corporation
    Inventor: Michael K. Gschwind
  • Patent number: 9817762
    Abstract: The disclosed embodiments relate to a computing system that facilitates performing prefetching for scatter/gather operations. During operation, the system receives a scatter/gather prefetch instruction at a processor core, wherein the scatter/gather prefetch instruction specifies a virtual base address, and a plurality of offsets. Next, the system performs a lookup in a translation-lookaside buffer (TLB) using the virtual base address to obtain a physical base address that identifies a physical page for the base address. The system then sends the physical base address and the plurality of offsets to a cache. This enables the cache to perform prefetching operations for the scatter/gather instruction by adding the physical base address to the plurality of offsets to produce a plurality of physical addresses, and then prefetching cache lines for the plurality of physical addresses into the cache.
    Type: Grant
    Filed: May 20, 2014
    Date of Patent: November 14, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Sanjiv Kapil, Darryl J. Gove
  • Patent number: 9817689
    Abstract: An example method of providing a dirty bitmap to an application includes receiving a request for a snapshot of an internal dirty bitmap. The internal dirty bitmap indicates whether a guest has updated one or more pages in guest memory since a previously received request for a snapshot of the internal dirty bitmap. The method also includes copying a set of bits of the internal dirty bitmap into a shared dirty bitmap, which is accessible by the hypervisor and application. The method further includes for each bit of the set of bits having a first value, setting the respective bit to a second value. The method also includes invalidating all cache lines in a set of pages corresponding to one or more bits having the first value in the shared dirty bitmap. The method further includes after invalidating the cache lines, providing the shared dirty bitmap to the application.
    Type: Grant
    Filed: February 27, 2015
    Date of Patent: November 14, 2017
    Assignee: Red Hat, Inc.
    Inventors: Paolo Bonzini, Laszlo Ersek, Jonathan Masters
  • Patent number: 9811468
    Abstract: A set associative cache memory, comprising: an array of storage elements arranged as M sets by N ways; an allocation unit that allocates the storage elements in response to memory accesses that miss in the cache memory. Each memory access selects a set; for each parcel of a plurality of parcels, a parcel specifier specifies: a subset of ways of the N ways included in the parcel. The subsets of ways of parcels associated with a selected set are mutually exclusive; a replacement scheme associated with the parcel from among a plurality of predetermined replacement schemes. For each memory access, the allocation unit: selects the parcel specifier in response to the memory access; and uses the replacement scheme associated with the parcel to allocate into the subset of ways of the selected set included in the parcel.
    Type: Grant
    Filed: December 14, 2014
    Date of Patent: November 7, 2017
    Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
    Inventors: Rodney E. Hooker, Douglas R. Reed, John Michael Greer, Colin Eddy
  • Patent number: 9811472
    Abstract: Embodiments relate to managing memory page tables in a processing system. A request to access a desired block of memory is received. The request includes an effective address that includes an effective segment identifier (ESID) and a linear address, the linear address including a most significant portion and a byte index. An entry in a buffer that includes the ESID of the effective address is located. Based on the entry including a radix page table pointer (RPTP), performing: using the RPTP to locate a translation table of a hierarchy of translation tables, using the located translation table to translate the most significant portion of the linear address to obtain an address of a block of memory, and based on the obtained address, performing the requested access to the desired block of memory.
    Type: Grant
    Filed: June 14, 2012
    Date of Patent: November 7, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Anthony J. Bybell, Michael K. Gschwind
  • Patent number: 9804825
    Abstract: A control unit for a motor vehicle includes a central processing unit, a communication interface and a memory for storing program data of respective control programs. For programming the control unit with program data, which are stored in a specified manner in the memory, the control unit is operatively configured for supporting a specified set of protocols and for reading-in and analyzing a program data updating prompt for a control program to be updated, which prompt is provided at the communication interface. The updating prompt includes a first indicator representing conceivable protocols usable for programming with updated program data. The control unit, as a function of the first indicator, determines a second indicator, which represents that protocol from the set usable for programming of the control unit with the updated program data. The control unit sends, in response to the program data updating prompt, a program data request, which includes the second indicator.
    Type: Grant
    Filed: January 17, 2014
    Date of Patent: October 31, 2017
    Assignee: Bayerische Motoren Werke Aktiengesellschaft
    Inventor: Ingolf Pietschmann
  • Patent number: 9798487
    Abstract: One embodiment of the present invention sets forth a computer-implemented method for migrating a memory page from a first memory to a second memory. The method includes determining a first page size supported by the first memory. The method also includes determining a second page size supported by the second memory. The method further includes determining a use history of the memory page based on an entry in a page state directory associated with the memory page. The method also includes migrating the memory page between the first memory and the second memory based on the first page size, the second page size, and the use history.
    Type: Grant
    Filed: August 22, 2016
    Date of Patent: October 24, 2017
    Assignee: NVIDIA Corporation
    Inventors: Jerome F. Duluk, Jr., Cameron Buschardt, James Leroy Deming, Lucien Dunning, Brian Fahs, Mark Hairgrove, Chenghuan Jia, John Mashey, James M. Van Dyke