STATIC MESSAGE PLACEMENT IN QUEUES BASED ON AN APRIORI DEFINED PLACEMENT PLAN

1. A method for performing an information exchange between at least two processes (FEED_PROC-1, FEED_PROC-2, CONSUME_PROC-1) communicating with each other using at least one queue (QUEUE-001), the method comprising:conducting at least one information feeding process (FEED_PROC-1, FEED_PROC-2) that places pieces of information (MESG-001, MESG-002, MESG-003, MESG-004) into the at least one queue (QUEUE-001); and
conducting at least one information consuming process (CONSUME_PROC-1) that sequentially consumes the pieces of information (MESG-001, MESG-002, MESG-003, MESG-004) from the at least one queue (QUEUE-001);
wherein each piece of information comprises identifying information (F003, F004, F005, F006),
wherein placing the pieces of information (MESG-001, MESG-002, MESG-003, MESG-004) from the at least one information feeding process (FEED_PROC-1, FEED_PROC-2) into the at least one queue (QUEUE-001) is done according to an a priori specified placement plan (PP),
wherein the placement plan (PP) describes, for each of at least one possible value of the identifying information (MESG), a respective position (POS) where pieces of information of a message type as specified by the respective value of identifying information, or respective references thereto, are to be placed into the queue (QUEUE-001),
wherein the pieces of information (MESG-001, MESG-002, MESG-003, MESG-004) or respective references thereto are placed into the at least one queue (QUEUE-001) at respective positions (POS) in the queue (QUEUE-001) as defined in the placement plan by the respective values of the identifying information (MESG) comprised in the pieces of information, and
wherein the placement plan (PP) defines, for at least two values of identifying information (MESG-001, MESG-002), the same position (POS-001), and when information feeding processes (FEED PROC-1,FEED PROC-2) provide more than one piece of information (MESG-001, MESG-002) for the same position (POS-001), the queue (QUEUE-01) performs a replacement strategy for the pieces of information (MESG-001, MESG-002) to be placed into the same position.

US Pat. No. 10,140,166

MESSAGE ORIENTED MIDDLEWARE WITH INTEGRATED RULES ENGINE

1. A method for managing a messaging component in message oriented middleware, the method comprising:establishing working memory in shared memory of the message oriented middleware executing by a processor of a computer for use by the messaging component;
detecting a change in the messaging component;
determining if the change corresponds to an addition of an object to the message component and, on condition the change corresponds to an addition of a new object to the message component, creating a token in the working memory, but on condition the change corresponds to a deletion of an existing object from the message component, deleting a token from the working memory, and on condition the change corresponds to a change to an existing object of the message component that is not a deletion of the existing object, applying a change to an existing token in the working memory;
observing the working memory to detect changes in one or more tokens in the working memory; and,
in response to detecting a change to one or more of the tokens in the working memory, applying by a rules engine and a messaging engine management rules to the tokens in the working memory in order to direct management actions in the messaging component, wherein the rules engine and messaging engine further ensure that tokens in the memory correspond to but are separate from objects in the messaging engine by placing a message on a queue, inserting a token corresponding to the placed message in memory, and linking the token to the corresponding message.

US Pat. No. 10,140,165

SHELL ACTION BROWSER EXTENSIONS

10. A method, comprising:by a shell action browser extension, receiving notice that a browser associated with the shell action browser extension is being terminated; and
in response to the notice, by the shell action browser extension, latching onto an operating system shell by transitioning the shell action browser extension to a process independent of the browser that continues to execute after termination of the browser.

US Pat. No. 10,140,164

COMPUTER RESOURCE ALLOCATION TO WORKLOADS IN AN INFORMATION TECHNOLOGY ENVIRONMENT

1. An information technology system operable to provision computer resources for workloads, the information technology system comprising:a configuration and management server to:
allocate subsets of computer resources from a pool of computer resources to workloads, wherein the workloads comprise web hosting services; and
capture performance metrics for each subset of computer resources assigned to one of the workloads;
a performance prediction server to:
identify performance metrics from the captured performance metrics for a model, the identified performance metrics comprise categories of metrics including metrics approximating end-to-end response time observed by an end user downloading a web page, metrics evaluating caching of web pages, and metrics associated with aborted requests for web pages;
determine weights for the identified performance metrics;
generate a model based on the identified performance metrics and the weights; and
apply the model to the captured performance metrics to predict performance for each of the workloads, wherein the predicted performance is a single score for each workload, and
wherein the configuration and management server is further to:
determine the allocation of the subset of computer resources for each of the workloads based on the predicted performance for each of the workloads;
evaluate each of the categories of metrics when the score falls below a threshold to determine whether a particular category is underperforming;
when a particular category is underperforming, evaluate individual metrics within the particular category to determine whether the individual metrics are underperforming, and
based on an underperforming category or an underperforming metric, performing a remedial action to improve the underperforming category or the underperforming metric, including at least one of:
provisioning additional CPU cycles or additional virtual machines, and
provisioning additional network switches or network switches that have higher throughput capability.

US Pat. No. 10,140,163

INTELLIGENT FRAMEWORK FOR SHARED SERVICES ORCHESTRATION

1. A method for optimizing shared services orchestration, the method comprising:receiving, by one or more computer processors, computing resource requirements from a client;
determining, by one or more computer processors, a list of rules from a plurality of entities;
determining, by one or more computer processors, a first set of resources, wherein the first set of resources:
satisfy the computing resource requirements; and
comply with the list of rules from the plurality of entities;
deploying, by one or more computer processors, the first set of resources;
querying, by one or more computer processors, an online external resource for a change associated with the list of rules, wherein the online external resource is a website;
updating, by one or more computer processors, the list of rules based on the change of the query;
determining, by one or more computer processors, a location of the client;
determining, by one or more computer processors, a second set of resources, based on the computing resource requirements, the first set of resources, the updated list of rules, and the location of the client; and
deploying, by one or more computer processors, the second set of resources.

US Pat. No. 10,140,162

MANAGING A SHARED POOL OF CONFIGURABLE COMPUTING RESOURCES USING A SET OF SCALING FACTORS AND A SET OF WORKLOAD RESOURCE DATA

1. A method comprising:allowing providers to register, via a public registry, workload resource requirements for workloads;
receiving, from users of a programmatic interface, a set of scaling factor values corresponding to the workloads, the set of scaling factor values including a number of transactions to be processed and a number of users;
receiving, by a processor, the set of scaling factor values which corresponds to a workload and a set of workload resource data of a virtual machine;
analyzing, by the processor, the set of scaling factors values with respect to the set of workload resource data;identifying, based upon the analysis, a flavor of the one or more flavors to process the workload, wherein analyzing the set of scaling factor values includes: identifying, using the one or more flavors mapped to scaling factor value ranges, a flavor which is mapped to a transaction processing scaling-factor-range which encompasses the number of transactions and a user access scaling-factor-range which encompasses the number of users;dynamically determining, by the processor, based on the identified flavor, a configuration of the virtual machine;
allocating, by the processor, based on the determined configuration, a shared pool of configurable computer resources to the virtual machine; and
processing, by the virtual machine, the workload using the allocated shared pool of configurable computer resources.

US Pat. No. 10,140,161

WORKLOAD AWARE DYNAMIC CPU PROCESSOR CORE ALLOCATION

1. A non-transitory tangible computer-readable storage medium having stored thereon a computer program for implementing a method of workload aware dynamic CPU processor core allocation in a host computer system, the computer program including a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:predicting estimated individual workloads for each emulation in a set of emulations for each decision period of a set of decision periods over a predictive time span;
using, by a Mixed Integer Programming (MIP) engine, the predicted estimated individual workloads for each emulation in the set of emulations, a set of constraints, and an optimization function, to determine sets of CPU processor cores to be allocated to each emulation during each decision period over the predictive time span; and
dynamically allocating, by the host computer system, the sets of CPU processor cores to each emulation during each decision period over the predictive time span based on an output from the MIP engine;
wherein when the CPU processor cores of the host computer system are homogeneous, the set of constraints comprises:
a first constraint specifying that for all decision periods, the sum of the number of CPU processor cores assigned to all of the emulations is equal to a total number of CPU processor cores in the host computer system; and
a second constraint specifying that for all decision periods, the normalized workload of each emulation, during the decision period, is less than the amount of collective processing capacity of the set of CPU processor cores allocated to that emulation.

1. A method for managing system performance, comprising:providing a processor in communication with memory;
dynamically recommending, by the processor, a set of tasks having at least one task recommendation for management of at least one computer system component, wherein the recommendation is based on a predicted impact on the computer system;
responding to a selection of a task recommendation from the set, including producing explicit feedback data;
tracking an impact of the selected task recommendation on computer system parameters, and obtaining implicit feedback data based on the impact;
categorizing accumulated implicit and explicit feedback data;
determining a variance of the categorized feedback and averaging the categorized feedback with prior categorized feedback data responsive to the determined variance; and
generating at least one future task recommendation based on the averaged feedback data.

US Pat. No. 10,140,159

SYSTEMS AND METHODS FOR DYNAMIC CREATION OF CONTAINER MANIFESTS

1. A method comprising, by a computer system:determining a base state of a particular container, wherein the base state is represented by a base image, and wherein the particular container is configured to execute on an isolated user-space instance in a shared kernel space on an operating system of a resource;
determining a target state of the particular container, wherein the target state is represented by a deployment of the particular container on a particular resource that has a container-management agent installed thereon, wherein the target state at least partially results from commands, previously issued to the container-management agent, to control operation of the particular container;
determining a set of commands to transition the particular container from the base state to the target state;
wherein the determining the set of commands comprises:
examining an audit trail of a management application for the particular container; and
retrieving previously-executed user commands from the audit trail, the determined set of commands comprising at least some of the previously-executed user commands;
generating a build manifest for the target state of the particular container, the build manifest comprising a listing of files in the particular container, a digital signature of a source of at least some of the files, hashes of at least some of the files, and commands to create the particular container, the commands to create the particular container comprising the determined set of commands to transition the particular container from the base state to the target state; and
automatically deploying the particular container in the target state using the base image and the generated build manifest for the target state.

US Pat. No. 10,140,158

METHODS AND MODULES RELATING TO ALLOCATION OF HOST MACHINES

1. A method, performed by a Host Machine Allocating Module, for allocating a host machine in a hardware system, wherein the hardware system comprises a memory pool, comprising memory units, and a CPU pool, comprising CPUs, wherein the Host Machine Allocating module is configured for managing information about latency ratings for pairs of groups comprising CPUs and memory units, wherein each pair comprises one group of CPUs and one group of memory units, wherein said each pair is associated with a respective latency rating among the latency ratings, wherein the respective latency rating indicates latency between said one group of CPUs and said one group of memory units of said each pair, wherein the method comprises:receiving a request for allocation of the host machine, wherein the request indicates a first number of CPUs and a second number of memory units to be allocated for the host machine, wherein the request further indicates a policy for adapting the host machine for execution of a type of process, wherein the policy defines a distribution of the first number of CPUs and the second number of memory units with respect to sets of latency ratings related the latency ratings of the information,
distributing, based on the distribution, the first number of CPUs and the second number of memory units into clusters of CPUs and memory units, wherein each cluster is associated with a respective one of the sets of latency ratings of the distribution, and
allocating said each cluster to at least one of said pairs of groups, wherein the respective latency rating of said at least one of said pairs is found to match, according to the policy, the respective one of the sets of latency ratings for said each cluster.

US Pat. No. 10,140,157

MULTIPLE PROCESS SCHEDULING OF THREADS USING PROCESS QUEUES

1. A computer-implemented method, comprising:in response to a request for executing a thread, accessing, by a scheduler of an operating system of a data processing system, a global run queue to identify a global run entry associated with a highest process priority, wherein the global run queue includes a plurality of global run entries, each corresponding to one of a plurality of process priorities;
identifying a first group run queue based on the global run entry, the first group run queue having a plurality of threads and the first group run queue is associated with a first of a plurality of processes different from a second group run queue of the global run entry being associated with a second of the plurality of processes; and
dispatching one of the threads that has a highest thread priority amongst the threads in the first group run queue to one of a plurality of processor cores of the data processing system for execution.

US Pat. No. 10,140,156

METHODS AND SYSTEMS FOR COORDINATED TRANSACTIONS IN DISTRIBUTED AND PARALLEL ENVIRONMENTS

1. A method comprising:maintaining application data across multiple server nodes of a client-server system, wherein the application data comprises a plurality of different portions of application data, wherein each different portion of application data is associated with one entity of a plurality of different entities;
assigning to each server node of the client-server system, groups of two or more different portions of application data of the plurality of different portions of application data, for storage and handling by the server node;
processing compound requests received from clients in the client-server system, wherein each compound request comprises requests for two or more different entities of the plurality of different entities;
monitoring network communications between the server nodes when processing the received compound requests by the client-server system, wherein monitoring the network communications comprises:
maintaining information regarding frequencies with which groups of different entities of the plurality of different entities, are requested in said compound requests received from the clients, wherein said information comprises frequency information associated with a plurality of entries, wherein each entry corresponds to one of plurality of possible groups of different entities that are requested in said compound requests, and wherein each entry stores a frequency value representing a number of said compound requests comprising the group of different entities corresponding to the entry;
monitoring internode network communication between the server nodes which results from the server nodes having to access different portions of the application data, which are stored on other server nodes, to process the compound requests; and
determining from the maintained information, an entry having a high frequency value; and
re-assigning different portions of the application data, which correspond to a group of different entities whose entry is determined to have the high frequency value, to a same sever node for storage and handling by the server node, to reduce the internode network communication between the server nodes for processing compound requests, wherein said re-assigning is performed in response to an overhead of the internode communication exceeding a threshold.

US Pat. No. 10,140,155

DYNAMICALLY PROVISIONING, MANAGING, AND EXECUTING TASKS

1. A computer-implemented method, comprising:receiving task data;
determining a task definition based on the task data, wherein determining the task definition includes determining a compatible version of the task definition;
determining a location of the task definition
retrieving the task definition from the determined location;
executing, using a processor and at a client device, the task definition; and
while executing the task definition:
determining a class or a library to be used during execution of the task definition based on a type specification identifying a type of the client device executing the task definition;
retrieving the class or the library that was determined; and
retrieving an input used to perform instructions of the task definition.

US Pat. No. 10,140,154

WORKLOAD SCHEDULING AUTOMATION UTILITY

1. A computer resource allocation tool comprising:an interface configured to:
receive a request for an information report, the information report comprising a summary of one or more datasets; and
receive a first dataset for processing, wherein the processing generates, at least in part, the information report and wherein in the processing consumes computer resources of a computer system;
a first memory configured to store the first dataset;
a processor configured to extract first input data from the first dataset, the first input data comprising parameters for processing the first dataset to produce the information report;
a second memory configured to store the first input data, wherein the second memory is different from the first memory;
the processor further configured to:
determine an amount of computer resources required to process the first dataset based on, at least in part, the first dataset and the first input data;
determine a computer resource availability for the computer system for each time window of a plurality time windows;
generate first scheduling information based on the amount of computer resources required to process the first dataset and the computer resource availability for one or more time windows, the first scheduling information indicating whether the computer system has the computer resource availability to process the first dataset during the one or more time windows; and
generate a scheduling report based on the first scheduling information, the scheduling report indicating the one or more time windows to process the first dataset; and
the interface further operable to communicate the scheduling report.

1. A database system-implemented method for auction-based resource sharing between tenants in a multi-tenant database environment having an auction server computing device (auction device) having one or more processing devices and associated memory devices hosting a thread resource management to facilitate the one or more processing devices to perform the method comprising:receiving, by the auction device, bids from the tenants in the multi-tenant database environment for resources for at least one of new jobs and pending jobs, wherein the thread resource management mechanism comprises a processing framework including auction-based resource sharing logic to facilitate the auction-based resource sharing between the tenants;
facilitating, by the auction device, a two-level scheduling scheme to perform resource allocation decisions on the bids, wherein the two-level scheduling scheme considers priorities associated with the tenants and message types of the new jobs and pending jobs, wherein considering priorities includes reviewing one or more historical considerations for the tenants and the message types, wherein the historical considerations include at least one of frequency at which one or more tenants are known for requesting one or more jobs, and runtime history indicating expected runtime for processing of one or more message types;
based on the two-level scheduling scheme, determining, by the auction device, whether a first tenant possesses sufficient currency to win a bid for allocation of a first portion of the resources for at least one of a first new job and a first pending job, wherein the determining further includes evaluating whether a second pending job of a second tenant has been completed without consuming a second portion of the resources dedicated to the second tenant for completion of the second pending job; and
allocating, by the auction device, the first portion of the resources to the first tenant in response to the bid by the first tenant, wherein the first portion includes at least one of a new set of resources and unused dedicated resources of the second tenant, wherein allocating is based, from the considered priorities, on one or more priorities associated with the first tenant and a message type of the first new job or the first pending job.

US Pat. No. 10,140,152

DYNAMIC TIMEOUT AS A SERVICE

1. A method performed by a data processing apparatus, the method comprising:obtaining previous running times for a particular process, each previous running time representing a duration for which the particular process was executed until the particular process completed or was terminated;
generating a run time model for the particular process based on the previous running times, the run time model for the particular process indicating, for each of a set of potential running times, a likelihood that the particular process will execute for a duration represented by the potential running time before completing;
determining, based on the run time model, an initial timeout for the particular process, the initial timeout being a specified duration instances of the particular process are allowed to execute before the particular process is automatically terminated; and
setting the initial timeout for an instance of the particular process.

1. A method for leveraging directed acyclic graph (DAG) information to group tasks for execution, by at least one processor device, comprising:for a set of tasks, determining an input host set for each task using a shuffle type and hosts used during a previous stage;
wherein tasks in the set of tasks determined to be within a same input host set are classified together;
dynamically calculating an Input/Output (I/O) cost for each task in the set of tasks and grouping tasks within the set of tasks into task groups according to an applied allocation time; and
launching the task groups commensurate with a calculated delay time from each input host set so as to overlap I/O phases and central processing unit (CPU) phases to improve CPU efficiency; wherein the launched task groups are executed by an executor according to the calculated delay time.

US Pat. No. 10,140,150

THREAD DIVERSION AWAITING LOG CALL RETURN

1. A system comprising:one or more processors; and
one or more computer-readable storage media having stored thereon computer-executable instructions that are executable by the one or more processors of the system to perform one or more tasks while waiting for an event to be logged, the computer-executable instructions including instructions to perform the following:
execute, at the one or more processors, a plurality of threads including a particular thread, each of the plurality of threads alternately executing at the one or more processors;
during an execution time period allocated to the particular thread, call, from the particular thread, a logging component to log an event;
after calling the logging component to log the event, block the particular thread from continuing work on a first task of which the event is part until the event has been determined to be logged;
after blocking the particular thread from continuing work on the first task, determine that there is time left in the execution time period allocated to the particular thread; and
based on there being time left in the execution time period, automatically perform, by the particular thread, one or more second tasks that are context-free or stateless, and that are independent of the first task of which the event is part;
determine that the event has been logged; and
after determining that the event has been logged, continue work, by the particular thread, on the first task of which the event is part.

US Pat. No. 10,140,149

TRANSACTIONAL COMMITS WITH HARDWARE ASSISTS IN REMOTE MEMORY

1. A storage unit for a storage system, comprising:non-persistent memory;
persistent memory; and
a transaction engine, configured to receive logical records and configured to transfer the logical records to the non-persistent memory as atomic updates, wherein each of the atomic updates constitutes a transfer of a logical record to the non-persistent memory, the transaction engine configurable to complete an atomic update that is in progress responsive to an event, wherein a transaction interlock assures coherency of the atomic update that is in progress, and wherein the contents of the non-persistent memory, having a coherent image of a logical record associated with the atomic update, are available in the persistent memory, after the event, for use during a recovery of the storage system.

US Pat. No. 10,140,148

COPY BASED IOMMU EMULATION FOR OUT-OF-PROCESS EMULATED DEVICES

1. A system comprising:a memory;
one or more physical processors in communication with the memory;
a virtual machine executing on the one or more physical processors, wherein the virtual machine includes a guest and a guest memory having a plurality of guest memory pages; and
a hypervisor executing on the one or more physical processors to:
receive a request from the guest to grant access of a virtual device to a first guest memory page of a plurality of guest memory pages, wherein the guest memory is mapped to a private memory having a plurality of private memory pages, wherein the virtual device is mapped to a shared memory having a plurality of shared memory pages corresponding to the plurality of guest memory pages, wherein the virtual device is restricted from accessing the private memory, wherein the virtual device has access to the guest memory while the guest memory is mapped to the shared memory, wherein mapping the guest memory to the private memory prevents the virtual device from accessing the guest memory;
in response to receiving the request, copy data in a first private memory page of the plurality of private memory pages to a first shared memory page of the plurality of the shared memory pages, wherein the first shared memory page and the first private memory page correspond to the first guest memory page, wherein the first private memory page is mapped to the first guest memory page; and
map the first guest memory page to the first shared memory page, which grants the virtual device access to the first guest memory page.

US Pat. No. 10,140,147

INTELLIGENTLY ASSISTED IOT ENDPOINT DEVICE

1. A system comprising:a plurality of endpoint devices connected to a network, the plurality of endpoint devices including a first endpoint device and a second endpoint device, wherein the first endpoint device includes a first plurality of physical sensors including a first physical sensor and a second physical sensor and the first endpoint device includes a first plurality of interactive elements including a first interactive element and a second interactive element;
a first endpoint processor executing on the first endpoint device to:
determine that the first endpoint device has an active network connection;
responsive to determining that the first endpoint device has an active network connection, redirect input/output data from the first plurality of sensors to a first network interface;
one or more processors, wherein the one or more processors are located over the network from the plurality of endpoint devices;
a first virtualized endpoint service associated with the first endpoint device executing on the one or more processors including:
a first plurality of virtual sensors each respectively associated with a physical sensor of the first plurality of physical sensors including a first virtual sensor associated with the first physical sensor, and a second virtual sensor associated with the second physical sensor;
a first plurality of virtual interactive element controllers each respectively associated with an interactive element of the first plurality of interactive elements, including a first virtual interactive element controller associated with the first interactive element and a second virtual interactive element controller associated with the second interactive element;
a first virtualized endpoint engine;
the first virtualized endpoint service executing to:
receive, over the network by the first virtual sensor, first redirected data collected by the first physical sensor, wherein the first redirected data is part of the input/output data redirected by the first endpoint device;
output, by the first virtual sensor, the first redirected data to the first virtualized endpoint engine;
convert, by the first virtualized endpoint engine, the first redirected data into a first converted data compatible with an endpoint control service;
send, by the first virtualized endpoint engine, the first converted data to the endpoint control service;
receive, by the first virtualized endpoint engine, from the endpoint control service, a first command;
send, by the first virtualized endpoint engine, the first command to the first virtual interactive element controller;
convert, by the first virtual interactive element controller, the first command into a second command compatible with the first interactive element;
send the second command, over the network, causing the first interactive element to perform a first task that results in a change in one of the first endpoint device or endpoint device's sensor and a local environment surrounding the first endpoint device; and
receive, over the network by the first virtual sensor, second redirected data collected by the first physical sensor, wherein the second redirected data is different from the first redirected data as a result of performing the first task.

