Interprogram Communication Using Shared Memory Patents (Class 719/312)
  • Patent number: 8959512
    Abstract: A system and method to improve memory usage in virtual machines running as hypervisor guests. In accordance with an embodiment, the invention provides a system for changing the memory usage of a virtual machine on request from a hypervisor, comprising: a hypervisor; a guest operating system executing inside the hypervisor; a communication channel between the hypervisor and the guest operating system; a balloon driver in the guest operating system; a virtual machine for executing a software application; a communication channel between the balloon driver and the virtual machine; a memory space or heap for use by the virtual machine in storing software objects and pointers as part of the software application; and a compacting garbage collector for use by the virtual machine.
    Type: Grant
    Filed: March 28, 2012
    Date of Patent: February 17, 2015
    Assignee: Oracle International Corporation
    Inventor: Joakim Dahlstedt
  • Patent number: 8954995
    Abstract: A software transactional memory system is provided that creates an array of transactional locks for each array object that is accessed by transactions. The system divides the array object into non-overlapping portions and associates each portion with a different transactional lock. The system acquires transactional locks for transactions that access corresponding portions of the array object. By doing so, different portions of the array object can be accessed by different transactions concurrently. The system may use a shared shadow or undo copy for accesses to the array object.
    Type: Grant
    Filed: October 1, 2008
    Date of Patent: February 10, 2015
    Assignee: Microsoft Corporation
    Inventors: Weirong Zhu, David L. Detlefs, Yosseff Levanoni, Lingli Zhang
  • Patent number: 8949295
    Abstract: Methods, systems, and computer programs for managing memory in a host where virtual machines (VMs) execute are presented. In one embodiment, a method includes an operation for determining which amount of heap memory has been reserved in a Java virtual machine (JVM) that is in excess of the heap memory needed by the JVM. If there is excess heap memory, a Java balloon agent reserves a Java object in the heap memory. Typically, the Java object will be the size of one or more memory pages in the host. Further, the Java balloon agent loads the Java object with a certain value, for example, by zeroing out the page of memory. When a virtual machine monitor (VMM) in the host detects that a machine physical memory page associated with the Java object has the first value, then the VMM frees the machine physical memory page to make the memory available to other VMs or to other processes executing in the host.
    Type: Grant
    Filed: June 29, 2010
    Date of Patent: February 3, 2015
    Assignee: VMware, Inc.
    Inventors: Richard McDougall, Wei Huang, Ben Corrie
  • Patent number: 8943515
    Abstract: A method of pasting data from a source application to a destination application, where the source and destination applications are not the same; the method comprising the steps of: identifying a data type for the data and an appropriate input handler for the data type; converting the data using the appropriate input handle to a standard format based on the data type; in an output module determining the context of the data in the standard format to identify an appropriate output handler; obtaining a suggested paste operation from a suggestion engine based on the type and context of the data; and instructing a paste operation on the basis of the suggested paste operation.
    Type: Grant
    Filed: July 15, 2011
    Date of Patent: January 27, 2015
    Assignee: Amadeus S.A.S.
    Inventors: Pierre-Jean Reissman, Tadhg Pearson, Jerome Mikaelian, Elona Eski, Guillaume Fournols
  • Patent number: 8930961
    Abstract: An automatic mutual exclusion computer programming system is disclosed which allows a programmer to produce concurrent programming code that is synchronized by default without the need to write any synchronization code. The programmer creates asynchronous methods which are not permitted make changes to shared memory that they cannot reverse, and can execute concurrently with other asynchronous methods. Changes to shared memory are committed if no other thread has accessed shared memory while the asynchronous method executed. Changes are reversed and the asynchronous method is re-executed if another thread has made changes to shared memory. The resulting program executes in a serialized order. A blocking system method is disclosed which causes the asynchronous method to re-execute until the blocking method's predicate results in an appropriate value. A yield system call is disclosed which divides asynchronous methods into atomic fragments.
    Type: Grant
    Filed: May 31, 2013
    Date of Patent: January 6, 2015
    Assignee: Microsoft Corporation
    Inventors: Andrew David Birrell, Michael Acheson Isard
  • Patent number: 8930960
    Abstract: Methods and systems are provided for creating and using a shared object space to interpret objects. In one exemplary embodiment, a method is provided that includes partitioning a memory area of a server. The method may also include creating an object, wherein the created object contains the data needed for performing the function of the object, and providing an interpretation routine for interpreting the object. The method may further include storing the created object and the interpretation routine in the partitioned memory area and defining application access to the partitioned memory area.
    Type: Grant
    Filed: December 18, 2007
    Date of Patent: January 6, 2015
    Assignee: SAP SE
    Inventor: Carsten Ziegler
  • Patent number: 8909863
    Abstract: A request for application information can be received from an application running in a process. The application information can be requested from an information repository, and received back from the repository in a first format. The application information can be converted to a second format, and passed to the application in the second format. In addition, the application information can be saved in the second format in a cache in the process. Also, when application information has been cached in response to a request for the information for a first user object, and a subsequent request for the application information for a second user object is received, it can be determined whether the second user object is authorized to access the application information. If so, then the application information can be fetched from the cache and returned for use by the second user object.
    Type: Grant
    Filed: November 16, 2009
    Date of Patent: December 9, 2014
    Assignee: Microsoft Corporation
    Inventors: Matthew A. Neerincx, Zlatko V. Michailov, Chadwin J. Mumford
  • Publication number: 20140337859
    Abstract: A data processing apparatus includes a processing unit having first and second modes of operation for processing data, including receiving data packets from a sender and sending acknowledgements to the sender, the second mode of operation requires more power than the first mode, and the processing unit switches between the first and second modes of operation based on a processing load; a metric module for determining a metric indicative of the processing load; an acknowledgement module for sending one acknowledgement in respect of n received data packets; and an acknowledgement configuration module for setting n to be a value m greater than a first predetermined value if the metric lies in a predetermined range that includes a value that the metric assumes when the processing unit switches between the first mode of operation and the second mode of operation, and to the first predetermined value otherwise.
    Type: Application
    Filed: July 25, 2014
    Publication date: November 13, 2014
    Applicant: FREESCALE SEMICONDUCTOR, INC.
    Inventor: JEAN-LUC ROBIN
  • Patent number: 8881171
    Abstract: A computer readable medium and method for providing checkpointing to Windows application groups. The checkpointing may be triggered asynchronously using Asynchronous Procedure Calls. The computer readable medium includes computer-executable instructions for execution by a processing system. The computer-executable instructions may be for reviewing one or more command line arguments to determine whether to start at least one of the application groups, and when determining to start the at least one of the application groups, creating a process table in a shared memory to store information about each process of the at least one of the application groups. Further, the instructions may be for registering with a kernel module to create an application group barrier, creating a named pipe for applications of the application group to register and unregister, triggering a checkpoint thread to initiate an application group checkpoint; and launching an initial application of the applications of the application group.
    Type: Grant
    Filed: September 28, 2012
    Date of Patent: November 4, 2014
    Assignee: Open Invention Network, LLC
    Inventors: Keith Richard Backensto, Allan Havemose
  • Patent number: 8880473
    Abstract: A system and method for storage checkpointing to a group of independent computer applications. The system has a storage disk that stores files; a storage access interface to access the storage disk; and a computer. The computer runs the group of independent computer applications and utilizes the files stored on the storage disk. A file system on the server accesses the files stored on the storage disk. An operating system and at least one device driver can be called by the file system, and at least one buffer buffers first data written to the storage disk and second data read from the storage disk.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: November 4, 2014
    Assignee: Open Invention Network, LLC
    Inventors: Allan Havemose, Keith Richard Backensto
  • Publication number: 20140325526
    Abstract: An information processing system includes an operation acceptance unit that accepts operations, a discrimination unit that distinguishes between an operation to be recorded and an operation not to be recorded among the operations accepted by the operation acceptance unit, and a recording unit that records the operations that the discrimination unit identifies as an operation to be recorded among the operations accepted by the operation acceptance unit in a memory.
    Type: Application
    Filed: April 8, 2014
    Publication date: October 30, 2014
    Applicant: RICOH COMPANY, LTD.
    Inventors: Tadashi NAGATA, Tomoki SHIBUKAWA, Hajime KUBOTA
  • Patent number: 8869168
    Abstract: Methods, apparatuses, and computer program products for scheduling synchronization in association with collective operations in a parallel computer that includes a shared memory and a plurality of compute nodes that execute a parallel application utilizing the shared memory are provided. Embodiments include acquiring an available channel of the shared memory; posting to the acquired channel of the shared memory one or more collective operations and a synchronization point; determining that processing within the acquired channel has reached the synchronization point; and posting to the acquired channel, in response to determining that processing within the acquired channel has reached the synchronization point, a background synchronization operation corresponding to the one or more collective operations.
    Type: Grant
    Filed: May 14, 2012
    Date of Patent: October 21, 2014
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Archer, Michael A. Blocksome, Joseph D. Ratterman, Brian E. Smith
  • Patent number: 8850127
    Abstract: Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed.
    Type: Grant
    Filed: March 27, 2014
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Paul M. Dantzig, Robert O. Dryfoos, Sastry S. Duri, Arun Iyengar
  • Patent number: 8850021
    Abstract: Technologies are generally described for methods, instructions, and client applications for device discovery in a ubiquitous computing environment. In some examples, the methods, instructions, and client applications may facilitate the organization of features of devices in a ubiquitous computing environment into a series of hierarchical hash numbers, the ordering of the hierarchical hash numbers corresponding to the respective devices, and the searching for a particular one of the devices by attempting to match hashed search criteria to the ordered hierarchical hash numbers at one of the devices in the ubiquitous computing environment.
    Type: Grant
    Filed: December 17, 2010
    Date of Patent: September 30, 2014
    Assignee: Empire Technology Development LLC
    Inventors: Junwei Cao, Zhen Wang
  • Publication number: 20140289739
    Abstract: A memory has a shared data object containing shared data for a plurality of program instances. An allocation routine allocates a respective memory region corresponding to the shared data object to each of the plurality of program instances, where each of the memory regions contains a header part and a data part, where the data part corresponds to the shared data and the header part contains information relating to the data part, and the header part is private to the corresponding program instance. The allocation routine maps the shared data to the memory regions using a mapping technique that avoids copying the shared data to each of the data parts as part of allocating the corresponding memory region.
    Type: Application
    Filed: March 20, 2013
    Publication date: September 25, 2014
    Applicant: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
    Inventor: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
  • Publication number: 20140282608
    Abstract: A system and method for sharing data and resources among a plurality of applications on a mobile device is disclosed. Embodiments provide a mobile applications architecture that is able to link applications and share the linked applications simultaneously on an Android (or other operating system) mobile device such as a smart phone or table computer. The mobile applications architecture creates a framework that provides an easy interface for third-party applications to quickly integrate and leverage already constructed components and sharing of data among multiple third-party applications thereby reducing the complexity of newly developed capabilities for mobile applications architecture on not just a single device, but multiple devices.
    Type: Application
    Filed: March 12, 2014
    Publication date: September 18, 2014
    Applicant: Northrop Grumman Systems Corporation
    Inventors: Joseph Biancalana, Brandon Cleveland, Kevin Gilland
  • Patent number: 8832713
    Abstract: Described are techniques for communicating between one or more producers and one or more consumers. A first consumer of an event queue registers for notification regarding occurrences of one or more events. A producer of the event queue posts one or more notifications to one or more consumers of the event queue regarding one or more occurrences of one or more events. Each of the consumers receive notification regarding occurrences of events for which said each consumer is registered. The first consumer retrieves posted event notifications regarding events for which said first consumer is registered. If the first consumer is executing in user space and an event notification list to which said event notifications for said first consumer are posted is located in shared memory, said first consumer retrieves said posted event notifications without proxying into kernel space.
    Type: Grant
    Filed: August 15, 2012
    Date of Patent: September 9, 2014
    Assignee: EMC Corporation
    Inventors: Christopher M. Gould, Peter J. McCann
  • Patent number: 8826228
    Abstract: A computer-implemented method for creating a program for a multi-processor system comprising a plurality of interspersed processors and memories. A user may specify or create source code using a programming language. The source code specifies a plurality of tasks and communication of data among the plurality of tasks. However, the source code may not (and preferably is not required to) 1) explicitly specify which physical processor will execute each task and 2) explicitly specify which communication mechanism to use among the plurality of tasks. The method then creates machine language instructions based on the source code, wherein the machine language instructions are designed to execute on the plurality of processors. Creation of the machine language instructions comprises assigning tasks for execution on respective processors and selecting communication mechanisms between the processors based on location of the respective processors and required data communication to satisfy system requirements.
    Type: Grant
    Filed: March 27, 2007
    Date of Patent: September 2, 2014
    Assignee: Coherent Logix, Incorporated
    Inventors: John Mark Beardslee, Michael B. Doerr, Tommy K. Eng
  • Patent number: 8826298
    Abstract: One embodiment of the present invention provides a system that facilitates using a web-based client-server application offline. During operation, the system receives a function call at an object within a browser that is executing on a client, wherein the function call is generated by the web-based client-server application and is directed to a communication layer on the client. Next, the system determines an intended resource for the function call. The system also determines if the function call should be redirected to an alternate resource. If so, the system redirects the function call to the alternate resource. If not, the system forwards the function call to the intended resource. Note that in some embodiments of the present invention, the entire system operates within the context of the browser.
    Type: Grant
    Filed: July 24, 2012
    Date of Patent: September 2, 2014
    Assignee: Google Inc.
    Inventors: Erik V. Arvidsson, Andrew J. Palay
  • Patent number: 8819700
    Abstract: A method and apparatus configured to allow independent threads to communicate synchronously through a block of memory accessible to at least two independent threads for bi-directional communication. The method and apparatus simplify the conversion of computer code to a multi-threaded architecture by allowing threads to effectively interact through function calls and data returns.
    Type: Grant
    Filed: December 22, 2010
    Date of Patent: August 26, 2014
    Assignee: LSI Corporation
    Inventors: James A. Lynn, Anthony D. Gitchell
  • Publication number: 20140237483
    Abstract: A graphical program execution environment that facilitates communication between a producer program and a consumer program is disclosed. The producer program may store data in a memory block allocated by the producer program. A graphical program may communicate with the producer program to obtain a reference to the memory block. The graphical program may asynchronously pass the reference to the consumer program, e.g., may pass the reference without blocking or waiting while the consumer program accesses the data in the memory block. After the consumer program is finished accessing the data, the consumer program may asynchronously notify the graphical program execution environment to release the memory block. The graphical program execution environment may then notify the producer program that the block of memory is no longer in use so that the producer program can de-allocate or re-use the memory block.
    Type: Application
    Filed: April 24, 2014
    Publication date: August 21, 2014
    Applicant: NATIONAL INSTRUMENTS CORPORATION
    Inventors: J. Adam Kemp, Neil S. Feiereisel, Brent C. Schwan
  • Publication number: 20140223447
    Abstract: A method and system is disclosed which can enhance the performance of computer systems by altering the operation of the operating system of those computer systems. The invention provides a system and method for making exception-less system calls, decoupling the invocation and execution of system calls, thus avoiding or reducing the direct and indirect overheads associated with making a conventional exception-based system call. The invention can be employed with single core processor systems and with multi-core processor systems, both affording improved temporal execution locality and the later also providing improved spatial execution locality. The system and method can be employed in a wide range of operating systems.
    Type: Application
    Filed: April 11, 2014
    Publication date: August 7, 2014
    Applicant: Quietus Systems Inc.
    Inventors: Livio SOARES, Michael STUMM
  • Patent number: 8799901
    Abstract: Methods associated with a service are identified. Select ones of the methods are matched to generic methods of a conversation. A new service is established from the conversation that includes the select ones of the methods.
    Type: Grant
    Filed: May 20, 2004
    Date of Patent: August 5, 2014
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Harumi Kuno, Alan Hersh Karp
  • Patent number: 8799921
    Abstract: One embodiment of the present invention provides a system that facilitates communication between an embedded code in a web page and a stand-alone application. During operation, the system first embeds a code within a web page that is displayed in a browser. Next, the embedded code receives information indicating a communication method provided by a stand-alone application, via a first communication channel. The embedded code subsequently sends the contextual information associated with a user browser session by calling the communication method, via a second communication channel, thereby allowing the stand-alone application to inherit the contextual information from the web browser.
    Type: Grant
    Filed: September 27, 2012
    Date of Patent: August 5, 2014
    Assignee: VMware, Inc.
    Inventor: Blake R. Barrett
  • Patent number: 8793701
    Abstract: Described are methods and systems related to data report and analysis. A first business intelligence (BI) block is imported to a host analytics user interface (UI). The first BI block includes synchronizable dimensions to synchronize values of the first BI block with other BI blocks, and propagatable dimensions to propagate values of the first BI block to other BI blocks. A host data context of the host analytics UI is updated by propagating the propagatable dimensions of the first BI block. A second BI block is imported to the host analytics UI. The second BI block includes at least one synchronizable dimension in common with at least one propagatable dimension of the first BI block. The synchronizable dimensions of the second BI block are synchronized to the updated host data context. The first BI block and the synchronized second BI block are rendered on the host analytics UI.
    Type: Grant
    Filed: May 26, 2009
    Date of Patent: July 29, 2014
    Assignee: Business Objects Software Limited
    Inventors: Ludovic Engrand, Christophe Nasarre, Gilles Salinas
  • Patent number: 8789042
    Abstract: A processor includes guest mode control registers supporting guest mode operating behavior defined by guest context specified in the guest mode control registers. Root mode control registers support root mode operating behavior defined by root context specified in the root mode control registers. The guest context and the root context are simultaneously active to support virtualization of hardware resources such that multiple operating systems supporting multiple applications are executed by the hardware resources.
    Type: Grant
    Filed: September 27, 2010
    Date of Patent: July 22, 2014
    Assignee: MIPS Technologies, Inc.
    Inventor: James Robert Howard Hakewill
  • Patent number: 8782665
    Abstract: An architecture for a multi-stage manycore processor shared dynamically among a set of software applications, with capabilities for destination task defined intra-application prioritization of inter-task communications (ITC), for architecture-based ITC performance isolation between the applications, as well as for prioritizing application task instances for execution on cores of manycore processors based at least in part on which of the task instances have available for them the input data, such as ITC data, that they need for executing.
    Type: Grant
    Filed: August 5, 2013
    Date of Patent: July 15, 2014
    Assignee: Throughputer, Inc.
    Inventor: Mark Henrik Sandstrom
  • Patent number: 8782117
    Abstract: Different target functions at a target computing platform having limited resources are invoked by a single generic function call from a calling computing platform having substantial resources. A target function can be called in a consistent and efficient manner, so that custom code can be avoided at the target computing platform for each target function. The generic function call can have parameters which identify a memory location at which a target function is stored, and one or more parameters to be passed to the target function in a format (e.g., length, endianness, enumerated data type, structured record type, float or integer type) which the target function uses, so that further conversion at the target computing platform is avoided. Parameters can also identify a thread and processor on which the function should run. The target computing platform loads and executes the target function using the registers in a deterministic way.
    Type: Grant
    Filed: July 30, 2012
    Date of Patent: July 15, 2014
    Assignee: Microsoft Corporation
    Inventors: Philip J Nachreiner, Peter M Wiest
  • Patent number: 8782667
    Abstract: Embodiments of the present invention provide a method, system and computer program product for weather adaptive environmentally hardened appliances. In an embodiment of the invention, a method for weather adaptation of an environmentally hardened computing appliance includes determining a location of an environmentally hardened computing appliance. Thereafter, a weather forecast including a temperature forecast can be retrieved for a block of time at the location. As a result, a cache policy for a cache of the environmentally hardened computing appliance can be adjusted to account for the weather forecast.
    Type: Grant
    Filed: December 27, 2010
    Date of Patent: July 15, 2014
    Assignee: International Business Machines Corporation
    Inventors: Erik J. Burckart, Gennaro Cuomo, Andrew J. Ivory, Victor S. Moore, Aaron K. Shook
  • Patent number: 8776088
    Abstract: An illustrative operating system distributes two or more instances of the operating system over heterogeneous platforms of a computing device. The instances of the operating system work together to provide single-kernel semantics to present a common operating system abstraction to application modules. The heterogeneous platforms may include co-processors that use different instruction set architectures and/or functionality, different NUMA domains, etc. Further, the operating system allows application modules to transparently access components using a local communication path and a remote communication path. Further, the operating system includes a policy manager module that determines the placement of components based on affinity values associated with interaction relations between components. The affinity values express the sensitivity of the interaction relations to a relative location of the components.
    Type: Grant
    Filed: March 30, 2009
    Date of Patent: July 8, 2014
    Assignee: Microsoft Corporation
    Inventors: Orion T. Hodson, Galen C. Hunt, Edmund B. Nightingale
  • Patent number: 8769672
    Abstract: A method, computer program product and system for preventing code injection in an operating system. The method 300 includes a checking module 340 hooking a kernel mode OS system call 330 and a request 315 sent to the kernel mode OS system call 330 being directed to the checking module 340. The checking module 340 queries 345 a process database 350 and the checking module 340 then allows or denies the request 315 based on a response from the process database 350.
    Type: Grant
    Filed: August 4, 2006
    Date of Patent: July 1, 2014
    Assignee: Symantec Corporation
    Inventor: Seung Bae Park
  • Patent number: 8769549
    Abstract: A graphical program execution environment that facilitates communication between a producer program and a consumer program is disclosed. The producer program may store data in a memory block allocated by the producer program. A graphical program may communicate with the producer program to obtain a reference to the memory block. The graphical program may asynchronously pass the reference to the consumer program, e.g., may pass the reference without blocking or waiting while the consumer program accesses the data in the memory block. After the consumer program is finished accessing the data, the consumer program may asynchronously notify the graphical program execution environment to release the memory block. The graphical program execution environment may then notify the producer program that the block of memory is no longer in use so that the producer program can de-allocate or re-use the memory block.
    Type: Grant
    Filed: April 30, 2012
    Date of Patent: July 1, 2014
    Assignee: National Instruments Corporation
    Inventors: J. Adam Kemp, Neil S. Feiereisel, Brent C. Schwan
  • Publication number: 20140165078
    Abstract: A circuit for processing data is provided. The circuit includes an Application Processor (AP), a Communication Processor (CP), and a storage unit including at least a first region which the AP and the CP access and from/to which data related to at least one of the AP and the CP is read/written, and a second region which the CP accesses and from/to which data related to the CP is read/written.
    Type: Application
    Filed: March 14, 2013
    Publication date: June 12, 2014
    Applicant: Samsung Electronics Co. Ltd.
    Inventor: Hye-Jeong KIM
  • Patent number: 8752064
    Abstract: Provided herein is a method for optimizing communication for system calls. The method includes storing a system call for each work item in a wavefront and transmitting said stored system calls to a processor for execution. The method also includes receiving a result to each work item in the wavefront responsive to said transmitting.
    Type: Grant
    Filed: November 30, 2011
    Date of Patent: June 10, 2014
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Benjamin Thomas Sander, Michael Houston, Newton Cheung, Keith Lowery
  • Patent number: 8752063
    Abstract: In embodiments of a programming interface for data communications, a request queue and a completion queue can be allocated from a user-mode virtual memory buffer that corresponds to an application. The request queue and the completion queue can be pinned to physical memory and then mapped to kernel-mode system addresses so that the request queue and the completion queue can be accessed by a kernel-mode execution thread. A request can be received from an application for the kernel to handle data in the request queue, and a system issued to the kernel for the kernel-mode execution thread to handle the request. The kernel-mode execution thread can then handle additional requests from the application without additional system calls being issued.
    Type: Grant
    Filed: June 23, 2011
    Date of Patent: June 10, 2014
    Assignee: Microsoft Corporation
    Inventors: Osman N. Ertugay, Keith E. Horton, Joseph Nievelt
  • Patent number: 8752052
    Abstract: Multiple sub-dispatched application server threads are provided in a single local process, where the multiple sub-dispatched application server threads carry out their own task dispatching. The multiple sub-dispatched application server threads are linked in the single local process using a distributed programming model.
    Type: Grant
    Filed: August 3, 2012
    Date of Patent: June 10, 2014
    Assignee: International Business Machines Corporation
    Inventor: Ian J. Mitchell
  • Patent number: 8739177
    Abstract: In a computing system, sharing a physical NIC device among multiple virtual machines may be implemented by a customer virtual machine by receiving, by a virtual network interface card (NIC) driver of a customer operating system (OS) running in the customer virtual machine on a computing system, a customer OS request packet for transmission by a physical NIC driver over a network coupled to the computing system, and copying at least a portion of the customer OS request packet into a free block of shared memory of the computing system and appending the block to a transmission queue in the shared memory.
    Type: Grant
    Filed: June 21, 2010
    Date of Patent: May 27, 2014
    Assignee: Intel Corporation
    Inventors: Yi Qian, Hua Zhou, Fujin Huang, Michael A. Rothman, Vincent J. Zimmer
  • Patent number: 8738890
    Abstract: A single application can be executed across multiple execution environments in an efficient manner if at least a relevant portion of the virtual memory assigned to the application was equally accessible by each of the multiple execution environments. A request by a process in one execution environment can, thereby, be directed to an operating system, or other core software, in another execution environment and can be made by a shadow of the requesting process in the same manner as the original request was made by the requesting process itself. Because of the memory invariance between the execution environments, the results of the request will be equally accessible to the original requesting process even though the underlying software that responded to the request may be executing in a different execution environment. A similar thread invariance can be maintained to provide for accurate translation of requests between execution environments.
    Type: Grant
    Filed: July 8, 2011
    Date of Patent: May 27, 2014
    Assignee: Microsoft Corporation
    Inventors: Paul England, Jork Loeser, Luis Irun-Briz
  • Patent number: 8732723
    Abstract: An execution apparatus that executes a computer program executes the computer program and loads a class that is requested while the computer program is being executed. The loaded class is the class in response to the computer program that is being executed.
    Type: Grant
    Filed: January 26, 2007
    Date of Patent: May 20, 2014
    Assignee: Canon Kabushiki Kaisha
    Inventor: Hirokazu Oi
  • Patent number: 8732725
    Abstract: A parallel computer includes nodes, each having main memory and a messaging unit (MU). Each MU includes computer memory, which in turn includes, MU message buffers. Each MU message buffer is associated with an uninitialized process on the compute node. In the parallel computer, managing internode data communications for an uninitialized process includes: receiving, by an MU of a compute node, one or more data communications messages in an MU message buffer associated with an uninitialized process on the compute node; determining, by an application agent, that the MU message buffer associated with the uninitialized process is full prior to initialization of the uninitialized process; establishing, by the application agent, a temporary message buffer for the uninitialized process in main computer memory; and moving, by the application agent, data communications messages from the MU message buffer associated with the uninitialized process to the temporary message buffer in main computer memory.
    Type: Grant
    Filed: November 9, 2011
    Date of Patent: May 20, 2014
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Archer, Michael A. Blocksome, Douglas R. Miller, Jeffrey J. Parker, Joseph D. Ratterman, Brian E. Smith
  • Patent number: 8732726
    Abstract: A parallel computer includes nodes, each having main memory and a messaging unit (MU). Each MU includes computer memory, which in turn includes, MU message buffers. Each MU message buffer is associated with an uninitialized process on the compute node. In the parallel computer, managing internode data communications for an uninitialized process includes: receiving, by an MU of a compute node, one or more data communications messages in an MU message buffer associated with an uninitialized process on the compute node; determining, by an application agent, that the MU message buffer associated with the uninitialized process is full prior to initialization of the uninitialized process; establishing, by the application agent, a temporary message buffer for the uninitialized process in main computer memory; and moving, by the application agent, data communications messages from the MU message buffer associated with the uninitialized process to the temporary message buffer in main computer memory.
    Type: Grant
    Filed: December 10, 2012
    Date of Patent: May 20, 2014
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Archer, Michael A. Blocksome, Douglas R. Miller, Jeffrey J. Parker, Joseph D. Ratterman, Brian E. Smith
  • Patent number: 8726280
    Abstract: A method and system for self-managing an application program in a computing environment, is provided. One implementation involves spawning a primary application for execution in the computing environment; the primary application monitoring status of the primary application and the computing environment resources while executing; and upon detecting a first status threshold, the primary application spawning a secondary application in the computing environment, wherein the secondary application comprises a lower functionality version of the primary application, and the primary application terminating.
    Type: Grant
    Filed: May 23, 2013
    Date of Patent: May 13, 2014
    Assignee: International Business Machines Corporation
    Inventors: Natalie S. Hogan, Andrew J. E. Menadue, Thomas van der Veen
  • Patent number: 8726292
    Abstract: A system and method for Inter-Thread Communication using software interrupts in a multithread processor are disclosed. Bits in a shared control register and/or a private control register can enable an Inter-Thread Communication path. When the interrupt is triggered, one thread processor raises an interrupt in another thread processor.
    Type: Grant
    Filed: August 25, 2005
    Date of Patent: May 13, 2014
    Assignee: Broadcom Corporation
    Inventors: Kimming So, Jason Leonard
  • Patent number: 8719839
    Abstract: A computer system may comprise a computer platform and input-output devices. The computer platform may include a plurality of heterogeneous processors comprising a central processing unit (CPU) and a graphics processing unit) GPU, for example. The GPU may be coupled to a GPU compiler and a GPU linker/loader and the CPU may be coupled to a CPU compiler and a CPU linker/loader. The user may create a shared object in an object oriented language and the shared object may include virtual functions. The shared object may be fine grain partitioned between the heterogeneous processors. The GPU compiler may allocate the shared object to the CPU and may create a first and a second enabling path to allow the GPU to invoke virtual functions of the shared object. Thus, the shared object that may include virtual functions may be shared seamlessly between the CPU and the GPU.
    Type: Grant
    Filed: October 30, 2009
    Date of Patent: May 6, 2014
    Assignee: Intel Corporation
    Inventors: Shoumeng Yan, Xiaocheng Zhou, Ying Gao, Mohan Rajagopalan, Rajiv Deodhar, David Putzolu, Clark Nelson, Milind Girkar, Robert Geva, Tiger Chen, Sai Luo, Stephen Junkins, Bratin Saha, Ravi Narayanaswamy, Patrick Xi
  • Patent number: 8701122
    Abstract: A method and system is disclosed which can enhance the performance of computer systems by altering the operation of the operating system of those computer systems. The invention provides a system and method for making exception-less system calls, decoupling the invocation and execution of system calls, thus avoiding or reducing the direct and indirect overheads associated with making a conventional exception-based system call. The invention can be employed with single core processor systems and with multi-core processor systems, both affording improved temporal execution locality and the later also providing improved spatial execution locality. The system and method can be employed in a wide range of operating systems.
    Type: Grant
    Filed: October 1, 2012
    Date of Patent: April 15, 2014
    Assignee: Quietus Systems Inc.
    Inventors: Livio Soares, Michael Stumm
  • Patent number: 8695014
    Abstract: A method includes processing an application by a host including one or more processors and distributing at least a portion of the application to an accelerator for execution. The method includes instructing the accelerator to create a buffer on the accelerator and instructing the accelerator to execute the portion of the application, wherein the accelerator writes data to the buffer. The method also includes instructing the accelerator to transmit the data in the buffer to the host before the application requests the data in the buffer. The accelerator aggregates the data in the buffer before transmitting the data to the host based upon one or more runtime conditions in the host.
    Type: Grant
    Filed: October 31, 2012
    Date of Patent: April 8, 2014
    Assignee: International Business Machines Corporation
    Inventors: David G. Chapman, Rajaram B. Krishnamurthy, Carl J. Parris, Donald W. Schmidt, Benjamin P. Segal
  • Patent number: 8689233
    Abstract: A system for distributed function execution, the system includes a host in operable communication with an accelerator. The system is configured to perform a method including processing an application by the host and distributing at least a portion of the application to the accelerator for execution. The method also includes instructing the accelerator to create a buffer on the accelerator, instructing the accelerator to execute the portion of the application, wherein the accelerator writes data to the buffer and instructing the accelerator to transmit the data in the buffer to the host before the application requests the data in the buffer. The accelerator aggregates the data in the buffer before transmitting the data to the host based upon one or more runtime conditions in the host.
    Type: Grant
    Filed: January 25, 2012
    Date of Patent: April 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: David G. Chapman, Rajaram B. Krishnamurthy, Carl J. Parris, Donald W. Schmidt, Benjamin P. Segal
  • Publication number: 20140089940
    Abstract: One embodiment of the present invention provides a system that facilitates communication between an embedded code in a web page and a stand-alone application. During operation, the system first embeds a code within a web page that is displayed in a browser. Next, the embedded code receives information indicating a communication method provided by a stand-alone application, via a first communication channel. The embedded code subsequently sends the contextual information associated with a user browser session by calling the communication method, via a second communication channel, thereby allowing the stand-alone application to inherit the contextual information from the web browser.
    Type: Application
    Filed: September 27, 2012
    Publication date: March 27, 2014
    Applicant: VMWARE, INC.
    Inventor: Blake R. Barrett
  • Patent number: 8683487
    Abstract: Embodiments of the invention provide language support for CPU-GPU platforms. In one embodiment, code can be flexibly executed on both the CPU and GPU. CPU code can offload a kernel to the GPU. That kernel may in turn call preexisting libraries on the CPU, or make other calls into CPU functions. This allows an application to be built without requiring the entire call chain to be recompiled. Additionally, in one embodiment data may be shared seamlessly between CPU and GPU. This includes sharing objects that may have virtual functions. Embodiments thus ensure the right virtual function gets invoked on the CPU or the GPU if a virtual function is called by either the CPU or GPU.
    Type: Grant
    Filed: March 11, 2013
    Date of Patent: March 25, 2014
    Assignee: Intel Corporation
    Inventors: Zhou Xiaocheng, Shoumeng Yan, Gao Ying, Hu Chen, Peinan Zhang, Mohan Rajagopalan, Avi Mendelson, Bratin Saha
  • Patent number: 8671414
    Abstract: Various embodiments are directed toward improving Virtual Machine performance by reducing the amount of communication protocol processing performed between co-resident Virtual Machine guest applications executing on the same physical machine. Overhead can be reduced by short-circuiting the full communication protocol stack when a plurality of Virtual Machine guest applications are hosted and executing on the same physical machine such as a data storage node or a compute accelerator node. Improvements may also be realized by enabling the sharing in virtual memory of physical memory pages between co-resident Virtual Machine guest applications, and employing a low latency high bandwidth network for enabling guest applications to communicate with each other that are located in different nodes in a data storage cluster.
    Type: Grant
    Filed: November 2, 2011
    Date of Patent: March 11, 2014
    Assignee: EMC Corporation
    Inventors: Zachary Merlynn Loafman, Frank Charles Paterra, Deepak Sunny Veliath, John Thomas Cardente, John Forecast