Patents by Inventor Shubhendu Sekhar Mukherjee

Shubhendu Sekhar Mukherjee has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20160259734
    Abstract: Address translation and caching is managed using a processor that includes at least one CPU configured to run a hypervisor at a first access level and at least one guest operating system at a second access level. The managing includes: at the second access level, translating from virtual addresses to intermediate physical; at the second access level, determining reuse information for ranges of virtual addresses based on estimated reuse of data stored within a virtual address space; at the first access level, translating from the intermediate physical addresses to physical addresses; at the first access level, determining reuse information for ranges of intermediate physical addresses based on estimated reuse of data stored within an intermediate physical address space; and processing reuse information determined at different access levels to store cache lines in selected portions of a first cache.
    Type: Application
    Filed: March 4, 2015
    Publication date: September 8, 2016
    Inventor: Shubhendu Sekhar Mukherjee
  • Patent number: 9405702
    Abstract: A core executes memory instructions. A memory management unit (MMU) coupled to the core includes a first cache that stores a plurality of final mappings of a hierarchical page table, a page table walker that traverses levels of the page table to provide intermediate results associated with respective levels for determining the final mappings, and a second cache that stores a limited number of intermediate results provided by the page table walker. The MMU compares a portion of the first virtual address to portions of entries in the second cache, in response to a request from the core to invalidate a first virtual address, based on a match criterion that depends on the level associated with each intermediate result stored in an entry in the second cache, and removes any entries in the second cache that satisfy the match criterion.
    Type: Grant
    Filed: November 14, 2014
    Date of Patent: August 2, 2016
    Assignee: Cavium, Inc.
    Inventors: Shubhendu Sekhar Mukherjee, Mike Bertone, Albert Ma
  • Publication number: 20160140060
    Abstract: A motherboard includes multiple sockets, each socket configured to accept an integrated circuit. A first integrated circuit in a first socket includes one or more cores and at least one buffer. A second integrated circuit in a second socket includes one or more cores and at least one buffer. Communication circuitry transfers messages to buffers of integrated circuits coupled to different sockets. A first core on the first integrated circuit is configured to send messages corresponding to multiple types of instructions to a second core on the second integrated circuit through the communication circuitry. The buffer of the second integrated circuit is large enough to store a maximum number of instructions of a second type that are allowed to be outstanding from cores on the first integrated circuit at the same time, and still have enough storage space for one or more instructions of a first type.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventors: Shubhendu Sekhar Mukherjee, David Asher, Brad Dobbie, Tom Hummel, Daniel Dever
  • Publication number: 20160140040
    Abstract: A filter includes filter entries, each corresponding to a mapping between a virtual memory address and a physical memory address and including a presence indicator indicative which processing elements have the mapping present in their respective translation lookaside buffers (TLBs). A TLB invalidation (TLBI) instruction is received for a first mapping. If a first filter entry corresponding to the first mapping exists in the filter, the plurality of processing elements are partitioned into a first partition of zero or more processing elements that have the first mapping present in their TLBs and a second partition of zero or more processing elements that do not have the first mapping present in their TLBs based on the presence indicator of the first filter entry. The TLBI instruction is sent to the processing elements included in the first partition, and not those in the second partition.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventor: Shubhendu Sekhar Mukherjee
  • Publication number: 20160140051
    Abstract: Managing a plurality of translation lookaside buffers (TLBs) includes: issuing, at a first processing element, a first instruction for invalidating one or more TLB entries associated with a first context in a first TLB associated with the first processing element. The issuing includes: determining whether or not a state of an indicator indicates that all TLB entries associated with the first context in a second TLB associated with a second processing element are invalidated; if not: sending a corresponding instruction to the second processing element, causing invalidation of all TLB entries associated with the first context in the second TLB, and changing a state of the indicator; and if so: suppressing sending of any corresponding instructions for causing invalidation of any TLB entries associated with the first context in the second TLB to the second processing element.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventors: Richard Eugene Kessler, Shubhendu Sekhar Mukherjee, Mike Bertone
  • Publication number: 20160140048
    Abstract: A core executes memory instructions. A memory management unit (MMU) coupled to the core includes a first cache that stores a plurality of final mappings of a hierarchical page table, a page table walker that traverses levels of the page table to provide intermediate results associated with respective levels for determining the final mappings, and a second cache that stores a limited number of intermediate results provided by the page table walker. The MMU compares a portion of the first virtual address to portions of entries in the second cache, in response to a request from the core to invalidate a first virtual address, based on a match criterion that depends on the level associated with each intermediate result stored in an entry in the second cache, and removes any entries in the second cache that satisfy the match criterion.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventors: Shubhendu Sekhar Mukherjee, Mike Bertone, Albert Ma
  • Publication number: 20160140061
    Abstract: Communicating among multiple sets of multiples cores includes: buffering messages in first buffer associated with a first set of multiple cores; buffering messages in a second buffer associated with a second set of multiple cores; and transferring messages over communication circuitry from cores not in the first set to the first buffer, and to transferring messages from cores not in the second set to the second buffer. A first core of the first set sends messages corresponding to multiple types of instructions to a second core of the second set through the communication circuitry. The second buffer is large enough to store a maximum number of instructions of a second type that are allowed to be outstanding from cores in the first set at the same time, and still have enough storage space for one or more instructions of a first type.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventors: Shubhendu Sekhar Mukherjee, David Asher, Brad Dobbie, Tom Hummel, Daniel Dever
  • Publication number: 20160140043
    Abstract: Execution of the memory instructions is managed using memory management circuitry including a first cache that stores a plurality of the mappings in the page table, and a second cache that stores entries based on virtual addresses. The memory management circuitry executes operations from the one or more modules, including, in response to a first operation that invalidates at least a first virtual address, selectively ordering each of a plurality of in progress operations that were in progress when the first operation was received by the memory management circuitry, wherein a position in the ordering of a particular in progress operation depends on either or both of: (1) which of one or more modules initiated the particular in progress operation, or (2) whether or not the particular in progress operation provides results to the first cache or second cache.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventors: Shubhendu Sekhar Mukherjee, Albert Ma, Mike Bertone
  • Publication number: 20160140047
    Abstract: Each of multiple translation lookaside buffers (TLBs) is associated with a corresponding processing element. A first TLB invalidation (TLBI) instruction is issued at a first processing element, and sent to a second processing element. An element-specific synchronization instruction is issued at the first processing element. A synchronization command is broadcast, and received at the second processing element. The element-specific synchronization instruction prevents issuance of additional TLBI instructions at the first processing element until an acknowledgement in response to the synchronization command is received at the first processing element.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventors: Shubhendu Sekhar Mukherjee, David Asher, Mike Bertone, Brad Dobbie, Tom Hummel
  • Publication number: 20160140042
    Abstract: Managing an instruction cache of a processing element, the instruction cache including a plurality of instruction cache entries, each entry including a mapping of a virtual memory address to one or more processor instructions, includes: issuing, at the processing element, a translation lookaside buffer invalidation instruction for invalidating a translation lookaside buffer entry in a translation lookaside buffer, the translation lookaside buffer entry including a mapping from a range of virtual memory addresses to a range of physical memory addresses; causing invalidation of one or more of the instruction cache entries of the plurality of instruction cache entries in response to the translation lookaside buffer invalidation instruction.
    Type: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventor: Shubhendu Sekhar Mukherjee
  • Publication number: 20160011877
    Abstract: Executing instructions in a processor includes determining identifiers corresponding to instructions in at least one decode stage of a pipeline of the processor. A set of identifiers for at least one instruction include: at least one operation identifier identifying an operation to be performed by the instruction, at least one storage identifier identifying a storage location for storing an operand of the operation, and at least one storage identifier identifying a storage location for storing a result of the operation. A multi-dimensional identifier is assigned to at least one storage identifier.
    Type: Application
    Filed: July 11, 2014
    Publication date: January 14, 2016
    Inventors: Shubhendu Sekhar Mukherjee, Richard Eugene Kessler, David Albert Carlson
  • Publication number: 20160011876
    Abstract: Executing instructions in a processor includes classifying, in at least one stage of a pipeline of the processor, operations to be performed by instructions. The classifying includes: classifying a first set of operations as operations for which out-of-order execution is allowed, and classifying a second set of operations as operations for which out-of-order execution with respect to one or more specified operations is not allowed, the second set of operations including at least store operations. Results of instructions executed out-of-order are selected to commit the selected results in-order. The selecting includes, for a first result of a first instruction and a second result of a second instruction executed before and out-of-order relative to the first instruction: determining which stage of the pipeline stores the second result, and committing the first result directly from the determined stage over a forwarding path, before committing the second result.
    Type: Application
    Filed: July 11, 2014
    Publication date: January 14, 2016
    Inventors: Shubhendu Sekhar Mukherjee, Richard Eugene Kessler, David Albert Carlson
  • Publication number: 20140006417
    Abstract: To create a rating of a tangible or non-tangible object, raters grade the object against another object with respect to an attribute. Multiple such grades are collected in a computing system. These grades are combined to create a single numeric score, which serves as the rating, for the object or object-attribute pair. This method of rating an object is superior to obtaining absolute numeric scores about a particular object or object-attribute pair because this method accurately reflects how an object ranks with respect to other objects.
    Type: Application
    Filed: July 1, 2012
    Publication date: January 2, 2014
    Inventor: Shubhendu Sekhar Mukherjee