US Pat. No. 10,140,145

DISPLAYING GUEST OPERATING SYSTEM STATISTICS IN HOST TASK MANAGER

1. A computer-implemented method for acquiring process statistics, the method comprising:starting a Virtual Machine (VM) on the host node;
renaming a standard dynamic link library (DLL) that collects process statistics;
installing a replacement DLL in a directory of a Task Manager of the host node and running outside the VM,
wherein the replacement DLL has the same name as the standard DLL prior to the renaming;
collecting host OS process statistics of processes of the host node running outside the VM via the renamed standard DLL;
collecting VM process statistics of processes running inside of the VM via API calls to the replacement DLL from the Task Manager; and
displaying the VM process statistics and the host OS process statistics in the same interface of the Task Manager.

1. A method of managing a consistency group for computing sites, said method comprising:utilizing at least one processor to execute computer code configured to perform the steps of:
communicating, using an aggregator, with a plurality of computing sites contained within a consistency group, wherein each of the plurality of computing sites comprises one or more of: at least one virtual machine and at least one server;
the aggregator acts as a central communication hub between the plurality of computing sites and combines data changes from the plurality of computing sites;
receiving, using the aggregator, updates captured at each of the plurality of computing sites, wherein, at each of the plurality of computing sites, the updates are captured via file system snapshots, and wherein the receiving updates comprises receiving the file system snapshots as replicated incremental snapshots;
the aggregator coordinates timing for capturing the updates via the file system snapshots across the plurality of computing sites;
batching, using the aggregator, the updates into batched updates, wherein the batching the updates comprises de-duplicating the received updates by removing redundant updates from the received updates; and
communicating, after the batching the updates, the batched updates to the plurality of computing sites, thereby ensuring data consistency across the plurality of computing sites.

US Pat. No. 10,140,143

COLLECTION OF GUEST STATUS

1. A method comprising:accessing a hypervisor media library;
booting an information collection guest from the hypervisor media library;
exposing the information collection guest to a memory of a guest virtual machine;
detecting a first guest status of the guest virtual machine, wherein the first guest status is extracted from the guest virtual machine;
receiving at a hypervisor the first guest status from the information collection guest;
generating an information message based on the first guest status, wherein the hypervisor performs a database look-up using the first guest status to determine the first information message;
sending the information message to a message display agent; and
causing the display of the information message at a user display.

US Pat. No. 10,140,142

GROUPING AND PLACEMENT OF VIRTUAL MACHINES BASED ON SIMILARITY AND CORRELATION OF FUNCTIONAL RELATIONS

1. A virtual machine managing apparatus, comprising:a memory storing instructions; and
one or more processors configured to execute instructions to:
acquire performance values of plural virtual machines;
allocate virtual machines whose sequential changes of the performance values in a time-domain are equal to each other or within a threshold value, out of the plural virtual machines, on different processing apparatuses among plural processing apparatuses carrying out processes of virtual machines; and
allocate virtual machines having a correlation relation between performance values, out of the plural virtual machines, on a same processing apparatus among the plural processing apparatuses, said correlation relation being indicated by a transform function for estimating one performance value from another performance value,
wherein said correlation relation is detected based on weight of the transform function.

US Pat. No. 10,140,141

MEASURING ACCUMULATED LOAD VALUES OF FIRST LEVEL AND SECOND LEVEL VIRTUAL MACHINES FOR MODIFYING RESOURCE ALLOCATION

1. A computer executing operation of two-level virtual machines (VMs), comprising:a physical processor; and a memory coupled to the physical processor and storing instructions that, when executed by the physical processor, cause the physical processor to execute a host VM monitor,
wherein the host VM monitor is configured to operate on the physical processor and generate a logical processor that operates a first-level VM,
wherein a guest VM monitor is configured to operate on the logical processor and generate a plurality of virtual processors that operate a plurality of second-level VMs generated on the first-level VM,
wherein the host VM monitor is further configured to store management information that correlates a first-level VM identifier specific to the first-level VM and a plurality of control information specific to the respective second-level VMs,
wherein each of the second-level VMs, upon respective activation, is configured to operate an agent to issue a MOV instruction to store a respective second-level VM identifier of the respective second-level VM in a register of the physical processor, and operate the agent to issue a CPUID instruction with respect to the host VM monitor,
wherein the host VM monitor is further configured to, upon receiving the CPUID instruction from the agent of the respective second-level VM, read the respective second-level identifier from the register and store the respective second-level identifier in correlation with the control information specific to the respective second-level VM which issued the CPUID instruction in the management information,
wherein the host VM monitor is further configured to calculate a plurality of accumulated load values for execution periods of the first-level VM and accumulate a period from activating to exiting of the respective second-level VM based on the control information specific to the respective second-level VM stored in a predetermined area of the physical processor different from the register and correlate the accumulated load values with the respective second-level identifier in the management information to determine a load of the respective second-level VM on the physical processor,
wherein the host VM monitor is further configured to, for each of the first-level VM and the second-level VMs on every predetermined period, compare the accumulated load values of the first-level VM and the second-level VM with a predetermined threshold, and
modify the allocation of the logical processor or the virtual processors to the first-level VM or the second-level VMs based on the comparison result.

US Pat. No. 10,140,140

CLOUD VIRTUAL MACHINE CUSTOMIZATION USING EXTENSION FRAMEWORK

1. A remote virtual machine (VM) customization system comprising; a VM marketplace component configured to:catalogue a plurality of extension packages that each employ a common extension protocol, and
generate a configuration payload that corresponds to a set of extension packages selected, via a remote client device, from the catalogued plurality of extension packages,
wherein the generated configuration payload references the selected set of extension packages and a remote extension repository having the selected set of extension packages stored thereon; and a VM agent component, installed on a virtual machine and running as a daemon, configured to:
identify, from behind a firewall of the virtual machine, an available port;
establish, based upon the identified available port, a network connection to a VM deployment service component that is external to the firewall and remote from the VM marketplace component and the remote client device,
facilitate, via the established network connection, an injection of the selected set of extension packages of the catalogued plurality of extension packages, and
receive, from behind the firewall of the virtual machine and through the established network connection with the VM deployment service component, the injection of the selected set of extension packages of the catalogued plurality of extension packages based on the selection received by the VM marketplace component and further based on the common extension protocol being employed by the VM agent component
initialize, in accordance with the common extension protocol, an installation of the selected set of extension packages based on the receipt thereof from the remote extension repository;
and
generate, in accordance with the common extension protocol, a status report corresponding to the installation of the selected set of extension packages.

US Pat. No. 10,140,139

ENSURING THE PRIVACY AND INTEGRITY OF A HYPERVISOR

25. A method for ensuring the privacy and integrity of a hypervisor, comprising:a host operating system managing a set of resources; and
preventing the host operating system from accessing a portion of said set of resources comprising a set of memory pages belonging to the hypervisor or allocated by the hypervisor to prevent the host operating system from violating the privacy and integrity of said portion of said set of resources,
wherein preventing comprises:
in response to receiving a request, from a virtual machine, to read one or more memory pages in said set of resources managed by the host operating system, the hypervisor requesting the one or more memory pages from the host operating system,
the host operating system providing said one or more memory pages managed by the host operating system to the hypervisor, and
after the hypervisor receives said one or more memory pages from the host operating system, the hypervisor using a hardware component that establishes and enforces constraints on what areas of memory the host operating system is allowed to access to protect the one or more memory pages from the host operating system by preventing said host operating system access to an unencrypted version of said one or more memory pages.

1. A method for supporting wide and efficient front-end operation with guest architecture emulation, the method comprising:upon receiving a request to fetch a first far taken branch instruction of a first cache line, reading said first cache line, a next cache line to the first cache line and a cache line at a target of said first far taken branch instruction; and
fetching based on information accessed from a data table, said first cache line and one of: said next cache line; and said cache line at said target of said first far taken branch instruction, wherein said fetching is performed in a single cycle, wherein said information is placed in said data table when said first cache line is brought from an L2 cache to an L1 cache,
wherein said data table comprises branch instruction addresses, branch instruction offsets, direct/indirect branch instruction identifiers and native/guest branch instruction identifiers.

US Pat. No. 10,140,137

THREADING AS A SERVICE

1. A computer-implemented method to process requests to execute user code on one or more virtual machine instances, the method comprising:as implemented by one or more computing devices configured with specific computer-executable instructions,
providing a plurality of warmed virtual machine instances, each of the warmed virtual machine instances containing a software component associated with a programming language;
subsequent to providing the plurality of warmed virtual machine instances, receiving a plurality of requests to execute a user code, wherein the plurality of requests include a first request comprising configuration information for executing the user code;
identifying a virtual machine instance from the plurality of warmed virtual machine instances based on the configuration information, wherein the virtual machine instance contains a particular software component usable to execute the user code;
selecting a container in which to execute the user code from a plurality of containers within the virtual machine instance;
loading the user code into the container within the virtual machine instance; and
executing the user code in the container within the virtual machine instance.

US Pat. No. 10,140,136

DISTRIBUTED VIRTUAL ARRAY DATA STORAGE SYSTEM AND METHOD

28. A method comprising:hosting, on a VM host compute server, at least one guest VM with access to at least one virtual disk (vDisk);
wherein the VM host compute server is coupled, through a network, directly to a plurality of storage nodes;
wherein the VM host compute server comprises at least one server-side cache that is available to each of the at least one guest VMs;
wherein each storage node, of the plurality of storage nodes, comprises:
one or more storage devices,
a central processing unit (CPU), and
a memory configured such that data stored therein is not lost in the case of power failure;
in response to a write operation performed by the at least one guest VM to the at least one vDisk, the VM host compute server causing write data to be written at least three times;
wherein causing write data to be written at least three times includes:
before a triggering event occurs:
writing the write data to the memory, of at least one of plurality of storage nodes, that is configured such that data stored therein is not lost in the case of power failure; and
writing the write data to the at least one server-side cache;
after the triggering event occurs:
generating a full stripe of data that includes the write data; and
writing the full stripe of data to distribute the full stripe of data across storage devices of one or more of the plurality of storage nodes;
wherein the triggering event is that the VM host compute server has accumulated sufficient write data, which has not yet been written in a full stripe, to generate a full stripe of data.

US Pat. No. 10,140,135

METHOD FOR EXECUTING A COMPUTER PROGRAM WITH A PARAMETERISED FUNCTION

1. A method for executing a computer program including at least one parameterized function capable of being executed one or more times during execution of the program, the function including at least one parameter a value of which is obtained at an instant when the function is called to be executed by a microprocessor or during execution thereof by the microprocessor, the method comprising:a) providing a generic code for the function, in which code each parameter of the function is encoded as a variable such that the generic code does not itself contain the value of the parameter, but contains an operation of reading its value from an address specified by the generic code;
b) verifying a condition, the condition being crossing of a first pre-calculated threshold by a value of a first counter;
c) only if the condition is verified, generating, by the microprocessor, a specialized code for the function, in the machine language of the microprocessor, and then recording the specialized code in a memory, the specialized code performing, when it is executed by the microprocessor, same function as the generic code but, in a case that at least one parameter of the function is specialized with a first specific value, the specialization of the at least one parameter of the function with the first specific value, assigning the first specific value to the at least one parameter and then processing the parameter no longer as a variable but as a constant, such that the specialized code does not include any operation of reading its value from an address situated outside of a continuous range of addresses where the specialized code is recorded;
d) next, when the function is performed with the first specific value of the parameter, if the specialized code is recorded in the memory, the microprocessor performs the function by directly executing the specialized code recorded in the memory without using the generic code for the function; and
e) if the specialized code is not recorded in the memory, the microprocessor performs the function using its generic code, wherein:
when the program is executed, each time the function is performed with the first specific value of the parameter, the microprocessor updates a value of the first counter and, alternately, does not update the value of the first counter if the same function is performed with another value, different from the first specific value, of the parameter;
the microprocessor also executes a) to e) by replacing the first specific value, the first counter, and the first pre-calculated threshold with a second specific value, a second counter, and a second pre-calculated threshold, respectively, the second specific value being different from the first specific value, such that the specialized code that is generated in this case is obtained by specializing the parameter of the function with the second specific value instead of the first specific value; and
the method further comprises f) calculating the first and second pre-calculated thresholds each on the basis of a relationship Kgen/(Klib?Kdyn), wherein:
Kgen is a pre-recorded cost to execute c),
Kdyn is a pre-recorded cost to execute d),
Klib is a pre-recorded cost to execute e), and
the costs Kgen, Kdyn and Klib are each respective quantities of a same physical variable with different values or of a combination of different physical variables with different values that varies depending on whether the microprocessor executes d) or e);
when the first pre-calculated threshold is calculated, the costs Kgen, Kdyn, and Klib being costs to execute c), d), and e), respectively, these operations are executed only in a case where the first specific value is used; and
when the second pre-calculated threshold is calculated, the costs Kgen, Kdyn, and Klib being costs to execute c), d), and e), respectively, these operations are executed only in a case where the second specific value is used.

US Pat. No. 10,140,134

MANAGEMENT OF INTER-DEPENDENT CONFIGURATIONS OF VIRTUAL MACHINES IN A CLOUD

1. A method comprising:determining, by a processor, that configuring a first virtual machine instantiated on one or more physical machines in a cloud depends on a configuration result of configuring a second virtual machine instantiated on the one or more physical machines in the cloud;
determining the configuration result by configuring the second virtual machine; and
configuring the first virtual machine based on the configuration result.

US Pat. No. 10,140,133

MARKING EXTERNAL SIBLING CALLER ROUTINES

1. A computer-implemented method of facilitating processing in a computing environment, said computer-implemented method comprising:determining whether a routine potentially calls one or more external sibling routines, the determining comprising:
analyzing code searching for a function call in which no further processing of results of a called function is performed by a caller of the called function; and
determining, based on locating the function call, whether the function call is known to be a local sibling call, and based on locating the function call and determining the function call is not known to be a local sibling call, the routine is determined to potentially call one or more external sibling routines; and
marking the routine as an external sibling caller, based on determining that the routine potentially calls one or more external sibling routines.

US Pat. No. 10,140,132

FAST COMPUTER STARTUP

1. A method performed on a computing device, the method comprising:detecting, by the computing device during a startup process of the computing device, a hibernation file that was created during a preceding shutdown process of the computing device, where the detected hibernation file stores a system state and first hardware configuration of the computing device as existing on the computing device at a first time of the preceding shutdown process;
determining, by the computing device, that a second hardware configuration of the computing device at a second time of the startup process remains compatible with the first hardware configuration of the computing device at the first time of the preceding shutdown process; and
restoring, by and to the computing device in response to the determining that the second hardware configuration of the computing device remains compatible with the first hardware configuration of the computing device, the system state of the computing device stored in the detected hibernation file, where the system state being restored is a part of the startup process of the computing device.

1. A system, comprising:a plurality of CPUs;
a memory coupled to said CPUs, said memory including a computer readable storage medium tangibly embodying at least one program of instructions executable by said CPUs to perform operations for shielding real-time workloads from operating system (OS) jitter due to expedited read-copy update (RCU) grace periods, said operations comprising:
setting a kernel parameter indicating that expedited RCU grace periods are to be suppressed;
checking said kernel parameter to determine if it is set; and
invoking a normal non-expedited RCU grace period in response to attempted invocation of an expedited RCU grace period if said checking reveals that said kernel parameter is set.

US Pat. No. 10,140,130

SYSTEM AND METHOD OF OBFUSCATION THROUGH BINARY AND MEMORY DIVERSITY

1. A system for obfuscating binary codes, comprising:a memory that stores a set of instructions; and
one or more processors configured to execute the set of instructions to:
receive a binary file that is a portion of a first kernel image;
perform a binary randomization analysis and based on the analysis, translate the binary file into a middleware format where location and address information are added at a runtime; and
obfuscate the binary file upon a first boot of a device on which the binary file is deployed, without changing functionality of the binary file; a
wherein obfuscating the binary file is performed by at least one of reorder basic blocks of the binary file and substitute an instruction of the binary file, wherein each of the basic blocks runs in an entirety without transferring.

US Pat. No. 10,140,129

PROCESSING CORE HAVING SHARED FRONT END UNIT

1. A processor having one or more processing cores, each of said one or more processing cores comprising:a front end unit to fetch respective instructions of threads and decode said instructions into respective decoded instructions and input operand and resultant addresses of said instructions; and
a plurality of processing units, each of said processing units to be assigned a plurality of said threads, each processing unit coupled to said front end unit and having a respective buffer to receive and store decoded instructions of its assigned plurality of said threads, each of said plurality of processing units comprising:
i) a plurality of functional units comprising at least one integer functional unit and at least one floating point functional unit, said plurality of functional units to simultaneously execute its respective processing unit's received, decoded instructions for two or more of its assigned plurality of said threads,
ii) registers coupled to said plurality of functional units to store operands and resultants of said received, decoded instructions of its assigned plurality of said threads,
iii) data fetch circuitry to fetch input data operands for said plurality of functional units' execution of said received, decoded instructions of its assigned plurality of said threads, and
iv) register allocation circuitry to allocate a respective register partition of the registers for each assigned thread of its assigned plurality of said threads.

US Pat. No. 10,140,128

PARALLELIZED MULTIPLE DISPATCH SYSTEM AND METHOD FOR ORDERED QUEUE ARBITRATION

1. A parallelized multiple dispatch ordered queue, comprising:an ordered queue that is configured to store candidates in order from oldest to youngest into a plurality of entries, wherein said ordered queue is divided into N groups in which an i'th group includes every i'th entry of every N entries of the ordered queue, wherein i is an integer less than or equal to N;
qualify logic that determines whether any of said stored candidates in said ordered queue is ready to be dispatched from said ordered queue;
ordered select logic that respectively determines an oldest candidate in each group of said ordered queue that is ready to be dispatched;
a plurality of execution units;
dispatch logic that dispatches candidates from said N groups in parallel to said plurality of execution units, wherein said dispatch logic dispatches said oldest candidate in each group that is ready to be dispatched and leaving at least one vacant entry in said ordered queue, and wherein each of said dispatched candidates is sent to any available one of said plurality of execution units, wherein said any available one of said plurality of execution units refers to an execution unit being able to accept said each of said dispatched candidates and when the execution unit is not available, said any available one of said plurality of execution units refers to another execution unit being able to accept said each of said dispatched candidates; and
shift logic that shifts said stored candidates in said ordered queue to fill said vacant entry between remaining ones of said stored candidates without changing an order of said remaining ones of said stored candidates in said ordered queue.

US Pat. No. 10,140,127

OPERATION OF A MULTI-SLICE PROCESSOR WITH SELECTIVE PRODUCER INSTRUCTION TYPES

1. A multi-slice processor comprising:a plurality of execution slices; and
a plurality of load/store slices, wherein the load/store slices are coupled to the execution slices via a results bus and the results bus comprises a plurality of segments with each segment assigned to carry results of a different instruction type, and the multi-slice processor is configured to carry out the steps of:
storing, by a dispatcher in a first portion of an entry of a register, an identifier of an instruction type of a producer instruction and an identifier of the producer instruction;
storing, by the dispatcher in an issue queue, a source instruction, the identifier of the instruction type of the producer instruction, and the identifier of the producer instruction, wherein the source instruction is dependent upon a result of the producer instruction; and
snooping the identifier of the producer instruction only from the segment of the results bus assigned to carry results of the instruction type of the producer instruction.

US Pat. No. 10,140,126

VARIABLE LENGTH INSTRUCTION PROCESSOR SYSTEM AND METHOD

1. A system for mapping addresses of first instructions of a first instruction set to addresses of second instructions of a second instruction set, comprising:a first memory configured to contain first instructions, each first instruction having a corresponding first instruction address in the first memory;
a converter coupled to the first memory and configured to convert first instructions to second instructions;
a second memory coupled to the converter and configured to contain second instructions;
a processor core coupled to the second memory and configured to process the second instructions; and
a mapping module coupled to the converter, the processor core and the second memory,
wherein:
instruction block is a group of contiguous instructions that have the same upper bit portion of instruction address, the upper bit portion of instruction address is a block address, a lower bit portion is a block offset;
the second memory is configured to be equipped with a plurality of second memory blocks, each second memory block is configured to contain a block of second instructions of the second instruction set, a block of second instructions of the second instruction set corresponds to a block of first instructions of the first instruction set in the first memory, and a block address of first instruction address is capable of addressing a block of second instructions;
the converter is further configured to extract the block offset mapping relationship between a first instruction of a first instruction block and a corresponding second instruction of a second instruction block; and
the mapping module is equipped with a storage element configured to contain the extracted block offset mapping relationships of each instruction block.

US Pat. No. 10,140,125

METHODS AND APPARATUS FOR INTERACTIVE CONTENT INJECTION

1. A method for providing interactive content to a client device, the method comprising:receiving, at a network device, a first request from the client device for a webpage accessible through a data network, the first request including a Uniform Resource Identifier (URI) of the webpage;
transmitting, by the network device over the data network, a second request for the webpage using the URI;
receiving, by the network device, the webpage;
determining the webpage is eligible for modification by determining that the webpage is of a hyper text markup language (HTML) file type, wherein no other webpage file type is eligible for modification;
responsive to determining that the webpage is eligible for modification based solely on the webpage being of the HTML file type,
retrieving a script to be injected into the webpage based upon a type of the web browser or the client device, wherein the script to be executed by a web browser of the client device that causes the web browser to display the interactive content,
modifying the webpage to yield a modified webpage that includes the script, and
transmitting, to the client device, the modified webpage;
receiving a request generated by the script of the modified webpage on the client device for interactive content; and
providing the interactive content, wherein the interactive content is to determine when user focus of the interactive content has been lost and halt refresh of the interactive content.

US Pat. No. 10,140,124

RECONFIGURABLE MICROPROCESSOR HARDWARE ARCHITECTURE

1. A reconfigurable and programmable multi-core processor that can be configured and programmed to conform to the requirement of a wide range of applications, the processor comprising:a plurality of processing units capable of executing intrinsic operations;
a plurality of memory blocks;
a plurality of cognitive data routing units that can be configured or programmed to route data from any of the processing unit to any of the memory blocks, from any of the processing units to any other of the processing units, from any of the memory blocks to any of the processing units, and from any of the memory blocks to any other of the memory blocks;
a cognitive on-chip network comprising a network of ports, each port comprising a data channel and a protocol channel, the network being able to connect ports together by connecting the output data channels to the input data channels and the bi-directional protocol channels to each other;
the cognitive data routing units and the cognitive on-chip network being able to form communication channels between the processing units with or without assistance from the memory blocks.

1. A non-transitory computer-readable medium having stored thereon computer-executable instructions that, if executed by a computing device, cause the computing device to perform a method comprising:allocating a set of pixels of an image to a set of single-instruction multiple-data (SIMD) processors;
allocating a subset of pixels of the set of pixels to each thread executing on a processing lane of each of the set of SIMD processors;
storing the subset of pixels in a general purpose register (GPR) file associated with each processing lane;
computing a per-thread private result based on the subset of pixels in a private space in the GPR file;
accumulating the per-thread private result with additional per-thread private results computed by threads from a same lane to generate a per-lane local result stored in a global space in the GPR file; and
writing the per-lane local result from the global space in the GPR file to a private area of a local data share (LDS) associated with the processing lane, the LDS associated only with a SIMD processor of the set of SIMD processors which contains the processing lane.

US Pat. No. 10,140,122

COMPUTER PROCESSOR WITH OPERAND/VARIABLE-MAPPED NAMESPACE

1. A computing device, comprising:one or more memory devices, wherein the memory devices comprise a memory space; and
a CPU connected to the memory devices, the CPU comprising:
a namespace;
two or more mentor circuits; and
a control circuit configured to control a main program flow of the CPU, wherein the main program flow includes calculating one or more end operands;
wherein the two or more mentor circuits of the CPU are configured to map variables in the namespace of the CPU, wherein each of at least two of the variables mapped in the namespace of the CPU corresponds to a conceptual unit and comprises:
data comprising a set of operands;
a variable descriptor; and
a variable ID;
wherein the namespace of the CPU is not limited to the memory space of the one or more memory devices,
wherein at least one of the variables mapped in the namespace of the CPU is a variable in the memory space,
wherein at least one other of variables mapped in the namespace of the CPU is not in the memory space,
wherein the CPU is configured to perform calculations using the variables mapped in the namespace of the CPU,
wherein each of at least two of the mentor circuits of the CPU is assigned to one or more particular ones of the variables mapped in the namespace of the CPU, wherein each of the at least two mentor circuits of the CPU is configured to:
map, for each of the one or more variables to which the mentor circuit is assigned, the variable ID for the variable to a physical operand address;
perform cache management with respect to the one or more variables to which the mentor circuit is assigned; and
perform operand addressing calculations for the one or more variables to which the mentor circuit is assigned,
wherein the CPU is configured to implement a frames/bins structure forming the variables' caches and comprising:
a plurality of frames, each of at least two of the frames comprising a physical memory element; and
a plurality of bins distributed in the plurality of frames, wherein each of at least two of the bins comprises a logical element,
wherein each of the at least two variables is assigned to a particular bin within one of the frames,
wherein the mentor circuits of the CPU are configured to perform at least some of the cache management and operand addressing operations for the variables to which the mentor circuits are respectively assigned simultaneously in parallel with one another and in a parallel with operations by the control circuit in the main program flow of the CPU,
wherein the CPU is configured to synchronize operand traffic streams as requested by the mentor circuits of the CPU or by requested on behalf of the mentor circuits of the CPU by main or other control.

US Pat. No. 10,140,121

SENDING A COMMAND WITH CLIENT INFORMATION TO ALLOW ANY REMOTE SERVER TO COMMUNICATE DIRECTLY WITH CLIENT

1. A computer-implemented method of transmitting commands, the computer-implemented method comprising:a client process in a first computer sending to a first server process in a second computer, one or more first messages comprising at least two port identifiers in the first computer, the one or more first messages comprising one or more first headers, the one or more first headers comprising a first port identifier in the first computer, the one or more first messages further comprising one or more first payloads, the one or more first payloads comprising a command, and a second port identifier in the first computer at which listener software executing in the first computer waits to receive messages, the one or more first messages being sent from a first port identified by the first port identifier in the first computer to the second computer; and
receiving in the first computer, at a second port identified by the second port identifier in the one or more first payloads which is different from the first port, from a third computer in which executes a second server process different from the first server process, one or more second messages, the one or more second messages comprising one or more second headers, the one or more second headers comprising the second port identifier in a destination port field, the one or more second messages further comprising one or more second payloads, the one or more second payloads comprising information responsive to the command.

US Pat. No. 10,140,120

CONTEXT-SPECIFIC VIEW OF A HIERARCHICAL DATA STRUCTURE

1. A method comprising:determining, from a hierarchical data structure, an internodal relationship between two contextual objects of a set of contextual objects, the hierarchical data structure representing a set of software configuration management (SCM) tools for a selected software program;
displaying the set of contextual objects for user-selection of individual contextual objects within the set of contextual objects;
receiving a user-context indicator responsive to a user selection of one contextual object of the two contextual objects from the displayed set of contextual objects, the user-context indicator corresponding to the one contextual object, the user-context indicator being creation of a new contextual object;
determining a subset of the hierarchical data structure corresponding to the creation of the new contextual object according to the internodal relationship between the two contextual objects; and
responsive to determining the subset of the hierarchical data structure, creating a working set including the subset of the hierarchical data structure in a tree view;
wherein:
at least the steps of receiving, determining, and generating are performed by computer software running on computer hardware.

US Pat. No. 10,140,119

MODULAR SERIALIZATION

1. A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising:identifying a first module element, of a first module defined by a module system, in a set of code, wherein the first module element is (a) serializable and (b) exposed by the first module to at least one module defined by the module system;
identifying a second module element, of a second module, that is expressed in a serial form of the first module element;
determining, by a compiler or a runtime environment, that the second module element is not exposed by the first second module to the at least one module; and
responsive to determining that the second module element is not exposed by the second module, performing one or more of: executing a corrective action or presenting a warning.

US Pat. No. 10,140,118

APPLICATION DATA SYNCHRONIZATION METHOD AND APPARATUS

1. An application data synchronization method, wherein the method is applied to a terminal, a first operating system and a second operating system are installed in the terminal, a first application is installed on the first operating system, a second application is installed on the second operating system, and at least one same function is achieved by the first application and the second application, wherein the method comprises:when the second application runs on the second operating system, performing the function by using second application data, and updating the second application data according to first application data, and updating the first application data when the first application runs on the first operating system to perform the function, wherein
the first application data and the second application data are stored in the terminal, wherein updating the first application data and the second application data is performed according to a comparison of a first update time of a first file containing the first application data with respect to a second update time of a second file containing the second application data, and is performed using a storage configuration file that stores details for the first application data and second application data including storage locations, storage formats, and data sizes.

US Pat. No. 10,140,117

FAULT-TOLERANT VARIABLE REGION REPAVING DURING FIRMWARE OVER THE AIR UPDATE

1. A method for updating firmware on a device, comprising:exposing a secure non-volatile memory store on the device, comprising a primary region and a spare region, each of the primary region and spare region including a working store configured to store transaction records and a variable store configured to store variable records;
copying variable records in the primary region and writing the variable records to the spare region;
erasing content in the working store within the primary region;
erasing variable records in the primary region;
copying variable records from a firmware update payload received at the device and writing the copied variable records into the primary region; and
erasing variable records in the spare region.

US Pat. No. 10,140,116

IN-VEHICLE AUXILIARY MEMORY STORAGE

1. A system comprising:an embedded modem having an internal storage of a size insufficient to store received data, in communication over a vehicle bus with controllers each including data storage, programmed to
query the controllers over the bus to identify controllers having available storage for the received data,
if the available storage is located on a priority controller of the controllers, send the data over the bus to the priority controller for storage,
otherwise, if the available storage is available on a non-priority controller of the controllers, send the data over the bus to the non-priority controller for storage,
query the controllers over the bus to confirm that the controller storing the received data sent to the controller is available for data offload, including to confirm that the controllers are not operating in a motive mode, and
responsive to the confirmation, request the stored data over the bus and transmit the stored data over a wide-area network to a telematics server.

US Pat. No. 10,140,115

APPLYING UPDATE TO SNAPSHOTS OF VIRTUAL MACHINE

1. A computer implemented method for applying an update to a snapshot of a virtual machine executed by a hardware processor, the method comprising:creating a cloned virtual machine reproducing a state of an existing first snapshot of a virtual machine, wherein the creating the cloned virtual machine further comprises selecting the existing first snapshot of a plurality of existing snapshots based on, at least, a priority associated with the existing first snapshot and a usage frequency for the existing first snapshot;
disabling a first virtual network interface card (NIC) in the cloned virtual machine, wherein the disabling the first virtual NIC comprises disconnecting the first virtual NIC from a network;
adding a second virtual NIC to the cloned virtual machine, wherein the adding the second virtual NIC to the cloned virtual machine further comprises initiating the cloned virtual machine to which the second virtual NIC has been added and assigning an unused internet protocol (IP) address to the second virtual NIC;
applying, via the network, an update to the cloned virtual machine having the added second virtual NIC, wherein the update is applied using the unused IP address assigned to the second virtual NIC and the update comprises a security update to maintain security for the virtual machine and the security update comprises an update of a definition file for security software, wherein the security software is anti-virus software;
deleting the second virtual NIC;
enabling the first virtual NIC; and
generating a snapshot of the updated cloned virtual machine and the first virtual NIC, wherein the snapshot is associated with the virtual machine and the snapshot is a data set in which only information on differences from a directly preceding snapshot is stored.

US Pat. No. 10,140,113

DATA PROCESSING METHOD AND DEVICE OF PRESET APPLICATION AFTER UPGRADING

1. A data processing method for a preset application in a terminal comprising a data partition and a system partition, comprising:after upgrading the preset application, comparing a first application package of the preset application after upgrading in the data partition with a second application package of the preset application before upgrading in the system partition;
deleting each file in the first application package which is identical with that in the second application package in accordance with a comparison result;
after the deleting, adding reduction identification information in the first application package, wherein the reduction identification information is used for: when the preset application after upgrading is started, a program file is loaded from the first application package after the deleting and the second application package, respectively, in accordance with the reduction identification information.

US Pat. No. 10,140,112

UPDATE MANAGEMENT SYSTEM AND UPDATE MANAGEMENT METHOD

1. An update management system, comprising:service monitor circuitry configured to monitor a communication service executed by a virtual server; and
virtual communication function management circuitry configured to
generate old and new correspondence data indicating correspondence between a new version virtual server and an old version virtual server; and
instruct virtualization resource management circuitry
to generate the new version virtual server based on the old and new correspondence data;
to update and switch from the old version virtual server to the generated new version virtual server, that corresponds to the old version virtual server; and
notify the service monitor circuitry that there is startup of the new version virtual server based on the old and new correspondence data,
wherein the virtualization resource management circuitry is configured to
manage each of virtualization resources including a physical server in which the virtual server executing the communication service is generated;
generate the new version virtual server; and
update and switch from the old version virtual server to the generated new version virtual server,
the virtualization resource management circuitry is configured to update the old version virtual server to the new version virtual server by:
initially connecting the new version virtual server to the network without disconnecting the old version virtual server from the network, and
disconnecting, the old version virtual server from the network when there is no process continued from before switching or when a predetermined new-version monitoring period expires, and
the update management system further includes distributor circuitry configured to distribute a destination of a packet from outside in the update management system, wherein after the new version virtual server is initially connected to the network without disconnecting the old version virtual server from the network, the distributor circuitry is configured to distribute the destination of the packet from outside in the update management system to the new version virtual server in an order from a newly starting process.

US Pat. No. 10,140,111

STREAMING GRAPHIC METHOD AND ARRANGEMENT DATA FOR BUILDING CONTROL SYSTEMS

1. A method comprising:by a building control system:
instantiating a server object corresponding to a set of building control system (BCS) values;
receiving an update request for the server object, the update request originating from a client that displays BCS data, and wherein the update request is a push-type update request to receive updates to the BCS values only if at least one of the BCS values changes;
holding the update request open such that a response is not sent for update request during a time out period unless at least one of the BCS values changes during the time out period; and
responsive to a determination that at least one of the BCS values has changed during the time out period, responding to the update request with at least one updated BCS value that has changed during the time out period.

US Pat. No. 10,140,110

MULTIPLE CHUNK SOFTWARE UPDATES

1. A system, comprising:a vehicle controller including a hardware processor programmed to
read, from a first subsection of a software update file retrieved from a topic of a topic tree for receiving vehicle updates, a number of subsections of the file,
retrieve additional subsections of the file from a sequence of subtopics of the topic, each subtopic associated with a respective remaining one of the number of subsections, and
update the software utilizing the retrieved subsections.

US Pat. No. 10,140,109

SILENT IN-VEHICLE SOFTWARE UPDATES

1. A method executed by at least one hardware controller of a vehicle, the method comprising:receiving, from a server by a vehicle, a data identifier list defining information to include in an interrogator log and where the information is located in an active software installation;
generating the interrogator log;
sending the interrogator log to the server;
receiving, in response, a manifest indicating network locations of software updates determined according to the interrogator log;
installing update binaries retrieved from the network locations to an inactive software installation of a plurality of storage installations; and
setting the inactive software installation to be an active installation upon vehicle restart, in place of another of the storage installations.

US Pat. No. 10,140,108

SYSTEMS AND METHODS OF CONFIGURING MANAGED RESOURCES

1. A method comprising, by a computer system:receiving a trigger to setup a target resource for remote control at a management system, wherein an operating system of the target resource enforces a transactional installation process for new software, wherein the operating system designates user-writable storage and non-user-writable storage on the target resource;
responsive to the trigger, retrieving prerequisite client-side software of the management system using a file-transfer mechanism that is disallowed by the operating system of the target resource;
creating a remote connection to the target resource using an encrypted network protocol that is allowed by the operating system of the target resource;
copying, via the remote connection, the prerequisite client-side software to the user-writable storage of the target resource; and
causing, via the remote connection, the copied prerequisite client-side software to be installed in the user-writable storage of the target resource, thereby bypassing the transactional installation process of the operating system of the target resource.

US Pat. No. 10,140,107

DYNAMIC WEB APPLICATION NOTIFICATIONS INCLUDING TASK BAR OVERLAYS

1. A system comprising:one or more hardware processors; and
one or more computer-readable storage devices having stored thereon computer-executable instructions that are executable by the one or more processors to perform operations including:
navigating a web browser to a web page;
displaying the web page, the web page including a menu having selectable menu items;
receiving a selection of a selectable menu item that is displayed at the menu and that is associated with installation of a web application linked to a taskbar of a client application or to a menu of the client application;
creating a web application file in response to receiving the selection of the selectable menu item;
populating the web application file with content comprising one or more dynamic elements that can be dynamically updated by the web application; and
wherein creating the web application file comprises creating an artifact that does not contain information associated with a web site, and the populating further comprising adding one or more of information received from the web site, a jumplist task, a start URL, and a favicon to the web application file.

US Pat. No. 10,140,106

METHOD, COMPUTER READABLE MEDIUM AND SYSTEM FOR DEPLOYING AND MERGING RELEASE INDEPENDENT APPLICATIONS

1. A method, comprising:intercepting an application installation procedure by stopping or pausing a software release installer, copying release code and installation parameters and storing state information about the installation;
classifying the application;
determining information associated with the application, including determining historical information associated with the application, the historical information including installation history information and previous installation locations among a plurality of target nodes;
determining an installation location for the application on at least one of the plurality of target nodes based on the determined information;
deploying installation of the application to the at least one of a plurality of target nodes for installation by an installer on the at least one target node;
installing the application based on the classification and the determined information;
implementing an application isolation strategy, such that the application isolation strategy isolates applications of different versions from each other; and
creating a virtual machine on at least one of the target nodes, wherein the application is added to the virtual machine and the virtual machine implements the isolation strategy.

US Pat. No. 10,140,105

CONVERTING SOURCE CODE

1. A method comprising:receiving a command to convert an application associated with a first programming language into a first version and a second version;
accessing source code of the application by a first converter to generate a first translation of the source code in a second programming language, wherein, responsive to detecting a first flag in the source code indicating a design pattern, the first converter conforms at least a portion of the first translation to the design pattern;
accessing the source code by a second converter to generate a second translation of the source code in a third programming language that differs from the second programming language, wherein, responsive to detecting the first flag in the source code, the second converter conforms at least a portion of the second translation to the design pattern;
after identifying a second flag in the source code and identifying a unit test portion of the source code based on the second flag, the unit test portion including first unit tests in the first programming language, generating second unit tests in the second programming language that are associated with the first translation and that correspond to the first unit tests, third unit tests in the third programming language that are associated with the second translation and that correspond to the first unit tests, or a combination thereof, wherein the second unit tests are generated by the first converter, and wherein the third unit tests are generated by the second converter; and
outputting the first translation and the second translation to a first device and a second device, respectively.

US Pat. No. 10,140,104

TARGET ARCHITECTURE DETERMINATION

1. A method, comprising:receiving an attribute that includes a named address space indicating a type of target architecture based on the named address space in a portion of instructions in source code retrieved from a memory array; and
creating compiled code for the type of target architecture based on the attribute indicating a type the type of target architecture based on the named address space by executing the instructions with a processor, wherein creating the compiled code includes compiling a first code based on a first target architecture and a second code based on a second target architecture.

US Pat. No. 10,140,103

POS APPLICATION DEVELOPMENT METHOD AND CLOUD SERVER

1. A point of sale (POS) application development method, wherein the method includes following steps:by a website client, transforming designed point of sale application into application project data, sending the application project data to a cloud server, and saving the application project data in a local database at the website client;
by an application development server in the cloud server, receiving and saving the application project data in a database transmitted from the website client;
by the application development server in the cloud server, processing the application project data and obtaining an application package;
by a signature server in the cloud server, performing signature process for the application package and obtaining a signed application package;
by a terminal management server in the cloud server, transmitting the signed application package to a point of sale;
by a point of sale, realizes a corresponding application based on the signed application package;
wherein the step of by application development server in the cloud server, processing the application project data and obtaining an application package includes:
by the application development server in the cloud server, generating a HTML5 intermediate file based on the application project data and performing validity detection on the HTML5 intermediate file;
by the application development server in the cloud server, generating a powerbuilder-file executable in the point of sale based on the HTML5 intermediate file which passes the validity detection;
by the application development server in the cloud server, compositing the powerbuilder file and an application project resource file to obtain an application project package; and
by the application development server in the cloud server, processing the application project package and obtaining the application package; and
thus, by a designer, completing the design of the point of sale application in the website client connected with the cloud server, without developing and uploading of the point of sale application by the website client.

US Pat. No. 10,140,102

EVALUATING ACCESSIBILITY COMPLIANCE OF A HYBRID USER INTERFACE DESIGN

1. A method for evaluating compliance of a hybrid user interface design, the method comprising:receiving, from a first application executing in a client data processing system, a first hierarchy of a first type of elements of a user interface, wherein a second application presents the user interface including a set of the first type of elements and a set of a second type of elements at the client data processing system, wherein the user interface is described in an interface description, wherein the interface description comprises an organization of a set of non-native elements according to a manner of presenting the set of the non-native elements on the user interface, wherein the first hierarchy is distinct from the organization for excluding a first subset of the set of non-native elements, and wherein the non-native elements in the subset are irrelevant to an accessibility feature, the accessibility feature being governed by a compliance rule;
receiving, from the first application, a second hierarchy of the second type of elements used in a system-specific presentation of the user interface at the client data processing system;
determining that a first element of the first type in the first hierarchy violates a condition specified in the compliance rule;
determining that a second element of the second type in the second hierarchy is related to the first element;
evaluating that an attribute of the second element causes an attribute of the first element to violate the condition, wherein the attribute of the first element complies with the condition when unaffected by the attribute of the second element; and
reporting, responsive to the evaluating, the second element as a cause of the first element violating the condition.

1. A system comprising:a processor;
a data bus coupled to the processor;
and a computer-usable medium embodying computer program code, the computer-usable medium being coupled to the data bus, the computer program code used for analyzing and deducing criteria-related content for evaluation in a system capable of answering questions and comprising instructions executable by the processor and configured for:
decomposing a natural language statement into a plurality of decomposed natural language components, the natural language statement relating to a complicated task, the complicated task comprising a plurality of sub-tasks, each of the plurality of sub-tasks corresponding to a respective decomposed natural language component, the decomposing comprising parsing the natural language statement into terms and parts of speech;
searching a repository of code snippets to identify code snippets corresponding to each of the plurality of sub-tasks corresponding to the respective decomposed natural language components;
ordering execution of the code snippets based upon the sub-tasks corresponding to the plurality of decomposed natural language components to perform the complex task, the complex task being performed using a computer executable algorithm, the computer executable algorithm comprising the code snippets identified as corresponding to each of the plurality of sub-tasks;
analyzing the plurality of decomposed natural language components for variables and values; and,
associating any identified variables and values with a particular code snippet based upon the analyzing; and wherein the associating includes matching data types to input types for code snippets, matching outcome types to output types, matching data types to a particular programming language of a code snippet and determining parameters to associate with the code snippet.

US Pat. No. 10,140,100

DEVICE COMMON MODEL INTERFACE

1. A code generation system comprising:a memory configured to store application environment specifications and communication protocol specifications, an application environment specification specifying a target application environment of an application, and a communication protocol specification specifying a communication protocol;
a processor system to implement a code generation application that is configured to:
receive a schema, the schema describing a resource in a smart-home environment, the schema including a description of the resource, one or more traits of the resource, and one or more interfaces of the resource, each of the one or more interfaces of the resource providing access to functionality of the resource, and the functionality comprising at least one of the one or more traits of the resource, and each of the one or more interfaces providing semantic meaning to operation of the functionality of the one or more traits of the resource;
translate the received schema into a target-specific data model, the translation based on the application environment specification of the target application environment and the communication protocol specification that is associated with the communication protocol used for communication with the resource in the smart-home environment, the target-specific data model comprising an Application Programming Interface (API) specific to the target application environment and the communication protocol;
extract elements of the received schema that are usable by the application that communicates with the resource using an interface of the resource;
using the extracted elements, generate a common object model in which the extracted elements are presented for an application developer, independent of the communication protocol; and
provide the target-specific data model to the application that interacts with the interface of the resource by using the API of the target-specific data model to perform operations that are specific to communicating with the interface of the resource in the target application environment and using the communication protocol supported by the resource for communication in the smart-home environment.

US Pat. No. 10,140,099

SYSTEMS AND METHODS FOR GENERATING CODE FROM EXECUTABLE MODELS WITH FLOATING POINT DATA

1. A method for replacing floating point calculations with integer calculations in at least one of programmable hardware, embedded hardware, or a data processing device, the method comprising:accessing, from a memory, a model comprising model elements, where
a first model element comprises a first operator to operate on one or more first inputs,
a second model element comprises a second operator to operate on one or more second inputs,
one of the one or more first inputs has a first data type,
one of the one or more second inputs has a second data type,
the second data type is the same as, or is different from, the first data type,
the first and second data types comprise single, double, half precision, or integer,
the first operator including a floating point operation, and
values of the one or more first inputs are in a form comprising floating point, integer, or fixed point,
analyzing the first operator and the one or more first inputs, the analyzing comprising analyzing the first data type,
determining whether the one or more first inputs are to be interpreted based on the analyzing the first operator and the one or more first inputs,
interpreting the one of the one or more first inputs as a first integer, a second integer, and a third integer, and
generating code for the model, the generating code comprising generating first code for the one or more first inputs and the first operator, wherein the first code comprises variables representing the first integer, the second integer, or the third integer and a function in place of the first operator that includes the floating point operation, where the function performs integer functionalities on the variables representing the first operator operating on the one of the one or more first inputs.

US Pat. No. 10,140,098

CODE GENERATION

1. A method of allowing users to manipulate data to generate computer executable code, the method including using a first processing systems system coupled to a number of component processing systems and a number of end stations via a communication network, where the first processing system includes a processor for executing memory-stored instructions thereon to:a) Store component specifications of a number of components, each component representing a respective data manipulation service implemented by a respective component server provided by a component supplier, each component server being a software application executed by one of the component processing systems, each component specification being received from the respective component server and indicating at least the service embodied by the component, at least some of the component servers being adapted to generate respective computer executable code fragments when implementing the component;
b) Determine information to allow assessment of components, the information being representative of one or more factors regarding the implementation of the components by the respective component servers;
c) Provide the information to users for a number of different components for performing equivalent services, the different components being associated with respective component servers provided by different component suppliers, the users selecting, using the end stations, the components in accordance with the information, thereby inducing competition between the component suppliers to thereby drive improvement of the components; and,
d) Provide the component specification of one or more selected components to users via the end stations, thereby allowing the users to, using the end stations, define a component combination defining a sequence of data manipulation services for manipulating the data, such that when the component combination is implemented, computer executable code is generated.

US Pat. No. 10,140,097

SYSTEM FOR IMPROVED PARALLELIZATION OF PROGRAM CODE

1. A method for parallelization of program code, the method comprising:analyzing source code having both a serial variant and a parallel variant defining two different variants of the source code to identify pairs of corresponding code blocks that provide functionally identical results but come from the two different variants,
for each identified pair of code blocks:
transferring each of the two different variants to a language-independent, abstract syntactic form to define abstracted functionally identical serial and parallel code blocks,
storing the abstracted functionally identical serial and parallel code blocks together in a respective pattern in a semantic pattern database,
performing a manual classification of the respective pattern according to human-selected categories or an automatic classification based on mapping to the human-selected categories, as determined based on machine learning, thereby forming a database of code block categories, and
transferring a new code block to be investigated to the abstract syntactic form,
comparing each new code block with the semantic pattern database of abstracted serial code blocks to identify a best fit with an existing pair of code blocks, and
automatically selecting a category for the new code block from the human-selected categories based on the category of the identified best fit.

US Pat. No. 10,140,096

PREVENTING RING OSCILLATOR PHASE-LOCK

1. A device, comprising:a random number generator (RNG) core that includes a plurality of parallel connected ring oscillators including a first ring oscillator and a second ring oscillator;
a controller coupled to the RNG core, the controller including:
a pseudo-random number generator (PRNG) configured to generate a plurality of pseudo random bits at every cycle;
a configuration circuit configured to parse the pseudo random bits to generate a first configuration value comprised of at least a first bit determined based on the pseudo random bits and a second configuration value comprised of at least a second bit determined based on the pseudo random bits and distribute the first configuration value to the first ring oscillator and the second configuration value to the second ring oscillator; and
a finite state machine configured to cause the device to operate in an accumulate entropy state for a first period of time and a break phase lock state for a second period of time;
wherein, when operating in the accumulate entropy state, all of the parallel connected ring oscillators are in a same configuration; and
wherein, when operating in the break phase lock state, the first ring oscillator is configured according to the first configuration value and the second ring oscillator is configured according to the second configuration value.

US Pat. No. 10,140,095

COLLECTING ENTROPY FROM DIVERSE SOURCES

1. A method for generating entropy in a computing device, the method comprising:setting a repeating first timer for a first frequency;
setting a repeating second timer for a second frequency;
collecting first bits from a first entropy source at the first frequency into a first accumulation buffer of a predetermined size, the predetermined size based on an amount of entropy per bit attributable to the first entropy source;
accepting the first bits into the first accumulation buffer;
presenting the first bits from the first accumulation buffer to a pseudo-random number generator as a first seed upon the first accumulation buffer becoming full, thereby providing a greater amount of sudden entropy than in a single collection of first bits;
periodically adjusting the first frequency;
gathering a specified number of second bits from a second entropy source at the second frequency, the specified number based on an amount of entropy per bit attributable to the second entropy source;
accepting the second bits into a second accumulation buffer upon the gathering, the second accumulation buffer having a different size than a size of the first accumulation buffer; and
presenting the second bits from the second accumulation buffer to the pseudo-random number generator as a second seed upon the second accumulation buffer becoming full,
wherein the first and second bits are alternatingly used to seed the pseudo-random number generator.

US Pat. No. 10,140,094

ROUNDING CIRCUITRY AND METHOD

1. A data processing apparatus to perform rounding on an input value to produce a rounded form output value, said data processing apparatus comprising:floor calculation circuitry to receive said input value in redundant-representation and to generate two candidates of a floor of said input value in non-redundant representation, wherein said floor calculation circuitry comprises first adder circuitry and third adder circuitry;
ceiling calculation circuitry to receive said input value in redundant-representation and to generate two candidates of a ceiling of said input value in non-redundant representation, wherein said ceiling calculation circuitry comprises second adder circuitry and fourth adder circuitry,
wherein said first adder circuitry, said second adder circuitry, said third adder circuitry, and said fourth adder circuitry are arranged to perform substantially in parallel;
selection circuitry to output one of said two candidates of said floor of said input value and said two candidates of said ceiling of said input value as said rounded form output value, based on said sign of said residual value associated with said input value,
wherein each of said two candidates of said floor of said input value correspond with different values of said sign of said residual value and each of said two candidates of said ceiling of said input value correspond with different values of said sign of said residual value.

US Pat. No. 10,140,093

APPARATUS AND METHOD FOR ESTIMATING A SHIFT AMOUNT WHEN PERFORMING FLOATING-POINT SUBTRACTION

1. An apparatus comprising:processing circuitry to perform a subtraction operation to subtract a second significand value of a second floating-point operand from a first significand value of a first floating-point operand in order to generate a difference value; and
shift estimation circuitry to determine an estimated shift amount to be applied to the difference value, the shift estimation circuitry comprising:
significand analysis circuitry to generate, from analysis of the first and second significand values, a first bit string identifying a most significant bit position within the difference value that is predicted to have its bit set to a determined value;
shift limiting circuitry to generate from an exponent value a second bit string identifying a shift limit bit position, the shift limiting circuitry having computation circuitry to perform, for each bit position in at least a subset of bit positions of the second bit string, an associated computation using bits of the exponent value to determine a value for that bit position within the second bit string, the associated computation being different for different bit positions;
combining circuitry to generate a combined bit string from the first and second bit strings; and
shift determination circuitry to determine the estimated shift amount from the combined bit string.

1. An apparatus comprising:a floating-point multiply-accumulate unit configured to generate a floating point result by either adding or subtracting three floating point operands: an addend, a product carry, and a product sum; and comprising:
a close path adder comprising:
an unincremented mantissa addition circuit configured to compute an unincremented mantissa result based upon the three floating point operands;
an incremented mantissa addition circuit configured to, at least partially in parallel with the unincremented mantissa addition circuit, produce an incremented mantissa result; and
a selection circuit configured to produce a close path result by selecting between the unincremented mantissa result and the incremented mantissa result.

1. An integrated circuit, comprising:a plurality of specialized processing blocks connected in a chain, wherein at least one specialized processing block in the chain includes:
a first input port that receives a first input signal;
a second input port that receives a second input signal;
a third input port that receives a third input signal;
a first arithmetic circuit that receives the first and second input signals;
a second arithmetic circuit that selectively receives signals from the first arithmetic circuit and that generates an output signal; and
a multiplexer having a first input that receives signals directly from the first arithmetic circuit, a second input that receives the third input signal from the third input port, a third input that receives the output signal from the second arithmetic circuit, and an output that is directly connected to an adjacent specialized processing block in the chain.

US Pat. No. 10,140,090

COMPUTING AND SUMMING UP MULTIPLE PRODUCTS IN A SINGLE MULTIPLIER

5. A multiplier for computing and summing up multiple products comprises:a multiplier circuit that receives, during a first clock cycle, a first number and a second number and responsively creates during a second clock cycle, first partial products based on a multiplication of the first number and the second number;
a reduction circuit that reduces, during a third clock cycle, the first partial products to create an intermediate result having a first sum value and a first carry value, wherein the reduction circuit outputs the intermediate result as input to the reduction circuit;
wherein the multiplier circuit receives, during the second clock cycle, a third number and a fourth number and responsively creates, during the third clock cycle, second partial products based on a multiplication of the third number and the fourth number;
wherein the reduction circuit, during a fourth clock cycle, adds the intermediate result and the second partial products of the third number and the fourth number to create a second sum value and a second carry value; and
an adder circuit that adds the second sum value and the second carry value to create a result.

US Pat. No. 10,140,089

SYNTHETIC SPEECH FOR IN VEHICLE COMMUNICATION

1. A method that enhances voice through synthetic speech reinforcement comprising:capturing one or more microphone signals;
estimating a plurality of echo paths from each of the one or more microphone signals;
synthesizing a speech reinforcement signal in response to and corresponding to speech detected in the one or more microphone signals, wherein synthesizing the speech reinforcement signal includes inferring the speech reinforcement signal from a linguistic context of the captured one or more microphone signals;
concatenating portions of the synthesized speech reinforcement signal with the captured microphone signals to render a reinforcement signal; and
processing the captured microphone signals in response to the estimated plurality of echo paths by subtracting the echo contributions of each of the plurality of echo paths from the captured microphone signals.

US Pat. No. 10,140,088

VISUAL SPATIAL AUDIO

1. A method comprising:receiving at least two audio signals from one or more sound sources by two or more microphones of an apparatus;
determining at least one user interface element associated with the one or more sound sources being displayed by a display of the apparatus based on the at least two audio signals, wherein the at least one user interface element is configured to be modified by an indicator;
determining at least one spatial component of the one or more sound sources comprising at least one directional component;
generating a visualization of the one or more sound sources, wherein the visualization is configured to rotate or change the at least one directional component of the one or more sound sources dependent on the indicator for the at least one user interface element, the at least one directional component based on the at least two audio signals, wherein generating the visualization further comprises the at least one directional component for the one or more sound sources being mapped to the visualization, wherein the at least one directional component comprises direction and magnitude of the one or more sound sources; and
rendering the at least two audio signals to generate a modified version of the at least one spatial component of the one or more sound sources after being mapped to the visualization dependent on the indicator, wherein the visualization comprises a rotation direction indication of a swipe gesture for the visualization of the one or more sound sources to cause to rotate said at least one directional component of the modified version of the at least one spatial component during rendering together with said magnitude of the one or more sound sources in such a way that the one or more sound sources is reproduced with the modified version of the at least one spatial component based on the swipe gesture.

US Pat. No. 10,140,087

REMOTE STREAMING AUDIO PROCESSING SYSTEM

1. A method for processing audio signals, the method comprising:receiving, via an application displayed at a client computing device, an audio signal and a user control input for controlling an audio processing effect of the audio signal;
sending, from the client computing device, via a wide area network connection, the audio signal and the user control input to an audio server;
relaying the audio signal through the audio server to an input of an analog audio processing device,
processing the audio signal through the analog audio processing device,
controlling a setting on the analog audio processing device through a device control input at the analog audio processing device based on the user control input, and
returning a processed version of the analog audio signal from the audio processing device to the client computing device,
wherein the sending of the audio signal from the client computing device, the relaying of the audio signal through the audio server to an input of the analog audio processing device, the processing of the audio signal through the analog audio processing device, and the returning of the processed version of the audio signal to the client computing device occur in substantially real time, and
wherein controlling a setting based on the user control input alters the processing of the audio signal at the analog audio processing device in substantially real time.

US Pat. No. 10,140,086

ELECTRONIC DEVICE AND AUDIO OUPUTTING METHOD THEREOF

1. An electronic device comprising:an audio module including audio circuitry;
a BLUETOOTH module including BLUETOOTH circuitry;
a touch screen; and
a processor configured to:
display, on the touch screen, an object for selecting an audio output mode from among a first mode in which the audio circuitry is activated, a second mode in which the BLUETOOTH circuitry is activated, and a third mode in which the audio circuitry and the BLUETOOTH circuitry are both activated at the same time, the object including a first icon that indicates the first mode, a second icon that indicates the second mode, and a third icon that indicates the third mode,
set the audio output mode to the first mode by changing the third icon to the first icon based on a first user input received through the object,
set the audio output mode to the second mode by changing the first icon to the second icon based on a second user input received through the object, and
set the audio output mode to the third mode by changing the second icon to the third icon based on a third user input received through the object,
wherein if an audio output mode is the third mode and if playback of audio data is requested while BLUETOOTH module is connected with an external device, the processor is configured to:
determine whether the audio data is call data or media data;
send the audio data through a first path if the audio data is call data; and
send the audio data through a second path if the audio data is media data.

US Pat. No. 10,140,085

PLAYBACK DEVICE OPERATING STATES

1. A method performed by a first playback device, the method comprising:receiving first control information from a controller device via at least one data network, the first control information comprising identification of an audio information source and instructions for the first playback device to play first audio information from the audio information source identified by the first control information;
in response to receiving the first control information, performing a first set of functions comprising: (1) obtaining the first audio information from the first audio information source identified by the first control information and (2) playing back the audio information individually;
receiving second control information from the controller device, the second control information comprising identification of an audio information source, instructions for the first playback device to play second audio information from the audio information source identified by the second control information, and an indication that the first playback device is to operate in a first synchrony group state in which the first playback device is designated as a group master of a first synchrony group, wherein the group master provides the second audio information to each other member of the first synchrony group and coordinates synchronous playback of the second audio information in the first synchrony group, and wherein the first synchrony group comprises a second playback device;
in response to receiving the second control information, performing a second set of functions comprising: (1) obtaining the second audio information from the audio information source identified by the second control information, (2) operating in the first synchrony group state, and (3) playing back the second audio information in synchrony with the second playback device, wherein operating in the first synchrony group state comprises providing the second audio information to each other member of the first synchrony group and coordinating synchronous playback of the second audio information in the first synchrony group;
while operating in the first synchrony group state, receiving third control information from a third playback device that is not a member of the first synchrony group, wherein the third control information comprises instructions for the first playback device to transition from the first synchrony group state to a second synchrony group state and an indication that the first playback device will be a group member of a second synchrony group, wherein the second synchrony group comprises the third playback device and the first playback device, and wherein the third playback device is a group master of the second synchrony group; and
in response to receiving the third control information, performing a third set of functions comprising: (1) transitioning from operating in the first synchrony group state to the second synchrony group state, (2) obtaining, from the third playback device, third audio information and associated playback timing information, and (3) using the playback timing information to playback the third audio information in synchrony with the third playback device.

US Pat. No. 10,140,084

INTERACTIVE SOUND REPRODUCING

1. An audio system comprising:(a) a sound reproduction device configured to operably connect to a plurality of digital music sources, the digital music sources comprising at least (i) user-defined playlists of digital music files and (ii) internet radio sites, the sound reproduction device comprising:
a digital-to-analog converter configured to receive a digital representation of content from the digital music sources and convert to analog form;
a powered speaker; and
a set of user-assignable preset indicators, wherein each indicator in the set of preset indicators is configured to have assigned to it an entity associated with the plurality of digital music sources; and
(b) a software program configured to run on a separate computing device, wherein the software program facilitates assignment of an entity associated with the plurality of digital music sources to a corresponding one of the preset indicators,
wherein the software program is configured to provide a user interface configured to present on a display of the separate computing device one or more sets of preset indicators, wherein at least one of the sets of the preset indicators presented in the user interface corresponds to the set of preset indicators on the sound reproduction device, and wherein the audio system is characterized in that once an entity is assigned to a preset indicator, a user can select the entity assigned to the preset indicator by at least each of the following: (i) selecting the corresponding preset indicator on the sound reproduction device; and (ii) selecting a corresponding preset indicator presented in the user interface of the separate computing device.

US Pat. No. 10,140,083

PLATFORM FOR TAILORING MEDIA TO ENVIRONMENT FACTORS AND USER PREFERENCES

1. A method comprising:receiving, at a service provider, a request to provide streaming media content to a media player device;
identifying a user and a second user in a vicinity of the media player device;
identifying a first user configuration setting associated with the user from a plurality of user configuration settings stored at a data store;
identifying a second user configuration setting associated with the second user from the plurality of user configuration settings stored at the data store;
determining that the first user configuration setting and the second user configuration setting are to be applied to one or more components of the streaming media content;
generating a first version of the streaming media content from a plurality of separate components stored at the service provider by applying the first user configuration setting to at least one first component of the plurality of separate components and combining the plurality of separate components;
generating a second version of the streaming media content from the plurality of separate components stored at the service provider by applying the second user configuration setting to at least one second component of the plurality of separate components and combining the plurality of separate components; and
providing the first version and second version of the generated streaming media content to the media player device, wherein the first version and second version of the generated streaming media content are caused to be played concurrently by the media player device.

US Pat. No. 10,140,082

METHOD AND SYSTEM FOR MAKING AND PLAYING SOUNDTRACKS

31. A non-transitory computer-readable medium having stored thereon computer-executable instructions that, when executed on a processing device, cause the processing device to perform a method of playing a digital variable duration soundtrack to a reader while the reader is reading an associated text source or while listening to an audiobook of the text source, the method comprising the steps of:(a) loading a soundtrack into memory, the soundtrack having a soundtrack timeline with a variable duration that is dynamically adjustable to be shortened or lengthened based on a reading speed input representing the reader's text reading speed or listening speed of the audiobook, and at least one sound layer comprising an arrangement of audio features that are configured to play at respective preset start positions in the soundtrack timeline, and wherein the playback timing of at least some audio features is timed to synchronise with events occurring in the text source as it is read by the reader or listened to via the audiobook by providing variable preset start positions that are dependent on the reading speed input such that the playback timing of such audio features is matched to the text reading speed of the reader or listening speed of the audiobook;
(b) receiving a reading speed input indicative of the reader's expected text reading speed or listening speed of the audiobook;
(c) receiving a navigation input indicative of the user's reading or listening position within the text source; and
(d) co-ordinating playback of the audio features of the soundtrack based on the reading speed input and navigation input.

US Pat. No. 10,140,081

METHOD AND SYSTEM FOR PRESENTING INFORMATION

1. A client device, comprising:a first display configured to display a two-dimensional code image;
a communication interface configured to:
receive two-dimensional code information sent by a server, comprising to:
receive the two-dimensional code information based on a local communication address, the two-dimensional code information being associated with a first local communication address or a second local communication address, the first local communication address being different from the second local communication address; and
receive operating information sent by the server, comprising to:
receive the operating information based on the local communication address, the operating information being associated with the first local communication address or the second local communication address;
at least one processor coupled to the first display, configured to:
generate the two-dimensional code image corresponding to the received two-dimensional code information;
control the displaying of the two-dimensional code image in the first display;
control the displaying of the operating information in the first display or in a second display; and
display the operating information in the first display or in the second display; and
a memory coupled to the at least one processor and configured to provide the at least one processor with instructions.

US Pat. No. 10,140,080

PROJECTOR AND CONTROL METHOD

1. A projector comprising:a plurality of transmitters each of which transmits a first signal to a first light emitting pen;
an imager that captures an image of light emitted from the first light emitting pen, the light being emitted from the first light emitting pen in response to a reception of the first signal;
a receiver that receives an infrared light transmitted from another projector to a second light emitting pen; and
a processor configured to act as a control unit that achieves, when the receiver receives the infrared light, synchronization of the timing of the first signal and the infrared light between the projector and the another projector such that the first signal and the infrared light are transmitted at a same time, wherein
the control unit includes
a detection section that detects, based on the image captured by the imager, a position where the first light emitting pen has emitted light,
a state judgment portion that judges whether or not the synchronization with the another projector is stable, and
a number determination portion that determines a number of transmitters to be used among the plurality of transmitters based on a judgment result made by the state judgment portion.

US Pat. No. 10,140,078

DATA PROCESSING SYSTEM AND METHOD FOR GENERATING GUIDING NETWORK BASED ON REGIONAL LAYOUT IMAGE

1. A data processing method for generating a guiding network, comprising the steps of:uploading a regional layout image;
based on the regional layout image, labeling M rational coordinates, wherein M is a natural number;
selecting N positioning points from the M rational coordinates, wherein N is a positive integer less than or equal to M;
selecting K information triggering points from the M rational coordinates, wherein K is a positive integer less than or equal to M, (N+K) is less than or equal to M;
selectively creating a plurality of links between neighboring rational coordinates in the M rational coordinates;
generating the guiding network according to the regional layout image, the M rational coordinates, the N positioning points, the K information triggering points and the links; and
generating a guiding program comprising the guiding network, wherein the guiding program is capable of being executed on a mobile communication platform;
wherein the regional layout image corresponds to a physically regional layout, in the physically regional layout, each of a plurality of identification signal transmitter is installed at one of a plurality of positions which each corresponds to one of the N positioning points and the K information triggering points, a plurality of identification codes, which each corresponds to one of the identification signal transmitters, the positioning points and the information triggering points, are uploaded, the guiding network comprises the identification codes;
wherein a user operates a mobile communication apparatus to load the guiding program therein, the mobile communication apparatus comprising the mobile communication platform and a displaying device, the mobile communication apparatus executes the guiding program to perform steps of:
on the displaying device, displaying the regional layout image and the K information triggering points;
when the mobile communication apparatus receives the identification signal transmitted from one of the identification signal transmitters, displaying a user current position on the displaying device, wherein the user current position corresponds to said one positioning point or said one information triggering point corresponding to the received identification signal; and
when the user selects a destination corresponding to one of the information triggering points under a condition of displaying the user current position, determining a guiding route according to the user current position, the destination and the guiding network, and displaying the guiding route on the displaying device.

1. An image processing apparatus comprising:a first memory for storing first identification information;
a wireless communication interface configured to perform wireless communication with a noncontact storage medium located within a particular distance and to receive second identification information;
a second memory for storing third identification information;
an operating interface configured to receive an operation;
a display;
a processor; and
a third memory storing instructions, the instructions, when executed by the processor, causing the processor to perform:
switching an operating mode of the image processing apparatus between:
a first mode in which the image processing apparatus stands by; and
a second mode in which the processor executes a first displaying process of displaying a first screen on the display, and a second displaying process of displaying a second screen different from the first screen on the display in response to receiving, by the operating interface, an operation relating to a function using image data while the first screen is being displayed;
when wireless communication is performed between the noncontact storage medium and the wireless communication interface, executing an identification information receiving process of receiving the second identification information stored in the noncontact storage medium through the wireless communication interface;
in a case where the operating mode is the first mode when the identification information receiving process is executed,
determining whether the first memory stores the first identification information corresponding to the second identification information;
in response to determining that the first memory stores the first identification information corresponding to the second identification information, storing the third identification information corresponding to the second identification information in the second memory, and executing a first login process of switching the operating mode from the first mode to the second mode; and
in response to determining that the first memory does not store the first identification information corresponding to the second identification information, maintaining the operating mode in the first mode without executing the first login process; and
in a case where the operating mode is the second mode when the identification information receiving process is executed,
determining whether the first memory stores the first identification information corresponding to the second identification information;
in response to determining that the first memory stores the first identification information corresponding to the second identification information, determining whether the second memory stores the third identification information corresponding to the second identification information;
in response to determining that the second memory stores the third identification information corresponding to the second identification information, determining whether the first screen is displayed on the display;
in response to determining that the first screen is displayed on the display, executing a first logout process of switching the operating mode from the second mode to the first mode and deleting the third identification information stored in the second memory;
in response to determining that the first screen is not displayed on the display, maintaining the operating mode in the second mode without executing the first logout process;
in response to determining that the second memory does not store the third identification information corresponding to the second identification information, executing a second login process of storing the third identification information corresponding to the second identification information in the second memory; and
in response to determining that the first memory does not store the first identification information corresponding to the second identification information, executing a second logout process of switching the operating mode from the second mode to the first mode and deleting the third identification information stored in the second memory.

US Pat. No. 10,140,076

INFORMATION PROCESSING APPARATUS AND NON-TRANSITORY RECORDING MEDIUM

1. An information processing apparatus comprising:a communication interface that communicates with at least one of a first image processing apparatus to execute a first job set based on a first command set and a second image processing apparatus to execute a second job set based on a second command set different from the first command set;
a processor that:
acquires, while the communication interface communicates with the first image processing apparatus, the first command set from the first image processing apparatus through the communication interface, and
acquires, while the communication interface communicates with the second image processing apparatus, the second command set from the second image processing apparatus through the communication interface; and
a display controller that displays, in response to the processor acquiring the first command set or the second command set, a setting screen in which a user is allowed to set at least one of a plurality of setting commands in the first command set or the second command set,
wherein the processor further:
extracts at least one setting command from the setting commands in the first command set or the second command set based on setting operation by the user while the display controller displays the setting screen,
transmits the setting command extracted by the processor to the first image processing apparatus or the second image processing apparatus,
registers the setting command extracted by the processor with command registration information,
determines, if a setting command in the first command set is registered with the command registration information and the processor acquires the second command set, whether the second command set includes a setting command associated with the setting command in the first command set registered with the command registration information, and
extracts a setting command associated with the setting command in the first command set registered with the command registration information from the setting commands in the second command set based on a result of the determination by the processor, and reflects the extracted setting command in the setting screen.

US Pat. No. 10,140,075

WHITE SPACE MANAGEMENT MECHANISM

1. A non-transitory machine-readable medium including data that, when accessed by a processor, causes the processor to:examine a print job data stream spooled in a spooled print production file;
identify one or more blank pages within documents in the print production file; and
insert content into each of the blank pages based on one or more rules associated with each blank page, wherein the rules identify one or more dynamic messages that are to be inserted into a blank page based upon variable data included in the print job data stream.

US Pat. No. 10,140,074

INFORMATION PROCESSING APPARATUS AND METHOD THEREFOR

1. A client apparatus comprising:a clock;
a storage device;
a memory storing instructions; and
a processor executing the instructions causing the client apparatus to:
receive, from an image processing apparatus, information about a status of use of the image processing apparatus;
acquire a first change history indicating a history of time change setting performed on the clock, which is recorded in the storage device by an operating system running on the client apparatus;
store, as a first file, time information including time indicated by the clock when the information about the status of use is received from the image processing apparatus, the acquired first change history, and the received information about the status of use into the storage device;
acquire, in a case where a determination is made that a timing at which to transmit the first file has been reached, a second change history indicating a history of time change setting performed on the clock;
generate the second file to be transmitted by further appending, to the first file, time information including time indicated by the clock when the determination is made, difference information obtained by using the first change history and the second change history; and
transmit the generated second file to a management server.

US Pat. No. 10,140,073

WIRELESS DEVICES THAT ESTABLISH A WIRELESS CONNECTION WITH A MOBILE INFORMATION APPARATUS BY WIRELESSLY DETECTING, WITHIN PHYSICAL PROXIMITY, THE MOBILE INFORMATION APPARATUS

8. A wireless device for establishing a wireless connection with a mobile information apparatus, the wireless device being a distinct device from the mobile information apparatus, and the wireless device includes wireless communication circuitry and memory storing device information related to the wireless device, wherein the wireless device:(1) uses the wireless communication circuitry of the wireless device to wirelessly detect the mobile information apparatus, the wireless detection is based, at least in part, on physical distance between the wireless device and the mobile information apparatus, and the wireless detection of the mobile information apparatus includes either one of (i) the wireless device wirelessly detecting the mobile information apparatus or (ii) the mobile information apparatus wirelessly detecting the wireless device, and the wireless detection is further based, at least in part, on short range direct wireless communication between the wireless device and the mobile information apparatus;
(2) uses the wireless communication circuitry of the wireless device to wirelessly transmit at least part of the device information that is stored in the memory of the wireless device, from the wireless device to the mobile information apparatus, the wireless transmission of the device information is based on the wireless device having wirelessly detected the mobile information apparatus in (1), and the wireless transmission of the device information is based, at least in part, on short range direct wireless communication between the wireless device and the mobile information apparatus;
(3) uses the wireless communication circuitry of the wireless device to wirelessly receive a service request or a connection request from the mobile information apparatus;
(4) uses the wireless communication circuitry of the wireless device to wirelessly establish a wireless communication link between the wireless device and the mobile information apparatus in response to having wirelessly received the service request or the connection request from the mobile information apparatus in (3), and the establishing of the wireless communication link being subsequent to having wirelessly transmitted at least part of the device information from the wireless device to the mobile information apparatus in (2); and
(5) uses the wireless communication circuitry of the wireless device to wirelessly receive, via the established wireless communication link in (4), data or information from the mobile information apparatus; and
wherein, subsequent to the wireless detection in step (1) or subsequent to having wirelessly transmitted the device information, related to the wireless device, from the wireless device to the mobile information apparatus in step (2), the wireless device is operable to repeat one or more other steps that include step (3), step (4), or step (5), without the need to repeat at least part of step (1) and step (2).

US Pat. No. 10,140,072

SOUND OUTPUT SYSTEM OR INTERNET APPLIANCE THAT SUPPORTS VOICE ACTIVATED COMMANDS, AND THAT PLAYS AUDIO DATA RECEIVED FROM A SERVICE OVER A NETWORK

8. A method for setting up an output system to receive voice activated commands from a user, the output system includes:one or more sound output devices for outputting sound,
a microphone,
a voice activated command interface for interacting with the user, and
wireless communication circuitry, the method, comprising:
(1) establishing, using the wireless communication circuitry at the output system, a short range wireless communication link between the output system and a portable wireless device, the portable wireless device is a distinct device from the output system, and the portable wireless device is at least one of a smart phone or an information pad;
(2) receiving, using the wireless communication circuitry at the output system and via the established short range wireless communication link, information from the portable wireless device, and, subsequent to having received the information from the portable wireless device, the method further comprises:
(3) coupling the output system to a network using the wireless communication circuitry at the output system, the network includes a wireless local area network;
(4) accessing, using the wireless communication circuitry of the output system, one or more servers over the network, the one or more servers providing, at least in part, a service that is accessible, at least partly, over the Internet;
(5) receiving, via the microphone, a voice activated command from the user, the receiving of the voice activated command is related to outputting or playing digital content;
(6) receiving, via the wireless communication circuitry at the output system, audio output data from the one or more servers, the receiving of the audio output data from the one or more servers is subsequent to the output system having received the voice activated command from the user, via the voice activated command interface; and
(7) outputting or playing, using the one or more sound output devices included in the output system, at least part of the audio output data received from the one or more servers, wherein the audio output data is related to the digital content that includes audio data or voice data, individually or in any combination.

US Pat. No. 10,140,071

PRINTERS, PRINTER CONTROLLERS, PRINTER SOFTWARE, OR PRINTER FIRMWARE FOR SUPPORTING WIRELESS PRINTING OR PRINTING OVER AIR

1. A printing device supporting wireless printing of digital content, comprising:a memory or storage hardware component to store at least part of an output device profile, the output device profile includes at least one attribute related to the printing device; and
one or more wireless communication units for wireless communication, the one or more wireless communication units include one or more wireless communication chips or chipsets, at least one wireless communication chip or chipset of the one or more wireless communication chips or chipsets being compatible, at least partly, with at least one protocol within IEEE 802.11 wireless standards; and
wherein the printing device uses the one or more wireless communication chips or chipsets to:
wirelessly broadcast availability of the printing device for the one or more wireless information apparatuses to wirelessly discover the printing device for service;
wirelessly transmit at least part of the output device profile, stored within the printing device, to the one or more wireless information apparatuses that have wirelessly discovered the printing device; and
wirelessly receive, from the one or more wireless information apparatuses and via the at least one wireless communication chip or chipset that is compatible, at least partly, with at least one protocol within IEEE 802.11 wireless standards, print data that is related to at least part of the digital content for printing at the printing device, and wherein the print data is further related, at least partly, to the at least one attribute included in the output device profile that is wirelessly transmitted from the printing device to the one or more wireless information apparatuses.

11. An image forming system comprising:an image forming apparatus;
an information processing apparatus; and
a terminal,
wherein the information processing apparatus includes
a first availability information acquisition unit that acquires from the image forming apparatus availability information which indicates whether or not the image forming apparatus is available to execute one or more specific functions of a plurality of functions performed by the image forming apparatus,
wherein the specific functions of the image forming apparatus include one or more printer functions performed by a printer that forms an image on a medium and one or more non-printer functions performed by a non-printer device, which does not use the printer, and
a transmission unit that transmits the availability information to the terminal, and
wherein the terminal includes
a second availability information acquisition unit that acquires the availability information from the information processing apparatus, and
a display that displays an icon image, from among a plurality of icon images, corresponding to the availability information,
wherein the functions performed by the first availability information acquisition unit, the transmission unit, and the second availability information acquisition unit are achieved under control of a central processing unit (CPU),
wherein the image forming apparatus is configured to execute a job using the printer functions of the printer, and execute a job using the non-printer functions of the non-printer device, and
wherein, based on the availability of the image forming apparatus, the display displays:
(i) a first icon image indicating that the image forming apparatus is available to execute a first job using the printer functions of the printer;
(ii) a second icon image simultaneously indicating that the image forming apparatus is not available to execute a second job which uses the printer functions of the printer, and the image forming apparatus is available to execute a third job using the non-printer functions of the non-printer device;
(iii) a third icon image indicating that the image forming apparatus is not available because another user is using the image forming apparatus;
(iv) a fourth icon image indicating that a management server cannot acquire information from the image forming apparatus; and
(v) a fifth icon image indicating that the terminal cannot acquire information from the management server.

US Pat. No. 10,140,069

PRINTING APPARATUS, METHOD OF CONTROLLING THE SAME, AND STORAGE MEDIUM

1. A printing apparatus comprising:a memory device that stores a set of instructions; and
at least one processor that executes the instructions to function as:
an obtaining unit that obtains first user information included in a received print job;
a determination unit that determines whether or not the first user information includes first character information that is not supported by a user authentication function;
a conversion unit that converts the first user information to second user information when the first character information that the determination unit has determined to be not supported by the user authentication function is changed to second character information supported by the user authentication function; and
a control unit that, if the second user information obtained by conversion performed by the conversion unit does not match user information managed by the user authentication function, registers the first user information and the second user information to the user authentication function in association with each other, and
if the second user information matches user information managed by the user authentication function, registers, to the user authentication function, the first user information and third user information that are information based on the first user information and are different from the second user information, in association with each other.

US Pat. No. 10,140,068

ASYNCHRONOUS MANAGEMENT OF MOVABLE COMPONENTS

1. A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, cause performance of operations comprising:receiving a first request to perform a first operation in a tape library, the first operation comprising a first physical task to be performed by a physical component;
based on the first request:
(a) initializing a first message handler executing in a first execution thread;
(b) retrieving, from persistent storage, state data associated with the physical component;
(c) instantiating, using the state data, a first code object representing the physical component; and
(d) transmitting, using at least the first message handler and the first code object, instructions to the physical component to perform the first physical task;
receiving, by a first process executing in a second execution thread different than the first execution thread, a first message from the physical component indicating completion of the physical task; and
based on the first message from the physical component:
(a) initializing a second message handler executing in a third execution thread; and
(b) updating persistent storage, by the second message handler, with first updated state data associated with the physical component.

1. A system comprising:a disk for storing data;
a solid state memory for storing data;
a solid state device (SSD) controller configured to obtain metadata related to data stored in the solid state memory, wherein the metadata includes non-address metadata indicating at least one of a priority of the data, a frequency of access of the data, a last access time of the data, whether the data was accessed in temporal proximity to a powering on or powering off of the system, storage of the data in the solid state memory, a fragmentation level of the data, and that the data is often sequentially accessed for reading or writing; and
a hard disk (HD) controller configured to:
evaluate the non-address metadata; and
determine a location on the disk for storing the data based on the evaluation of the non-address metadata.

US Pat. No. 10,140,066

SMART PARTITIONING OF STORAGE ACCESS PATHS IN SHARED STORAGE SERVICES

1. A computer-implemented method, comprising:creating multiple pools of micro services, where:
each of the micro services includes an independent process within a storage system,
each of the multiple pools of micro services includes a homogenous grouping of a plurality of instances of a single micro service, and
each of the multiple pools of micro services has associated resources of the storage system available to the pool of micro services;
receiving a workload, the workload including a plurality of requests to access data within the storage system;
dynamically mapping the workload, based on characteristics of the workload, to an access path traversing a combination of a subset of the pools of micro services, where the access path includes a vector of resources of the storage system utilized to access the data, and the workload utilizes the resources of the storage system associated with the combination of the subset of the pools of micro services;
monitoring the workload after mapping the workload to the access path, including determining a usage of the resources of the storage system associated with the combination of the subset of the pools of micro services; and
reconfiguring the multiple pools of micro services, including modifying the resources of the storage system available to one or more of the multiple pools of micro services, based on the monitoring.

US Pat. No. 10,140,065

METHOD AND APPARATUS FOR STORING INFORMATION USING AN INTELLIGENT BLOCK STORAGE CONTROLLER

1. A device for improving data storage reliability and efficiency, the device comprising at least one processor:a) creating at least one storage drive comprising a plurality of storage blocks;
b) receiving a request from a computing system to write the data, wherein the computing system provides an associated block address of the data; and
c) detecting a block address to be rewritten more frequently in the future, wherein the block address is associated with data of an initial write following initialization of the storage drive by the computing system, and wherein the detecting the block address comprises examining an entropy level of the data of the initial write.

US Pat. No. 10,140,064

METHOD AND APPARATUS FOR STORING INFORMATION USING AN INTELLIGENT BLOCK STORAGE CONTROLLER

1. A method for improving data storage reliability and efficiency, the method comprising:a) creating at least one storage drive comprising a plurality of storage blocks;
b) receiving a request from a computing system to write the data, wherein the computing system provides an associated block address of the data; and
c) detecting a block address to be rewritten more frequently in the future, wherein the block address is associated with data of an initial write following initialization of the storage drive by the computing system, and wherein the detecting the block address comprises examining an entropy level of the data of the initial write.

US Pat. No. 10,140,063

SOLID STATE DRIVE MULTI-CARD ADAPTER WITH INTEGRATED PROCESSING

1. A solid state drive (SSD) multi-card adapter, comprising:a connector capable of supporting a storage communication protocol;
an interface section coupled to the connector; and
a plurality of mixed-format solid state drive connectors coupled to the interface section, and configured to receive a corresponding plurality of mixed-format non-volatile memory units,
wherein the interface section includes a compute resource;
wherein the plurality of mixed-format non-volatile memory units include a plurality of mixed-format mixed-protocol non-volatile memory units coupled to the compute resource; and
wherein the compute resource is configured to perform at least one of data encryption, data protection, data compression, or data deduplication on data stored on the plurality of mixed-format mixed-protocol non-volatile memory units.

1. A method of controlling a memory device comprising a memory array having a plurality of memory cells, the method comprising:a) receiving, by an interface, a suspend command and first and second write commands from a host, wherein the second write command is of higher priority and follows the first write command;
b) storing an automatic resume enable bit in a register on the memory device;
c) suspending a first write operation that is executing the first write command on the memory array in response to the suspend command;
d) executing a second write operation on the memory array in response to the second write command; and
e) resuming the first write operation upon completion of the second write operation in response to the automatic resume enable bit being set.

1. A method comprises:identifying, by a dispersed storage (DS) processing unit of a plurality of DS processing units of a dispersed storage network (DSN), a DSN operation to be performed that will adversely interfere with processing of DSN access requests;
sending, by the DS processing unit, a suspension request to a process balancing module of the DSN, wherein the suspension request is for temporarily suspending processing of DSN access requests;
determining, by the process balancing module, whether sufficient processing resources of active DS processing units of the plurality of DS processing units are available for processing DSN access requests on behalf of the DS processing unit; and
when determined that sufficient processing resources are available:
granting, by the process balancing module, the suspension request; and
allocating, by the process balancing module, DSN access requests of the DS processing unit to one or more of the active DS processing units.

US Pat. No. 10,140,059

SEMICONDUCTOR MEMORY DEVICE AND MEMORY SYSTEM

1. A memory system comprising:a semiconductor memory device including a plurality of memory cells, and first, second, and third caches for storing data before the data are written into the memory cells; and
a memory controller configured to issue commands to the semiconductor memory device, the commands including a first command issued with first write data to store the first write data in the first cache, a second command issued with second write data to store the second write data in the first cache and then transfer the second write data in the first cache to one of the second and third caches, and a third command to transfer data between the second and third caches.

US Pat. No. 10,140,058

MEMORY CONTROLLER AND MEMORY MODULE

1. A memory controller coupled between an external device and a memory, comprising:a first interface to communicate with the memory, the first interface comprising:
a first buffer coupled to the memory; and
a first synchronization unit coupled to the first buffer;
a second interface to communicate with the external device, the second interface comprising:
a second buffer coupled to the external device; and
a second synchronization unit coupled to the second buffer; and
a control logic,
wherein in response to a synchronization debug signal being at a first logic level, the control logic sets the second buffer of the second interface to be at a receiving mode according to the synchronization debug signal to receive test data from the external device and transmit the test data to the first synchronization unit, and the control logic sets the first buffer of the first interface to be at a transmitting mode according to an inverted synchronization debug signal to transmit the test data from the first synchronization unit to the memory, and
wherein after a predetermined time, in response to the synchronization debug signal being at a second logic level, the control logic sets the first buffer of the first interface to be at the receiving mode to receive a test result from the memory and transmit the test result to the second synchronization unit, and the control logic sets the second buffer of the second interface to be at the transmitting mode to transmit the test result from the second synchronization unit to the external device,
wherein the first synchronization unit and the second buffer are operated at a second clock, and the second synchronization unit and the first buffer are operated at a first clock.

US Pat. No. 10,140,057

APPARATUSES AND METHODS FOR MULTIPLE ADDRESS REGISTERS FOR A SOLID STATE DEVICE

1. An apparatus, comprising:a controller comprising a plurality of base address registers (BARs) each including same addresses for data storage in a same memory resource; and
a solid state device (SSD) comprising the same memory resource; and wherein:
to enable performance of a write operation, the write operation is assigned to a first BAR that has a selected first cache attribute;
during performance of the write operation, data values of the write operation are assigned for storage to a particular buffer local to a processor before transfer to the SSD, wherein the particular buffer is controlled by the selected first cache attribute;
to enable performance of a read operation, the read operation is assigned to a second BAR that has a selected second cache attribute; and
during performance of the read operation, data values of the read operation are assigned for storage to a particular cache local to the processor after transfer from the SSD, wherein the particular cache is controlled by the selected second cache attribute.

US Pat. No. 10,140,056

SYSTEMS AND METHODS FOR DIFFERENTIATING FUNCTION PERFORMANCE BY INPUT PARAMETERS

1. A processor, comprising:a counter to count occurrences of an event in the processor and to overflow upon the count of occurrences reaching a specified value;
a PEBS handler circuit to generate and store a PEBS record into a PEBS memory buffer, the PEBS record comprising at least one stack entry reflecting a state of the processor; and
a PEBS enable circuit coupled to the counter and to the PEBS handler circuit, the PEBS enable circuit to enable the PEBS handler circuit to generate and store the PEBS record to the PEBS memory buffer.

US Pat. No. 10,140,055

ENSURING THAT MEMORY DEVICE ACTIONS ARE VALID USING REFERENCE VALUES

1. A memory device comprising:a memory comprising:
at least one physical partition comprising:
a first region of the memory storing metadata including one or more elements to store one or more element values indicative of a size or an address related to a portion of the at least one physical partition of the memory; and
a second region of the memory storing data at least partly in the portion of the memory; and
a controller configured to ensure that an action associated with an element of the one or more elements is valid compared to a derived reference value, the derived reference value based at least in part on a reference value associated with an actual characteristic related to the at least one physical partition of the memory, wherein:
the one or more element values comprises a current element value already stored in the element;
the action comprises a request, from a host device, to write an updated element value to the element to replace the current element value already stored in the element;
the actual characteristic related to the physical partition comprises a capacity of the physical partition; and
the controller is further configured to:
monitor for the request, from the host device, to write the updated element value to the element;
assess the reference value;
subtract at least a size of the first region of the memory from the capacity of the physical partition to derive the derived reference value;
determine that the updated element value exceeds the derived reference value; and
prevent writing the updated element value to the element.

US Pat. No. 10,140,054

RETROSPECTIVE SNAPSHOTS IN LOG STRUCTURED STORAGE SYSTEMS

1. A method for retrospective snapshot creation comprising:applying rules for limiting garbage collection memory management processing and snapshot creation, wherein the rules comprise: limiting garbage collection scope to a garbage collection zone that maintains snapshot fidelity, and preventing garbage collection of cross-snapshot tombstones for valid snapshots;
creating, by a processor, a first snapshot that captures logical state of a data store at a first time in a time range, wherein creation of the first snapshot is based on:
determining existence of a second snapshot that captures logical state of the data store; and
recording a retrospective snapshot at a last valid log address offset prior to the first time upon a determination that the second snapshot exists based on:
determining at least one of:
whether log address offsets from a first log entry of a log to a log entry of the log at the first time are contiguous; and
whether log address offsets from the second snapshot to the first time are contiguous.

US Pat. No. 10,140,052

MEMORY ACCESS IN A DATA PROCESSING SYSTEM UTILIZING COPY AND PASTE INSTRUCTIONS

1. A method of data processing in a data processing system including a processor core having a store-through upper level cache and a store-in lower level cache, the method comprising:in response to a first instruction in the processor core, generating a copy-type request and transmitting the copy-type request to the lower level cache, wherein the copy-type request specifies a source real address;
in response to a different second instruction in the processor core, generating a paste-type request and transmitting the paste-type request to the lower level cache, wherein the paste-type request specifies a destination real address;
only in response to receipt by the lower level cache of both the copy-type request and the paste-type request from the processor core, the lower level cache copying a data granule from a storage location specified by the source real address into a non-architected buffer; and
in response to receipt of the paste-type request from the processor core at the lower level cache, the lower level cache writing the data granule from the non-architected buffer to a storage location specified by the destination real address.

US Pat. No. 10,140,051

BACKUP FILES TO A DISK IMAGE

1. A method comprising:receiving, by a computer, a copy of a file to backup from a source machine different than the computer, wherein the file is stored on a first disk drive of the source machine;
performing, by the computer, a write operation to write the copy of the file to a mount point of a file system on a second disk drive of the computer;
intercepting, by the computer, a block-level data block to be written which is generated by the performed write operation;
writing, by the computer, the block-level data block to a corresponding, respective block of a disk image file having a plurality of blocks,
wherein the disk image file comprises a disk image of the first disk drive of the source machine;
determining, by the computer, a respective block address in the disk image file of the intercepted block-level data block;
creating, by the computer, a hash table, wherein the hash table comprises a corresponding, respective entry for each of the plurality of blocks of the disk image file; and
determining if the intercepted block-level data block is different than that of a previously received version of the file.

US Pat. No. 10,140,050

PROVIDING ACCESS INFORMATION TO A STORAGE CONTROLLER TO DETERMINE A STORAGE TIER FOR STORING DATA

1. A computer program product for managing data at a client system and in communication with a storage controller managing data access to a plurality of storage tiers, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that executes in the client system to perform operations, the operations comprising:maintaining access information at the client system for each data record in a data store at the client system, wherein the access information indicates a level of access to each data record in the data store;
receiving a write request directed to a data record in the data store;
generating a command identifying the data record to cause the data record to be written by the storage controller and including the access information for the data record and an old address at which the data was previously written; and
transmitting the command to the storage controller, wherein the storage controller uses the access information to determine one of the plurality of storage tiers on which to store the data record that is different from the storage tier including the old address included in the command.

US Pat. No. 10,140,049

PARTITIONING SYSTEMS OPERATING IN MULTIPLE DOMAINS

1. A partitioned system, comprising:a first system partition, the first system partition including an electronic control system that controls operation of a target system, the first system partition designed to operate in compliance with a predetermined safety integrity level, the predetermined safety integrity level including a level of functional safety that is free from unacceptable risk of physical injury or of damage to health of people either directly or indirectly;
a second system partition that includes hardware that is separate from hardware used within the first system partition, the second system partition operating in a user domain not designed to operate in compliance with the predetermined safety integrity level where information supplied by the second system partition is not sufficiently reliable to be used by the first system partition while operating in compliance with the predetermined safety integrity level; and,
a programmable circuit that includes dedicated hardware that is separate from hardware used within the second system partition, the programmable circuit being connected between the first system partition and the second system partition, the programmable circuit receiving the information supplied by the second system partition, the programmable circuit monitoring and supervising the second system partition in order to maintain compliance of the first system partition with the predetermined safety integrity level including the level of functional safety that is free from unacceptable risk of physical injury or of damage to health of people either directly or indirectly;
wherein the programmable circuit comprises configurable system integrated circuitry that includes manufacturing-time fabric that is configured during manufacturing of the configurable system integrated circuitry, compile-time fabric that is configured during compile time for the configurable system integrated circuitry and run-time fabric that is configured during run-time for the configurable system integrated circuitry; and
wherein during compile time, hardware description language is taken through electronic design automation tools including synthesis, place and route to produce a first configuration file that is uploaded into the compile-time fabric and to additionally produce a second configuration file that is uploaded into the run-time fabric during run-time of the partitioned system without affecting operating integrity of the first system partition.

US Pat. No. 10,140,048

APPARATUS AND METHOD FOR FILE RECORDING BASED ON NON-VOLATILE MEMORY

1. A file recording apparatus, comprising:a non-volatile memory having a boot region, a file allocation table (FAT) region and a data region;
and
a processor configured to:
predict a size of a first file to be stored in the non-volatile memory,
allocate metadata containing information of the predicted size of the first file to the FAT region,
allocate a plurality of clusters to the data region based on information of the predicted size of the first file included in the metadata,
write the first file in the plurality of clusters allocated to the data region, and
in response to a size of the written first file being different from a size of the plurality of allocated clusters, update the metadata based on the size of the written first file,
wherein the metadata includes information upon a first cluster chain of the plurality of clusters and the size of the first file.

US Pat. No. 10,140,046

SUPPORTING DATA COMPRESSION USING MATCH SCORING

1. A processing device comprising:a data stream compression circuit to:
determine a first score for a first bit subsequence based on a location of the first bit subsequence in an input bit stream;
determine a second score for a second bit subsequence based on a location of the second bit subsequence in the input bit stream with respect to the first bit subsequence; and
update data associated with one of the first bit subsequence or the second bit subsequence in an output bit stream based on the first score and the second score.

US Pat. No. 10,140,045

CONTROL DEVICE FOR STORAGE SYSTEM CAPABLE OF ACTING AS A CONSTITUENT ELEMENT OF VIRTUALIZATION STORAGE SYSTEM

1. A computer system comprising:a first storage system having a first storage system identifier, and being configured to provide a first logical device having a first logical device identifier;
a second storage system having a second storage system identifier, and being configured to provide a second logical device having a second logical device identifier; and
a network configured to connect at least the first storage system and the second storage system,
the first storage system being configured to provide a virtual storage system identifier associated with the first storage system identifier and a virtual logical device identifier associated with the first logical device identifier to a system,
the second storage system being configured to provide the virtual storage system identifier associated with the second storage system identifier,
the system being configured to manage the virtual storage system identifier and the virtual logical device identifier for accessing data stored in the first logical device of the first storage system,
when the data stored in the first logical device of the first storage system is migrated to the second logical device of the second storage system,
the first storage system releases an association between the virtual logical device identifier and the first logical device identifier, and the second storage system associates the second logical device identifier and the virtual logical device identifier, and
the system accesses to the data in the second logical device of the second storage system using the virtual storage system identifier and the virtual logical device identifier.

US Pat. No. 10,140,044

EFFICIENT MEMORY BANK DESIGN

1. A memory, comprising:a first memory portion configured to store a first bit and generate a first data bit output, the first data bit output being a function of the first bit when a first read enable is active;
a second memory portion configured to store a second bit and generate a second data bit output, the second data bit output being a function of the second bit when a second read enable is active; and
a switch configured to select between the first and second bits for a read operation based on the first data bit output, the second data bit output, and internal feedback, wherein the first data bit output comprises a differential pair and wherein the switch is configured to select the first data bit output when the differential pair is complementary.

US Pat. No. 10,140,043

DIGITAL DATA SANITATION

1. A method for sanitizing a storage medium, the method comprising:determining, by a first device, an amount of free space on the storage medium;
writing, by the first device, a first file to the free space on the storage medium until the amount of free space on the storage medium decreases to a threshold amount, wherein a size of the first file is proportional to an aggressiveness setting associated with the sanitization of the storage medium;
providing, by the first device, an error indicating there is insufficient space to perform an additional write operation when the amount of free space decreases to the threshold amount; and
deleting, by the first device, the one or more first files from the free space on the storage medium to make the free space available for storage.

US Pat. No. 10,140,042

DETERMINISTIC READ DISTURB COUNTER-BASED DATA CHECKING FOR NAND FLASH

1. A data storage device comprising:a non-volatile semiconductor memory device configured to store data in a plurality of memory blocks; and
a solid-state drive (SSD) controller, communicatively coupled to the non-volatile semiconductor memory device, configured to periodically:
retrieve, from a counter table, a plurality of counts, wherein each count corresponds to a difference between a count limit and a number of read operations performed on one of the plurality of memory blocks;
select, based on the plurality of counts, a predetermined number of memory blocks corresponding to a plurality of lowest counts; and
determine, for each of the predetermined number of memory blocks, an integrity of the stored data in the memory block.

US Pat. No. 10,140,040

MEMORY DEVICE WITH DYNAMIC PROGRAM-VERIFY VOLTAGE CALIBRATION

1. A memory device, comprising:a memory array including a plurality of memory cells arranged in memory pages; and
a controller coupled to the memory array, the controller configured to:
determine a target profile including edge targets and middle targets, wherein each of the targets represent a program-verify target corresponding to a logic value for the memory cells,
determine a feedback measure based on errors corresponding to a read-level voltage, and
dynamically generate one or more updated targets based on changing one or more of the middle targets according to the feedback measure, wherein the updated target is generated by shifting the corresponding program-verify target by target adjustment values, wherein the target adjustment values are a complementary set of values with a zero sum.

US Pat. No. 10,140,039

I/O ALIGNMENT FOR CONTINUOUS REPLICATION IN A STORAGE SYSTEM

1. A method comprising:receiving a write request for a data set to be written to a production volume, the production volume including a plurality of addressable units that have a same size, the write request identifying a starting location in the production volume where the data set is to be written;
detecting whether the data set is aligned with the production volume based on the starting location identified by the write request and the size of the addressable units in the production volume;
when the data set is aligned with the production volume, copying the entire data set to a replication site associated with the production volume by using continuous replication; and
when the data set is not aligned with the production volume, copying at least a portion of the data set to the replication site associated with the production volume by using snapshot replication.

US Pat. No. 10,140,038

UTILIZATION OF A THIN PROVISION GRID STORAGE ARRAY

1. A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that executes to perform operations, the operations comprising:providing a plurality of slices, wherein each of the plurality of slices has partitions accessed with physical addresses;
providing a pool, wherein the pool has volumes accessed with logical addresses;
providing a mapping table that includes columns for a slice identifier, a partition identifier, and a volume identifier; and
while data is being written to the volumes in the pool,
allocating partitions of a first slice of the plurality of slices to the volumes in the pool; and
in response to determining that the first slice needs additional physical capacity, allocating an unused partition of a second slice to the first slice by:
identifying a row of the mapping table for the unused partition of the second slice; and
updating the row of the mapping table by changing the slice identifier to an identifier of the first slice and changing the partition identifier to a new partition identifier for the first slice.

US Pat. No. 10,140,037

PARTIAL SHARING OF SECONDARY STORAGE FILES IN A DATA STORAGE SYSTEM

1. A method of sharing a portion of a file in secondary storage, the method comprising:using one or more computing devices comprising computer hardware:
accessing index data associated with secondary copies of a plurality of files residing in a primary storage subsystem, the secondary copies stored in one or more secondary storage devices residing in a secondary storage subsystem;
based on the accessed index data, causing a graphical representation of a first file of the plurality of files to be displayed to a first user in a native view provided via a first client computing device of the first user residing in the primary storage subsystem, the first file corresponding to a first secondary copy stored in the one or more secondary storage devices;
receiving, from the first client computing device, a request to share a portion of the first file, wherein the request is based on selection of the portion of the first file by the first user from the native view;
in response to the request, generating a link to a selected portion of the first secondary copy corresponding to the selected portion of the first file; and
in response to activation of the link by a second user different from the first user, causing the selected portion of the first secondary copy to be restored for presentation to the second user, without causing the entire first secondary copy to be restored from the one or more secondary storage devices.

US Pat. No. 10,140,036

MULTI-PROCESSOR NON-VOLATILE MEMORY SYSTEM HAVING A LOCKLESS FLOW DATA PATH

1. A method for managing operations in a non-volatile memory system having a controller with a plurality of processors and a data path queue shared by the plurality of processors, the method comprising:a first processor of the plurality of processors in the controller inserting host command data for a received host command at a first entry location of the shared data path queue;
the first processor updating a first pointer to point to a next entry location adjacent to the first entry location in the shared data path queue after inserting the host command data at the first entry location;
a second processor of the plurality of processors in the controller accessing data in a different entry location in the shared data path queue, and executing an operation in the non-volatile memory system relating to the accessed data in the different entry location in the shared data path queue, concurrently with the first processor inserting the host command data at the first entry location;
when the first pointer is not pointing to a second next entry location in the shared data path queue immediately adjacent to the different entry location, the second processor updating a second pointer to point to the second next entry location;
when the first pointer is pointing to the second next entry location in the shared data path queue, the second processor waiting until the first pointer moves away from the second next data entry location before updating the second pointer to point to the second next entry location; and
updating data in the first entry location to include a physical storage location in a non-volatile memory of the non-volatile memory system.

1. A method for controlling a computer system comprising a storage system having a first storage subsystem and a second storage subsystem connected to the first storage subsystem, and a host computer connected to the first and second storage subsystems;each of the first storage subsystem and the second storage subsystem has a volume, and one or more storage devices, and is capable of receiving an input/output (I/O) command according to SCSI standards from a host computer; the method comprising:
managing an attribute information indicating at least one of a write order and whether write is enabled or not for each of a first volume in the first storage subsystem and a second volume in the second storage subsystem;
managing the first volume and the second volume as volumes in a pair relationship where write data from the host computer is written to both the first volume and the second volume;
configuring the host computer to access both the first volume and the second volume; and
on the condition that the first storage subsystem receives an I/O command to the first volume from the host computer, determining whether I/O to the first volume and the second volume are required or not based on the attribute information,
wherein
the first volume and the second volume have one of the following information as the attribute information: Mirror attribute, Local attribute or Remote attribute;
the first volume and the second volume have a second attribute information, which is one of the following information: P-VOL attribute indicating that the volume having that attribute should be update first, or S-VOL attribute indicating that the volume having that attribute should be updated second;
when the Mirror attribute is set as the attribute information to the first volume, processing designated by the I/O command is executed to the first volume and the second volume;
when the Local attribute is set as the attribute information to the first volume, processing designated by the I/O command is executed only to the first volume; and
when the Remote attribute is set as the attribute information to the first volume, processing designated by the I/O command is executed only to the second volume.

1. A method for managing data storage, the method comprising:identifying, by one or more computer processors, a plurality of first utilization values for data within a first data storage system, wherein the data includes a plurality of extents identified for storage among solid-state drives, and wherein the plurality of first utilization values corresponds to the plurality of extents included in the data, and wherein a utilization value is expressed as a quantity of write operations associated with an extent during a defined period of time;
identifying, by one or more computer processors, a plurality of first endurance values corresponding to a plurality of solid-state drives (SSDs) of a second data storage system, wherein the plurality of first endurance values correspond to an estimated remaining drive-writes per day (DWPD) for respective SSDs, based on an original DWPD value for an SSD having been reduced by a plurality of write operations;
transferring, by one or more computer processors, the data from the first data storage system to the second data storage system; and
storing, by one or more computer processors, the plurality of extents of the transferred data among the plurality of SSDs based, at least in part on, a combination of first utilization values corresponding to transferred extents and the plurality of identified first endurance values corresponding to the plurality of SSDs of the second data storage system, wherein storing the plurality of extents further comprises:
assigning, by one or more computer processors, one or more extents of the plurality of extents to a first SSD of the plurality of SSDs; and
storing, by one or more computer processors, an entirety of the respective one or more extents assigned to the first SSD.

US Pat. No. 10,140,033

APPARATUS, SYSTEM, AND METHOD FOR SEARCHING COMPRESSED DATA

1. A storage system for rapidly searching compressed data, comprising:a non-volatile, non-transitory computer-readable medium; and
a controller that receives a store command for a set of uncompressed storage data from a host computer processor via a host system memory controller and a search command for a set of uncompressed search data from the host computer processor via a north/south bridge, having:
an internal compression engine that reproducibly:
(a) selects a compression table from a group of compression tables as a function of a data type of the set of uncompressed storage data, and
(b) compresses the set of uncompressed storage data using the compression table to generate compressed storage data that is stored on the computer-readable medium and that reproducibly compresses the set of uncompressed search data to generate a set of compressed search key data, and
(c) stores the compressed storage data on a storage unit;
an internal search engine that matches the set of compressed search key data against the compressed storage data stored on the storage unit to return a set of memory location addresses in the compressed storage data that directly match the set of compressed search key data; and
an internal location engine that transmits the set of memory location addresses to the host computer processor in response to the search command,
wherein the north/south bridge is coupled to the host computer processor and the non-volatile, non-transitory computer-readable medium.

1. An apparatus comprising:a storage system comprising at least first and second storage tiers each comprising a plurality of storage devices;
the storage system implementing at least one configurable data mover module adapted to interact with the first and second storage tiers and comprising at least one power management configuration file;
wherein the data mover module alters a manner in which data is moved between the first and second storage tiers based at least in part on a change in state of the power management configuration file;
wherein the data mover module is configurable in at least first and second different modes of operation involving respective first and second different manners of moving data between the first and second storage tiers by storing respective first and second different sets of information in the power management configuration file; and
wherein the first mode of operation utilizes at least one of a different data transfer bandwidth and a different number of threads than the second mode of operation.

US Pat. No. 10,140,031

HIERARCHICAL FLASH TRANSLATION LAYER STRUCTURE AND METHOD FOR DESIGNING THE SAME

1. A Flash Translation Layer (FTL) structure including mapping information for storing data, comprising:a plurality of hierarchical data groups including a zeroth-layer host data group, and first-layer to nth-layer metadata groups; and
zeroth to nth logs configured in a hierarchical structure in correspondence with the respective hierarchical data groups, for processing data of the corresponding data groups,
wherein a kth log (0?k?n) provides an interface to volatile memory resources dividedly allocated to the kth log, an interface to non-volatile memory resources dividedly allocated to the kth log, and an interface to at least one of (k?1)th and (k+1)th logs.

US Pat. No. 10,140,030

DYNAMIC MODULATION OF CACHE MEMORY

1. A method comprising:migrating, by one or more processors, an amount of cloud data from a non-volatile memory to a volatile cache memory;
partitioning, by the one or more processors, the amount of cloud data into a plurality of objects of a size that ranges from 256 kilobytes to 10 megabytes;
analyzing, by the one or more processors, the plurality of objects for input/output performance over a time period;
migrating, by the one or more processors, a first portion of the plurality of objects back to the non-volatile memory, wherein the first portion of the plurality of objects exhibit a first input/output performance lower than a first threshold value, wherein the first portion of the plurality of objects that exhibits the first input/output performance lower than the first threshold value is migrated back to the non-volatile memory to accommodate migration of unanalyzed cloud data from the non-volatile memory to the volatile cache memory;
determining, by the one or more processors, if there is unanalyzed cloud data in the non-volatile memory, wherein the unanalyzed cloud data is cloud data that has not been analyzed for input/output performance while in volatile cache memory; and
in response to determining that there is unanalyzed cloud data in the non-volatile memory, migrating the unanalyzed cloud data to the volatile cache memory for analysis.

US Pat. No. 10,140,029

METHOD AND APPARATUS FOR ADAPTIVELY MANAGING DATA IN A MEMORY BASED FILE SYSTEM

1. A method, comprising:maintaining by a processor executable, memory mapped file system a first data structure at a persistent memory having a plurality of memory pages that have been requested only once recently and a second data structure having a plurality of memory pages that have been requested more than once; wherein both the first data structure and the second data structure represent a sequence having a head and a tail;
moving by the file system, a page of the second data structure to a head of the second data structure, after the page is requested, and when the page is not requested, the page is moved towards a tail of the second data structure;
adding by the file system, a newly requested page to a head of the first data structure and then moving the newly requested page towards a tail of the first data structure, as other requested memory pages are added at the head of the first data structure;
transferring by the file system, any memory page from the first data structure to the head of the second data structure that has been requested more than once;
removing by the file system a memory page from one or both of the first data structure and the second data structure, when a free pool of pages does not have any available free memory page for any newly requested memory page; wherein memory page removal from the first data structure and the second data structure is based on one of a random policy and a round-robin policy; and wherein when any transparent page is removed from the second data structure, a transparent flag is set to protect the any removed transparent page.

US Pat. No. 10,140,027

DATA TRANSFERS WITH ADAPTIVELY ADJUSTED POLLING TIMES

1. An apparatus comprising:a memory module comprising a non-volatile memory (NVM) and a memory module electronics (MME) circuit configured to program data to and read data from solid-state non-volatile memory cells of the NVM; and
a controller circuit adapted to communicate, to the memory module, a first command comprising a selected address within the NVM and a selected action to be taken by the MME circuit in relation to the selected address, the controller circuit further adapted to subsequently communicate, to the memory module, a second command comprising a status request associated with completion of the first command at a conclusion of a variable delay time interval, the variable delay time interval selected responsive to an accumulated count of status requests previously communicated, by the controller circuit to the memory module, for previous commands associated with the selected address issued prior to the communication of the first command.

US Pat. No. 10,140,026

DATA STORAGE DEVICE AND DATA MAINTENANCE METHOD THEREOF

1. A data storage device, comprising:a flash memory, comprising a plurality of blocks, each of blocks has a plurality of pages, each of the pages has a logical address and a physical address, the flash memory has a data mapping table arranged to record a plurality of mapping relationships between the logical addresses and the physical addresses, the data mapping table is divided into a plurality of data mapping sets, each of the data mapping sets has at least two of the mapping relationships, and each of the data mapping sets corresponds to a set index;
a random access memory, having a cache area, a sequential-order table, a reverse-order table and a cache-area mapping table, wherein the cache area has a plurality of sectors arranged to store part of the data mapping sets of the data mapping table, the cache-area mapping table has a plurality of sector-mapping columns arranged to record the set indexes of the data mapping sets of the cache area, the sequential-order table is arranged to record the order that the data mapping sets are read from the cache area, and the reverse-order table is arranged to record the opposite order that the data mapping sets are read from the cache area; and
further comprising a controller locating a first data mapping set of a first mapping relationship comprising the page indicated by a read command or a write command, and determining whether the first data mapping set has been uploaded into the cache area according to whether the cache-area mapping table has a first set index of the first data mapping set, wherein the first data mapping set is one of the data mapping sets, the first set index is one of the set indexes, and the first mapping relationship is one of the mapping relationships;
wherein each of the sectors corresponds sequentially to a plurality of common indexes, the sector-mapping columns of the cache-area mapping table correspond sequentially to the sectors of the cache area, the sequential-order table has a plurality of sequential-order columns corresponding sequentially to the sectors of the cache area, the reverse-order table has a plurality of reverse-order columns corresponding sequentially to the sectors of the cache area, and each of the sectors and the sector-mapping column, the sequential-order column, the reverse-order column have the same common index with the corresponding sector.

US Pat. No. 10,140,025

MEMORY SYSTEM INCLUDING MEMORY CONTROLLER AND OPERATION METHOD THEREOF

1. A memory system comprising:a memory device suitable for storing data requested from a host; and
a controller including a detection unit enabled in response to a select signal and suitable for detecting a data size;
an address generation unit suitable for generating an internal address based on an address received from the host, based on the select signal or a detection result of the detection unit; and
an ECC processing unit including an ECC selector suitable for selecting whether to perform an ECC operation, in response to the select signal;
an ECC data generator suitable for generating a parity data of the data by performing the ECC operation in response to an output of the ECC selector; and
an ECC data corrector suitable for detecting and correcting an error of the data based on the parity data by performing the ECC operation in response to the output of the ECC selector,
wherein the controller operates in a first operation mode or a second operation mode in response to the select signal which is set during an initial operation of the memory system, and
wherein the controller is suitable for generating information on the data and transmitting/receiving the data and the information to/from the memory device through first and second data buses, respectively, during the first operation mode, and for transmitting/receiving the data to/from the memory device through one of the first and second data buses based on the data size, during the second operation mode.

US Pat. No. 10,140,024

DATA STORAGE DEVICE AND DATA READING METHOD THEREOF

11. A data storage device, comprising:a flash memory;
a random access memory; and
a controller, receiving a plurality of read commands from a host to constitute a command queue, and determining an order for execution of the read commands, wherein a data sector indicated by one of the read commands requires one of a plurality of mapping tables to be located, and the read commands correspond to a plurality of read tasks, and each of the read commands is arranged to prepare one of the read tasks that is arranged to transmit the indicated data sector to the host,
wherein the controller selects a first read command where the mapping table required by the first read command has already been loaded on the random access memory from the read commands to be the first of the read tasks executed,
wherein remaining read commands other than the first read command in the read commands in the command queue are prioritized based on whether one of the mapping tables required by one of the remaining read commands is loaded on the random access memory, and one of the remaining read commands that requires one of the mapping tables having not been loaded on the random access memory has a higher priority than another one of the remaining read commands that requires one of the mapping tables having already been loaded on the random access memory.

US Pat. No. 10,140,023

MEMORY DEVICE AND MEMORY SYSTEM INCLUDING THE SAME

1. A memory device comprising:memory groups configured to store data; and
a boosting interface configured to transfer the data by determining a transfer path of the data based on a command and an access address received from a memory controller, the boosting interface comprising a buffer and a reconfigurable input decoder in which a program command is programmed based on a command set mode and an input-output set mode received from the memory controller, wherein:
the reconfigurable input decoder instructs the buffer to communicate the data between the memory groups and the memory controller in response to determining that the program command, which is programmed in the reconfigurable input decoder, corresponds to the command received from the memory controller, and
the reconfigurable input decoder includes:
a write command decoder in which a write command of the program command is programmed when the input-output set mode is an input mode, and
a read command decoder in which a read command of the program command is programmed when the input-output set mode is an output mode.

US Pat. No. 10,140,022

METHOD AND APPARATUS OF SUBSIDIARY VOLUME MANAGEMENT

1. A storage system comprising:a memory being operable to store information of a plurality of logical unit groups, each of the plurality of logical unit groups including an administrative logical unit (LU) and one or more subsidiary LUs to be accessed from a virtual machine on a computer; and
a controller being operable to create or select an administrative LU, upon receiving a bind command from the computer to bind a subsidiary LU to another administrative LU, according to evaluation of binding the subsidiary LU to said another administrative LU, to bind the subsidiary LU to the created or selected administrative LU instead, to move the subsidiary LU to the logical unit group to which the created or selected administrative LU belongs, and to inform the computer of binding the subsidiary LU to the created or selected administrative LU;
wherein binding the subsidiary LU to the created or selected administrative LU does not permit the subsidiary LU to be moved from the logical unit group to which the created or selected administrative LU belongs without unbinding the subsidiary LU from the created or selected administrative LU; and
wherein moving the subsidiary LU to the logical unit group to which the created or selected administrative LU belongs includes migrating data of the subsidiary LU to the logical unit group.

US Pat. No. 10,140,021

ADAPTIVE DATA-PARTITIONING MODEL THAT RESPONDS TO OBSERVED WORKLOAD

1. A method comprising:using by a processor, a hierarchical partitioning model in a first configuration comprising of a coarse partition level and an associated fine partition level for storing and retrieving data from a plurality of storage devices of a networked storage system, wherein the coarse partition level and the fine partition level include a number of partitions, each partition associated with a processor executable thread; wherein the number of partitions for each level are based on a number of different objects mapped to each partition level and accessed by a plurality of threads in parallel;
identifying by the processor, a real-time data access pattern for the different objects mapped to the coarse partition level and the fine partition level for a plurality of workloads;
determining by the processor that parallelism among the plurality of threads can be increased by modifying the first configuration for the plurality of workloads; and
dynamically updating by the processor, one or both of the coarse partition and the fine partition levels for a second configuration for providing parallel access to the plurality of threads to the different objects, in response to determining increase in parallelism.

US Pat. No. 10,140,019

INFORMATION PROCESSING APPARATUS AND INFORMATION PROCESSING METHOD FOR DISPLAY OF PLURALITY OF IMAGES BASED ON USER OPERATION

1. An information processing apparatus, comprising:a display screen configured to display an image; and
at least one processor configured to:
acquire an input signal generated based on a user input operation on an input field in the displayed image;
specify, based on the acquired input signal, a first position in the displayed image,
wherein the specified first position corresponds to the input field in the displayed image;
control, based on the user input operation, the display screen to superimpose a selection image at a second position on the displayed image,
wherein the superimposed selection image comprises a plurality of data elements that are classified into a plurality of categories, and
wherein at least one data element of the plurality of data elements is an input for the input field, and
wherein display of the input field is occluded by the superimposed selection image;
detect a drag operation corresponding to the at least one data element of the plurality of data elements,
wherein the drag operation includes a first movement of the at least one data element of the plurality of data elements and a second movement of the at least one data element of the plurality of data elements,
wherein the second movement is subsequent to the first movement, and
wherein the first movement and the second movement are in opposite directions; and
control, based on the detected drag operation, the display screen to update position of the superimposed selection image from the second position to a third position on the displayed image, such that the superimposed selection image displayed at the third position and the input field are non-overlapping.

US Pat. No. 10,140,018

FLEXIBLE DEVICE

1. A flexible electronic device comprising:a main body;
a flexible display fixed to a first face of the main body;
an auxiliary device disposed on a first region of a second face of the main body that is opposite to the first face; and
a cover coupled to the second face to be movable while facing the second face of the main body, the cover including an area for covering the whole of the second face of the main body,
wherein the cover is movable when the main body is curved, bent, or folded, and
wherein the auxiliary device is closed by the cover in a state where the flexible device is unfolded, and the auxiliary device is opened in a state where the flexible device is folded.

US Pat. No. 10,140,017

GRAPHICAL KEYBOARD APPLICATION WITH INTEGRATED SEARCH

1. A method comprising:outputting, by a first application executing at a computing device, a graphical user interface including a text edit region that includes uncommitted text input, and an output region that includes committed text input:
invoking, by the first application, a keyboard application executing at the computing device to provide a graphical keyboard within the graphical user interface;
outputting, by the keyboard application, for display adjacent to the text edit and output regions of the graphical user interface, the graphical keyboard, wherein the graphical keyboard includes a plurality of character keys, a word suggestion region and a search element, wherein the word suggestion region and the search element are each positioned above the plurality of character keys and below the text edit and output regions, wherein the word suggestion region includes a plurality of word suggestions based on the uncommitted text input displayed by the text edit region;
receiving, by the keyboard application, an indication of a selection of the search element;
responsive to receiving the indication of the selection of the search element, outputting, by the keyboard application, for display within the graphical keyboard, adjacent to the text edit and output regions of the graphical user interface, and in place of the word suggestion region, a query suggestion region including one or more suggested search queries;
while outputting the query suggestion region for display, receiving, by the keyboard application, an indication of a selection of one or more character keys from the plurality of character keys;
outputting, by the keyboard application, for display within the graphical keyboard, adjacent to the text edit and output regions of the graphical user interface, and in place of the query suggestion region, an updated query suggestion region including one or more characters selected in response to the selection of the one or more character keys;
determining, by the keyboard application, based on the one or more characters, one or more updated suggested search queries;
outputting, by the keyboard application, for display, the one or more updated suggested search queries in the updated query suggestion region;
receiving, by the keyboard application, an indication of a selection of one of one or more updated suggested search queries, the one of the one or more updated suggested search queries being a selected search query;
invoking, by the keyboard application and based on the selected search query, a search;
responsive to invoking the search, receiving, by the keyboard application, search results; and
outputting, by the keyboard application, for display within the graphical keyboard, adjacent to the text edit and output regions of the graphical user interface, and in place of a portion, but not all, of the plurality of character keys, a graphical indication of at least a portion of the search results.

1. An information processing device comprising:a display apparatus configured to display a graphical user interface;
an input apparatus superposed on the display apparatus, the input apparatus including a plurality of first electrodes arranged along a first direction and a plurality of second electrodes arranged along a second direction different than the first direction, the first electrode is arranged to overlap a plurality of the second electrodes;
a transmitter connected to the first electrodes and configured to supply first signals to at least one of the first electrodes sequentially in a scanning manner;
a receiver connected to the second electrodes and configured to receive a second signal from at least one of the second electrodes, the second signal is altered according to a distance between an object and an intersection of a scanned first electrode and the second electrodes; and
a central processing unit configured to execute an authentication procedure including a password input.

US Pat. No. 10,140,015

MOBILE DEVICE CAMERA VIEWFINDER PUNCH THROUGH EFFECT

1. A mobile device comprising:a memory storing an application;
an embedded camera;
a touchscreen display; and
one or more processors coupled with the memory, the embedded camera and the touchscreen display, wherein the one or more processors are configured to:
execute the application, causing generation of application graphical output in an application layer;
generate a viewfinder layer, the viewfinder layer containing real-time image data from the embedded camera;
apply a transparency mask that identifies a first portion of the touchscreen display to display the application layer and a second portion of the touchscreen display to display the viewfinder layer;
render a composite of the application layer and the viewfinder layer, wherein when the composite is rendered, a portion of the viewfinder layer and a portion of the application layer are separately visible on different portions of the touchscreen display, in accordance with the transparency mask;
detect a gesture by a user of the mobile device; and
in response to the detection of the gesture, capture viewfinder data from the viewfinder layer and remove the viewfinder layer, rendering the application layer on the touchscreen display without the viewfinder layer.

US Pat. No. 10,140,014

METHOD AND TERMINAL FOR ACTIVATING APPLICATION BASED ON HANDWRITING INPUT

1. A method for controlling an application based on a handwriting input, the method comprising:displaying a first screen on a touch screen display of a terminal;
determining an occurrence of a communication event associated with an application, the communication event occurring while displaying the first screen;
displaying a notification indicating the communication event on the touch screen display in response to the determination while displaying the first screen;
activating, in response to the determination, a handwriting recognition module to recognize a handwriting input to be associated with the application when displaying the notification;
receiving the handwriting input on the touch screen display of the terminal;
recognizing the handwriting input received on the touch screen display of the terminal;
determining a symbol corresponding to the handwriting input;
associating the symbol with a function of the application; and
processing the associated symbol through the application.

US Pat. No. 10,140,013

METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR CALCULATING A VIRTUAL TOUCH POSITION

1. A method comprising:receiving an indication of a first swiping gesture having a gesture trajectory in a first direction:
determining that the first swiping gesture across a physical touch screen display has reached a position on the physical touch screen display within a predetermined threshold distance of an edge of the physical touch screen display in the first direction;
receiving an indication of an extended swiping gesture on the physical touch screen display between the threshold distance and the edge of the physical touch screen display that is a continuation of the first swiping gesture extending a first distance within an area between the threshold distance and an edge of the physical touch screen display in a direction different from the gesture trajectory in the first direction;
wherein the extended swiping gesture changes direction while remaining within the threshold distance of the edge of the physical touch screen display
in response to receiving the indication of the extended swiping gesture, calculating, with a processor, a virtual touch position that is off the physical touch screen display in the first direction;
wherein the virtual touch position is calculated based on the gesture trajectory in the first direction and the first distance of the extended swiping gesture.

US Pat. No. 10,140,012

INPUT IDENTIFICATION METHOD AND INPUT APPARATUS

1. An input identification method applied to an input apparatus having a touch module, comprising:during a collection of a touch track of fingers on the touch module, when a first partial track of the touch track satisfies a first preset condition, obtaining a first command corresponding to the first partial track;
executing the first command;
during the collection of the touch track, when a second partial track continuously following the first partial track satisfies a second preset condition, obtaining a second command corresponding to the second partial track; and
executing the second command, wherein the first command represents adjusting a degree or amount of a parameter of the input apparatus to be more or less, and compared with the first command, the second command represents adjusting a degree or an amount of the same parameter of the input apparatus to be further more or further less, the first partial track comprises a first operation and a second operation, and the second operation has a first included angle that is not equal to zero degree with respect to the first operation; the second partial track comprises a third operation, and the third operation has a second included angle that is not equal to zero degree with respect to the second operation,
wherein when the second command is executed, a continuous response is made to the third operation after identification of the third operation and before the completion of the third operation, only if the fingers do not move away from the touch module, and the parameter is a volume of input apparatus, the first command represents a start-up of volume increase or volume decrease, the second command represents a control of continuously increasing or decreasing volume, and
wherein when a direction of the first operation is a first non-horizontal direction, a direction of the second operation is a first direction of a horizontal line, the first command represents the start-up of volume increase, and when the direction of the first operation is a second non-horizontal direction, the direction of the second operation is a second direction of a horizontal line, the first command represents the start-up of volume decrease, the first direction of the horizontal line is opposite to the second direction of the horizontal line so that the volume increase and volume decrease can be quickly identified.

US Pat. No. 10,140,011

TOUCH INTELLIGENT TARGETING

1. A method of determining a targeted point shown on a display based on a user input, the method comprising:receiving an indication of at least one point selected from among a plurality of points within a portion of the display, an indication of a width, and an indication of a height;
estimating a portion of the display based on the indication of the at least one point, the indication of the width, and the indication of the height;
determining that at least a portion of one or more objects is located within the estimated portion of the display;
determining the targeted point of the one or more objects based on a location of the at least one point and the portion of the one or more objects within the estimated portion of the display,
wherein, when two or more objects are located within the estimated portion of display and a second object encompasses a greater portion within the estimated portion of the display than a portion of the first object within the estimated portion of the display, determining the targeted point is at the first object and not the second object comprises determining that the at least one point is located within the first object and determining that the second object does not contain the at least one point;
determining an offset between the at least one point and the targeted point of the one or more objects,
wherein the offset represents a distance between the at least one point and the targeted point of the one or more objects;
receiving an indication of a change in the location of the at least one point; and
changing a size or location of the one or more objects such that the offset between the at least one point and the targeted point of the one or more objects is maintained.

US Pat. No. 10,140,010

MOVING AN OBJECT BY DRAG OPERATION ON A TOUCH PANEL

1. A method for moving an object displayed with a feeling of depth on a three-dimensional (3-D) display by an information processing apparatus connected to a 3-D touch panel capable of data communication therewith, comprising:detecting a contact state of a finger with respect to a first displayed object;
in response to detecting a double-click operation on the first displayed object at a first position in a depthwise direction, moving the first displayed object onto a surface of a display screen of the 3-D display; and
in response to detecting that the finger has moved from the contact state to a proximity state with respect to the first displayed object, changing a display position of the first displayed object from the surface of the display screen to a depth position at which a second object is displayed at a nearest side in the depthwise direction among displayed objects and where the second object remains displayed at the depth position beside the first displayed object, and in further response to detecting that the finger has moved from the proximity state to the contact state with respect to the first displayed object, changing the depth position at which the first object and the second object are displayed by a same amount of depth movement to the surface of the display screen.

US Pat. No. 10,140,009

GESTURE DETECTION ON A DISPLAY DEVICE

1. An electronic apparatus, comprising:a display unit; and
an input apparatus configured to detect a gesture on the display unit, wherein the display unit is configured to:
switch display of pages in a first tab from a first page to a second page on the display unit based on the detection of the gesture that is a drag operation in a first direction;
switch the display of the pages in the first tab from the first page to a third page on the display unit based on the detection of the gesture that is the drag operation in a second direction,
wherein the first page, the second page and the third page of the first tab are web pages, wherein the second page and the third page are associated with a browsing history of the first page, and wherein the second page has been visited before the first page in the browsing history, and the third page has been visited after the first page in the browsing history; and
switch from the first tab to a second tab on the display unit based on an angle between one of the first direction or the second direction of the drag operation and at least one of a left-hand direction, a right-hand direction, a downward direction, or an upward direction that is greater than a threshold angle.

US Pat. No. 10,140,008

MECHANICAL RATCHET SYSTEM FOR A KNOB

1. A knob for an input device, the knob comprising:a knob housing being rotatable on an axis;
a shaft coupled to and extending from the knob housing along the axis;
a ratchet wheel axially coupled to the shaft and including a toothed perimeter;
a resistance wheel axially coupled to the shaft and including a smooth perimeter,
wherein the ratchet wheel and the resistance wheel are rotatable on the axis in correspondence with a rotation of the knob housing; and
a biasing mechanism including:
a first end coupled to a roller, wherein the biasing mechanism provides a first force causing the roller on the first end to engage with the toothed perimeter of the ratchet wheel such that a ratcheted rotation occurs when the knob housing is rotated; and
a second end, wherein the biasing mechanism provides a second force causing the second end to engage with the smooth perimeter of the resistance wheel such that a friction is provided when the knob housing is rotated.

US Pat. No. 10,140,007

SMART AUDIENCE PICKER

1. A computer-implemented method, comprising:displaying, to a source user, a user interface for social network communication with target users, wherein the user interface comprises a slider for selecting target users;
receiving, from the source user, an interaction with the slider that causes an indicator of the slider to move from a first position to a second position, wherein the first position corresponds to a first set of target users and the second position corresponds to a second set of target users, and wherein the first set and second set have different numbers of target users;
in response to receiving the interaction with the slider:
identifying the second set of target users based, at least in part, on a threshold on a quantifiable measure of a relationship between the source user and selected target users of a third set of target users, wherein the threshold is determined in accordance with the second position; and
displaying an indication of at least one target user that is included in the second set and excluded from the first set; and
in response to receiving a confirmation from the source user, authorizing the social network communication between the source user and the second set of target users.

US Pat. No. 10,140,006

METHOD FOR CONTROLLING INFORMATION APPARATUS

1. A method for controlling an information apparatus, the information apparatus having a touch panel display and being connected to a network, an electric shutter device being controlled over the network, the electric shutter device being capable of opening and closing a shutter through a remote operation,the method causing a processor of the information apparatus to:
display an operation icon on a display screen of the information apparatus, the operation icon causing an operation screen for the electric shutter device to be displayed;
display the operation screen for the electric shutter device when selection of the operation icon is sensed, the operation screen including a shutter image representing the shutter of the electric shutter device;
when a swipe operation is sensed on the operation screen, output to the network a movement control command for moving the shutter of the electric shutter device in a swipe direction of the swipe operation, wherein
movement of the shutter represented in the shutter image results in a changed representation of an object hidden by the shutter represented in the shutter image when the shutter image is in a closed position.

US Pat. No. 10,140,005

CAUSING ELEMENTS TO BE DISPLAYED

1. An apparatus comprising:at least one processor and at least one memory,
the apparatus configured to display a first element associated with media content, the media content comprising at least video content,
the memory comprising computer-readable code stored therein which when executed causes the at least one processor to:
cause a plurality of second elements to be displayed in response to detection of a touch input at the first element displayed by the apparatus, wherein each second element is associated with a different part of the media content associated with the first element, and wherein each second element comprises a different key frame of the media content;
edit one or more of the second elements in response to an action, wherein the action comprises a sliding touch input in relation to one of the plurality of second elements, and wherein the edit comprises increasing or decreasing a number of the one or more second elements based, at least partially, on a length of the sliding touch input; and
create, in response to the edit of the one or more second elements, a new video based on the media content associated with the edited one or more second elements, wherein a length of the new video is based on the increased or decreased number of the one or more second elements.

US Pat. No. 10,140,004

DISPLAYING VISUAL ELEMENTS ON A MEDICAL DEVICE

1. A medical system comprising:a medical device;
a display for displaying a plurality of visual elements, wherein said plurality of visual elements are associated with functions of said medical device;
a plurality of visual profiles for facilitating control of a visual appearance of said plurality of visual elements displayed on said display; and
a visual profile selector for automatically selecting at least one of said plurality of visual profiles in accordance with one or more rules, said one or more rules based on one or more states of said medical device and providing for the automatic selection of said at least one visual profile when said one or more states are satisfied, said one or more states relating to at least one of an operating parameter associated with a treatment provided by said medical device and a care area associated with said medical device,
wherein said visual profile selector selects a first visual profile from said plurality of visual profiles when said medical device is in a first state and selects a second visual profile from said plurality of visual profiles when said medical device is in a second state, and
wherein said plurality of visual elements are selected from a group consisting of: text, a text color, a title bar, title bar text, a title bar background, a button border color, a button text color, a button color, a selected button text color, a selected button color, a work flow, one or more input fields, a graphical library, one or more textures, one or more background images, and one or more grayscale patterns.

US Pat. No. 10,140,003

SIMULTANEOUS ZOOM IN WINDOWS ON A TOUCH SENSITIVE DEVICE

1. A method for viewing user content on a touch sensitive display screen of a touch sensitive device by using a touch input device, the method comprising:zooming into a first portion of the user content by touching the display screen in a proximity of the first portion using the touch input device while retaining an original zoom size of a first remaining portion of the user content;
zooming into a second portion of the user content from the first remaining portion by touching the display screen in a proximity of the second portion using the touch input device while retaining a zoomed in first portion and an original zoom size of a second remaining portion of the first remaining portion; and
displaying a value of an internal touch counter as a window level number, in response to the zooming into each of the first and the second portions, when the internal touch counter is greater than one.

1. An information processing apparatus comprising:circuitry configured to
control a user interface to display a plurality of objects including a first object;
detect a first input and a second input received at the user interface, wherein the first input is detected at a first position at which the first object is displayed and the second input is detected at a second position in which the first object is not displayed;
determine whether a third input and at least one subsequent input that is performed discretely from the third input are received at the user interface and if so, a number of times the third input and the at least one subsequent input are received; and
perform a predetermined operation corresponding to the displayed first object based on a relative relation of the first input and the second input and on whether the third input and the at least one subsequent input are received and the number of times the third input and the at least one subsequent input are received, irrespective of a location at which the third input and the at least one substantive input are received, the predetermined operation comprising a change in an overlap state among the plurality of objects,
wherein the third input and the at least one subsequent input are performed discretely from one another, and wherein each of the third input and the at least one subsequent input is a tap input received at a single one of said locations on the user interface.

US Pat. No. 10,140,001

CONFIGURABLE ELECTRONIC COMMUNICATION ELEMENT

1. A method comprising:detecting a single user input received via a graphical user interface;
presenting, within the graphical user interface, a communication element in response to the detected single user input;
configuring, by at least one processor, the communication element based on a continued detection of the detected single user input, wherein configuring the communication element comprises applying an animation effect to the communication element that animates a configuration change of the communication element during the continued detection of the single user input, wherein a duration of the continued detection of the single user input associates the animation effect with the communication element for presentation to a recipient of the communication element; and
in response to detecting an ending of the single user input, sending the configured communication element within an electronic communication to a recipient client device, wherein the electronic communication causes the recipient client device to present the animation effect that animates the configuration change of the communication element on the recipient client device.

US Pat. No. 10,140,000

MULTISCALE THREE-DIMENSIONAL ORIENTATION

1. A computer-implemented method for generating a navigation graphical user interface (GUI) for navigating a three-dimensional (3D) environment associated with a multiscale 3D dataset, the method comprising:receiving a current position within the 3D environment, wherein a visible portion of the 3D environment is rendered for display based on a perspective from the current position, and a first group of 3D objects is located within a non-visible portion of the 3D environment; and
causing both a directional object indicator and a first 3D thumbnail image representing the first group of 3D objects to be displayed within the visible portion of the 3D environment, wherein the directional object indicator indicates a direction in which the first group of 3D objects is located relative to the current position, and the first 3D thumbnail image representing the first group of 3D objects is displayed proximate to the directional object indicator,
wherein the first group of 3D objects includes 3D objects selected based on at least one of:
an angular distance between the 3D objects from the perspective from the current position being less than a first angular threshold, and
linear distances between the current position and each 3D object included in the group of 3D objects being within a first linear threshold of each other.

US Pat. No. 10,139,999

FANTASY SPORTS CONTEST HIGHLIGHT SEGMENTS SYSTEMS AND METHODS

1. A method for providing a highlight segment to a user of a fantasy sports contest application, the method comprising:accessing, using control circuitry, fantasy sports contest information associated with a user from a database, wherein the fantasy sports contest information comprises a fantasy roster containing names of real-life athletes selected by the user;
obtaining, via a network, media content of a media asset relating to a fantasy sports contest from a content provider;
determining, in real time, whether an event from the media asset relating to the fantasy sports contest contributed to the user's fantasy sports score;
in response to determining that the event from the media asset relating to the fantasy sports contest contributed to the user's fantasy sports score, generating, using the control circuitry, a footage portion from the media asset as a newly available highlight segment depicting the event that contributed to the user's fantasy sports score and associated with at least one of the real-life athletes selected by the user;
alerting the user, using the control circuitry, that the newly available highlight segment has become available for viewing;
receiving, using the control circuitry, a user input to view the newly available highlight segment; and
generating for display, using the control circuitry, the newly available highlight segment.

US Pat. No. 10,139,998

USER INTERFACE FOR EDITING WEB CONTENT

1. A non-transitory computer-readable storage medium comprising instructions for providing a user interface for creating and editing a web page on a mobile client device having a processor, the instructions when executed causing the processor to:receive a request to create a web page from a user of the mobile client device;
provide, for viewing on a display of the mobile client device, a user interface for selecting a web page template, the user interface comprising a plurality of web page templates for selection by the user;
receive a user selection of one of the plurality of web page templates;
detect an orientation of the mobile client device;
provide a user interface for editing the web page according to the selected web page template and the detected orientation, the user interface including a preview of the web page, wherein the web page comprises:
two cells, the two cells displayed as a column when the display is in a portrait mode and a first row when the display is in a landscape mode, and
a third cell, the third cell displayed below the two cells as part of the column when the display is in the portrait mode and as part of a second row below the first row when the display is in the landscape mode;
determine display characteristics of the display of the mobile client device, the display characteristics indicating whether the display is in the portrait mode or the landscape mode;
receive a first touch gesture on a touchscreen of the mobile client device to move the third cell to a first new position on the web page, the first new position being adjacent to the two cells, the touchscreen including the display and a touch-sensitive surface; and
display a cell configuration indicator indicating that the two cells adjacent to the first new position have a special arrangement that is displayed as the column when the display is in the portrait mode and is displayed as the first row when the display is in the landscape mode, the cell configuration indicator further indicating that moving the third cell to the first new position will add the third cell to the special arrangement.

US Pat. No. 10,139,997

STATISTICS TIME CHART INTERFACE CELL MODE DRILL DOWN

1. A method, comprising:causing display of a first interface in a table format that includes:
one or more columns, each column having a column heading representing a different value, each different value associated with a particular event field, and a first value is represented in the column heading of a first column of the one or more columns;
one or more rows, each row comprising at least a first cell and a second cell that is associated with the first column, the first cell of each of the one or more rows displaying a time increment and the second cell of each of the one or more rows displaying an aggregated metric representing a number of events, wherein each event contributing to the number of events has a field-value pair that matches the first value represented in the first column and occurred within the time increment displayed in the first cell;
in response to a user selection of a second cell of a first row of the one or more rows, causing emphasis of the second cell of the first row, wherein a first cell of the first row displays a first time increment; and
causing display of a menu of options corresponding to the emphasis of the second cell of the first row, wherein a selection of an option in the menu causes transition to a second interface displaying at least one event determined based on an association with a time that has a defined relationship to the first time increment and another association with the first value.

1. A computer-implemented method, comprising:at a server computer, comprising a processor and memory:
associating a first user, who is currently online and active, with a first physical location of a first plurality of physical locations by determining that a client device associated with the first user is within a predetermined physical distance or an estimated driving time of the first physical location;
identifying a plurality of other users, who are currently online and active, that have currently selected the first physical location as one of a respective second plurality of physical locations;
sending information about at least some of the plurality of other users to a client device associated with the first user, wherein the information includes an identity of a second user in the plurality of other users, and wherein the second user has selected the first physical location using a graphical user interface that includes the first physical location and that is displayed on a client device associated with the second user;
receiving, from the client device associated with the first user, a selection of the second user from the plurality of other users, wherein the selection of the second user from the plurality of other users is based at least in part on a number of common physical locations between the first plurality of physical locations and the respective second plurality of physical locations, wherein the number is at least two and includes the first physical location;
identifying, responsive to the selection of the second user, a third user who is online and active, wherein the third user is associated with the first user and wherein the third user is associated with the second user;
sending information about the third user to the client device associated with the first user to provide an indication to the first user that the first user may be introduced to the second user through the third user; and
facilitating online communication between the client device associated with the first user, the client device associated with the second user, and a client device associated with the third user responsive to a request from the client device associated with the first user to the client device associated with the third user to be introduced by the third user to the second user, while the second user has still selected the first physical location.

1. A graphical user interface (GUI) on a computer with a display, a memory, and one or more processors to execute one or more programs stored in the memory to implement a method for visual programming displayed on the display, the GUI including an authoring mode interface for at least one of creating, modifying, and interacting with a multimedia computer application stored in a back end server, the method comprising:displaying, on the display of the computer, the authoring mode interface including a tool box for creating program objects, and a main window for visual programming, the tool box being configured to allow creation of one or more program objects in the main window, the one or more program objects being an object that is displayable in the authoring mode interface as what-you-see-is-what-you-get, and the one or more program objects are displayable in a run mode;
monitoring for a selection of a program object from the tool box;
detecting the selection of the program object;
after detecting the selection of the program object, detecting a position in the main window for creating the program object;
displaying, in the main window, the program object at the detected position in the main window for creating the program object, the displaying including displaying the program object as what-you-see-is-what-you-get;
displaying, in the main window, a message center separately from the program object and linked to the program object for providing a ribbon having an inlet port and an outlet port, the ribbon including a graphical entity representing an input, a property, or an output corresponding to the program object and being wirable to a second ribbon, the message center being displayable in the authoring mode interface and not displayable in the run mode;
monitoring for a selection of a second program object from the tool box;
detecting the selection of the second program object;
after detecting the selection of the second program object, detecting a position in the main window for creating the second program object;
displaying, in the main window, the second program object at the detected position in the main window for creating the second program object, the displaying including displaying the second program object as what-you-see-is-what-you-get;
displaying, in the main window, a second message center separately from the second program object and linked to the second program object for providing a second ribbon having an inlet port and an outlet port, the second ribbon including a graphical entity representing an input, a property, or an output corresponding to the second program object and being wirable to the ribbon, the second message center being displayable in the authoring mode interface and not displayable in the run mode;
detecting selections of the ribbon and the second ribbon for forming an information exchange between the ribbon and the second ribbon; and
based on the detected selections:
displaying, in the main window, a visual wire connecting the ribbon to the second ribbon, the visual wire representing information exchange between the ribbon and the second ribbon, the input, property, or output of the program object being linked to the input, property, or output of the second program object, such that a change to the input, property, or output of the program object being linked affects a change to the input, property, or output of the second program object being linked;
connecting the input, property, or output of the program object being linked to the input, property, or output of the second program object, wherein in response to the connecting, a change to the program object in the authoring mode interface affects a change to the second program object in the authoring mode interface or a change to the second program object in the authoring mode interface affects a change to the program object in the authoring mode interface, and
concurrently updating the multimedia computer application in the back end server according to the detected selections,
wherein the program object, the second program object, the message center, the second message center, and the visual wire are concurrently displayed in the main window such that the program object, the second program object, the message center, the second message center, and the visual wire are concurrently visible on the GUI.

1. A computer-implemented method of generating and publishing multi-media information, comprising:detecting an action performed on a communication device;
identifying an application associated with the detected action;
obtaining data from the identified application and another application;
rendering multi-media information on a graphical user interface of the communication device, the multi-media information based on the data obtained from the identified application and the another application, and the multi-media information including an editable textual field associated with content obtained from the identified application;
displaying an icon on the graphical user interface of the communication device, the icon identifying a communication service; and
detecting selection of the icon identifying the communication service for uploading the multi-media information to the communication service.

US Pat. No. 10,139,993

ENHANCED WINDOW CONTROL FLOWS

1. A method to morph window controls, comprising:providing, using one or more processors, a plurality of window controls associated with a window of a computer interface, each window control of the plurality of window controls being configured to perform an original function and an alternate function, the original function being different than the alternate function, the original function and the alternate function controlling-the window, each window control having an original-graphic corresponding to the original function and an alternate graphic corresponding to the alternate function;
providing a morphing initiating control being configured to activate a morphing function;
receiving a first input associated with the morphing initiating control; and
in response to the received first input, morphing, by the one or more processors, the original function associated with a non-initiated one of the plurality of window controls to the alternate function while morphing the original graphic into the alternate graphic, wherein the non-initiated window control is different from the morphing initiating control.

US Pat. No. 10,139,992

DYNAMIC THUMBNAIL REPRESENTATION FOR A VIDEO PLAYLIST

1. A system, comprising:a memory having stored thereon computer executable components; and
a processor that, when executing the computer executable components stored in the memory, is configured to:
generate a user interface that includes a thumbnail representing a plurality of media content items, wherein the thumbnail has a static portion including an image associated with a media content item of the plurality of media content items and a dynamic portion including a plurality of images that are each associated with one of the plurality of media content items, and wherein the dynamic portion is configured to change between one of the plurality of images in response to a change in position of the thumbnail in the user interface;
detect navigation in the user interface that has changed the position of the thumbnail within the user interface; and
in response to detecting the navigation in the user interface that has changed the position of the thumbnail within the user interface, change an image from the plurality of images to another image from the plurality of images associated with the dynamic portion of the thumbnail while inhibiting the image associated with the static portion of the thumbnail from changing.

US Pat. No. 10,139,991

LIGHTWEIGHT VIRTUAL ENVIRONMENT

1. A method, comprising:receiving, at a virtual environment (VE) device, input data pertaining to a user, the input data including user contributed data that are input to a user input device and machine contributed data that are measured at one or more sensors;
based on a first portion of the input data, rendering by the VE device, a graphical user interface (GUI) including an initial icon arrangement that is presentable in a virtual environment, wherein the initial icon arrangement includes a set of icons that are each representative of a particular portion of an overall time period represented by the initial icon arrangement;
determining, by the VE device, whether a second portion of the input data is representable in the initial icon arrangement;
in response to the second portion of input data being representable:
associating, by the VE device, a quantified target with the second portion of the input data;
further associating, by the VE device, a quantified timeframe with the second portion of the input data;
modifying, by the VE device, one or more icons in the initial icon arrangement that correspond to the timeframe to represent the target;
further rendering, by the VE device, the modified icons as an opportunity layer on the initial icon arrangement
on a display device,
wherein:
the set of icons each include a two-dimensional shape;
the set of icons is organized into rows and columns; and
the overall time period represented by the initial icon arrangement is a life of the user.

US Pat. No. 10,139,990

DISPLAY APPARATUS FOR CONTENT FROM MULTIPLE USERS

1. A display apparatus comprising:a sensor configured to sense a touch input by a first mobile terminal and a second mobile terminal;
a display configured to display a content list including a plurality of content items; and
a processor configured to:
receive an enlarge touch input to enlarge the content list,
expand and display at least a part of the plurality of content items in the content list, and
begin playback of a first content item in the part of the plurality of content items when the first content item is enlarged to a predetermined reproducible size different than the other content items included in the plurality of content items,
wherein the processor distinguishes between a touch on the display apparatus by a front surface of the first mobile terminal and a touch on the display apparatus by a rear surface of the first mobile terminal based on different capacitance variations,
wherein the first mobile terminal is placed on the display and the processor displays different content corresponding to the front and rear surfaces of the first mobile terminal on the display,
wherein the processor is further configured to:
calculate a position of a first user based on a position of the first mobile terminal,
display first content on the display in correspondence with the calculated position of the first user,
calculate a position of a second user based on a position of the second mobile terminal,
display second content on the display in correspondence with the calculated position of the second user,
change a display area of the first content based on the position of the second user,
change the display area of the first content in proportion to the amount of content data stored in the first mobile terminal or a resolution of content data to be displayed,
receive an input to display a mini map for the first content,
display the mini map on the display over the first content,
receive an input to zoom the mini map,
display the zoomed-in mini map on the display,
receive an input to move a part of the zoomed-in mini map,
visually move faster the part of the zoomed-in mini map in a first area for the first content corresponding to the position of the first user than in a second area for the second content corresponding to the position of the second user,
display the part of the zoomed-in mini map in correspondence with the position of the second user,
display a copy of the first content corresponding to the position of the second user,
receive an edit input from the second user,
edit the copy of the first content based on the received edit input,
display the edited copy of the first content or a copy of the edited copy of the first content in correspondence with the position of the first user,
prevent editing the copy of the first content or the copy of the edited copy of the first content to the first user during editing,
perform pairing between the display apparatus and the first mobile terminal, and
display an object related to data sharing with the first mobile terminal in a user area corresponding to the position of the first mobile terminal,
wherein when a specific content item is positioned in an overlap area between the user area corresponding to the position of the first mobile terminal and a user area corresponding to the position of the second mobile terminal, the processor is further configured to:
share the content item between the first mobile terminal and the second mobile terminal,
receive an edit input from the second user,
edit the shared content item, and
share the edited content item with the first user.

US Pat. No. 10,139,989

MAPPING VISUALIZATION CONTEXTS

1. A computing system comprising:a mobile communication device having at least one processor, display, and memory; and
a visualization mapper configured to cause the at least one processor to display a plurality of user interactive regions having respective sizes on a touch screen adjacent to each other in a size-based hierarchy, each user interactive region including a finger tap sensitive target that is configured to receive an interactive finger tap by a user touching the finger tap sensitive target, the each user interactive region and the included finger tap sensitive target being associated with a respective scalable value, the respective scalable values representing a visualization context associated with the each user interactive region, the visualization mapper including:
an algorithm handler configured to cause the at least one processor to selectively scale the size of each user interactive region and included finger tap sensitive target according to the respective scalable values associated therewith,
a grouping handler configured to cause the at least one processor to group, based on a determination that one or more of the selectively scaled user interactive regions are dimensionally smaller than a predefined finger tap target size on the touch screen, the one or more of the selectively scaled user interactive regions on the touch screen into a specified user interactive region on the touch screen that is larger than the predefined finger tap target size, the specified user interactive region being expandable in size, upon selection thereof by a user touching the finger tap sensitive target included in the specified user interactive region, to ungroup and display a plurality of constituent selectively scaled user interactive regions of the specified user interactive region at sizes larger than the predefined finger tap target size, and
a display handler configured to cause the at least one processor to display each of the user interactive regions on the touch screen along with the specified user interactive region according to each scalable value associated therewith,
wherein, receipt of the selection thereof by the user causes the specified, expandable user interactive region to undergo expansion to incrementally display the plurality of constituent selectively scaled user interactive regions in a second size-based hierarchy, in which larger regions thereof display included information more rapidly than smaller regions thereof during the expansion.

US Pat. No. 10,139,988

METHOD AND DEVICE FOR DISPLAYING INFORMATION ARRANGED IN LISTS

1. A method for displaying information arranged in lists on a display device of a vehicle, the display device having a display area, comprising:displaying a portion of a list in the display area that includes a plurality of list entries, multiple elements being associated at least in part with the list entries, wherein the list entries comprise music albums and the elements comprise songs, and wherein the number of displayed list entries or elements depends on a magnification factor at which the list entries or elements are displayed in the display area;
modifying the displayed portion of the list by a scrolling action such that previous and subsequent list entries are displayable in succession, wherein a magnitude of the modification increases as the magnification factor decreases; and
displaying, in a selection of a list entry, the list entry together with at least a portion of the elements associated with the list entry;
wherein, if a selected list entry is displayed together with at least a portion of the elements associated with the selected list entry and the scrolling action is performed, first one of (a) previous and (b) subsequent elements are displayed in succession and thereafter list entries one of (a) preceding and (b) following the selected list entry are displayed;
wherein the scrolling action and a reduction of the magnification factor are both initiated in response to an operator gesture;
wherein, during the scrolling action, the magnification factor is:
reduced if the gesture includes two simultaneous points of a touch-sensitive surface of the display area or a touch-sensitive surface of an operating device for the display area touched by the operators;
reduced according to the current speed of the vehicle, in which the magnification factor is reduced to a greater extent at higher vehicle speeds, and reduced to a lesser extent at lower vehicle speeds;
reduced according to the length of the gesture touching of the touch-sensitive surface of the display area or the touch sensitive surface of the operating device, in which the magnification factor is reduced to a greater extent if the gesture includes longer touching, and reduced to a lesser extent if the gesture includes shorter touching;
reduced according to the frequency of the gesture touching of the touch-sensitive surface of the display area or the touch sensitive surface of the operating device, in which the magnification factor is reduced to a greater extent if the gesture includes more frequent touching, and reduced to a lesser extent if the gesture includes less frequent touching; and
reduced if the gesture exerts a pressure on the touch-sensitive surface of the display area or the touch sensitive surface of the operating device in excess of a threshold value; and
wherein, upon termination of the scrolling action, the magnification factor is reset to an original value.

US Pat. No. 10,139,987

AUTOMATED GROUP RECOMMENDATION

1. A computer-implemented method comprising:receiving, using one or more processors, information about a first user;
constructing, using the one or more processors, a first recommended group and a second recommended group of other users using the information about the first user;
generating a first graphical user interface element representing the first recommended group based on a pictorial image of a member of the first recommended group;
generating a second graphical user interface element representing the second recommended group;
determining an amount of overlap between the first graphical user interface element and the second graphical user interface element based on relevancy of the first and second recommended groups to the first user;
providing, using the one or more processors, for display the first and second graphical user interface elements with the determined amount of overlap as a suggestion to the first user; and
responsive to a selection of the first graphical user interface element or the second graphical user interface element from the first user, creating a new group in a service, and performing an action on the new group in the service.

US Pat. No. 10,139,986

DATA SHARING BY DISPLAYING PROJECTIONS OF DEVICES

1. An information processing apparatus, comprising:one or more processors configured to:
control a first projector to project a first icon in a first area on a projection plane, wherein the projection plane is included in a display screen;
control a second projector to project a second icon in a second area on the projection plane,
wherein the second projector is different from the first projector;
acquire a first input corresponding to movement of the first area and the second area within the display screen;
detect a first overlapping area in which the first area overlaps with the second area based on overlap of projections between the second area and the first area, wherein the first overlapping area includes the first icon and the second icon;
share, based on the detected first overlapping area, pieces of metadata associated with pieces of content which correspond to the first icon and the second icon, respectively;
control the display screen to display the first overlapping area as a virtual overlapping area on each of the first area and the second area, based on cancelation of the overlap of the first area and the second area; and
control the display screen to display the first overlapping area in a minimized state.

US Pat. No. 10,139,985

DEFINING, DISPLAYING AND INTERACTING WITH TAGS IN A THREE-DIMENSIONAL MODEL

1. A method, comprising:facilitating, by a device comprising a processor, navigation of a three-dimensional model of an environment as presented via an interface of the device, wherein the three-dimensional model was generated based on sets of aligned three-dimensional data captured from the environment, and wherein the three-dimensional model is associated with tags at defined points of the three-dimensional model;
rendering, by the device, different representations of the three-dimensional model from different perspectives of a virtual camera relative to the three-dimensional model based on received navigational input;
determining, by the device, a first subset of the tags associated with a higher probability of selection relative to a second subset of the tags; and
displaying, by the device, one or more tag icons in the different representations for one or more tags of the first subset of the tags based on the determining, wherein the displaying comprises displaying the one or more tag icons at spatially aligned positions in the different representations based on one or more defined points of the defined points that the one or more tags are respectively associated with, wherein the one or more tag icons are selectable and wherein selection of the one or more tag icons causes the one or more tags respectively associated therewith to be rendered by the device.

US Pat. No. 10,139,984

DEVICES, STORAGE MEDIUM, AND METHODS FOR MULTIMEDIA PROCESSING

1. A method for multimedia processing comprising:acquiring, by a client device, a multimedia information to be processed and a configuration information of the multimedia information, wherein the multimedia information includes a background layer and a special effect layer, the background layer comprises a media content of the multimedia information, the special effect layer comprises a special effect content of the multimedia information, and the configuration information includes one or more special effect processing conditions;
acquiring, by the client device, an attribute status of the multimedia information; and
when the attribute status of the multimedia information matching with the one or more special effect processing conditions, performing, by the client device, a special effect processing on the multimedia information to remove the special effect layer from the multimedia information by:
removing the special effect content; and
performing a reduction processing on the multimedia information.