Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. An apparatus comprising: processing circuitry to perform, in response to a vector load instruction, load operations to load data from a data store to a plurality of data elements of at least one vector register, wherein the vector load instruction identifies a contiguous block of addresses, and for each data element of the at least one vector register, the load operation comprises loading data to that data element from storage locations in the data store corresponding to a respective portion of the contiguous block of addresses; wherein: in response to a first type of vector load instruction, when an exceptional condition is detected for the load operation performed for a first active data element of said at least one vector register in a predetermined sequence, the processing circuitry is configured to perform a response action, and when the exceptional condition is detected for the load operation performed for an active data element other than said first active data element in said predetermined sequence, the processing circuitry is configured to suppress said response action and to store element identifying information identifying the active data element for which the exceptional condition is detected; and in response to a second type of vector load instruction, when said exceptional condition is detected for the load operation for any active data element of said at least one vector register, the processing circuitry is configured to suppress said response action and to store the element identifying information identifying the active data element for which the exceptional condition is detected; wherein the first type of vector load instruction and the second type of vector load instruction are distinguished by their instruction encoding; the first type of vector load instruction specifies a base register and an offset register, and in response to the vector load instruction of the first type, the processing circuitry is configured to determine the start address of the contiguous block of addresses with a value equivalent to a result of adding a base address stored in the base register to an offset value determined based on a value stored in the offset register; and the second type of vector load instruction specifies a base register and an immediate offset value, and in response to the vector load instruction of the second type, the processing circuitry is configured to determine the start address of the contiguous block of addresses with a value equivalent to a result of adding a base address stored in the base register to a product of the immediate offset value and a multiplier corresponding to a size of said contiguous block of addresses.
This invention relates to vector processing systems and addresses the challenge of efficiently handling exceptional conditions during vector load operations. The apparatus includes processing circuitry that executes vector load instructions to load data from a memory into multiple data elements of one or more vector registers. The instructions specify a contiguous block of memory addresses, and each data element in the vector register is loaded from a corresponding portion of this block. The system supports two types of vector load instructions, distinguished by their encoding. The first type uses a base register and an offset register to compute the start address of the contiguous block, while the second type uses a base register and an immediate offset value, scaled by the size of the contiguous block. When an exceptional condition (e.g., a memory access violation) occurs during a load operation, the system's response depends on the instruction type. For the first type, if the exception occurs for the first active data element in a predefined sequence, the system performs a response action (e.g., generating an interrupt). For subsequent data elements, the response is suppressed, and the system stores identifying information about the affected element. For the second type, the response is always suppressed, and the system stores identifying information for any affected data element. This approach allows for efficient error handling while minimizing performance overhead.
2. The apparatus according to claim 1 , wherein in response to the vector load instruction of the first type or the second type, the processing circuitry is configured to perform the load operation for at least one active data element of said at least one vector register before an associated condition for determining whether the load operation should be performed for the at least one active data element has been resolved.
This invention relates to vector processing in computing systems, specifically improving the efficiency of vector load operations. The problem addressed is the latency introduced when waiting for conditions to resolve before performing load operations, which can stall processing pipelines and reduce performance. The apparatus includes processing circuitry configured to execute vector load instructions of at least two types. For both types, the circuitry performs load operations for active data elements in vector registers before the associated conditions determining whether the load should occur are fully resolved. This speculative execution allows the system to proceed with data loading while conditions are still being evaluated, reducing idle time and improving throughput. The apparatus also includes vector registers to store the loaded data and control logic to manage the load operations and condition resolution. The invention further specifies that the processing circuitry can handle multiple vector registers simultaneously, ensuring that active data elements in each register are loaded speculatively. This approach minimizes pipeline stalls by overlapping condition evaluation with data loading, particularly beneficial in high-performance computing environments where latency reduction is critical. The system ensures that only valid data is retained once conditions are resolved, maintaining data integrity while optimizing performance.
3. The apparatus according to claim 1 , wherein the vector load instruction identifies a mask indicating which data elements of said at least one vector register are active data elements.
This invention relates to vector processing in computing systems, specifically improving efficiency in vector load operations by selectively loading only active data elements. In vector processing, data is often organized into vectors, where each vector register holds multiple data elements. However, not all elements in a vector may be active (i.e., require processing), leading to inefficiencies when loading entire vectors. The invention addresses this by introducing a vector load instruction that includes a mask to specify which elements in a vector register should be loaded. The mask determines which data elements are active, allowing the system to skip loading inactive elements, thereby reducing unnecessary memory access and improving performance. The apparatus includes a processor configured to execute this masked vector load instruction, where the mask is applied during the load operation to selectively load only the active elements. This approach optimizes memory bandwidth usage and processing efficiency by avoiding the overhead of loading and processing inactive data elements. The invention is particularly useful in applications involving sparse data or partial vector operations, where only a subset of vector elements are relevant. By integrating the mask directly into the vector load instruction, the system can dynamically adapt to varying data patterns, enhancing overall computational efficiency.
4. The apparatus according to claim 3 , the processing circuitry is responsive to at least one further instruction to generate, based on the element identifying information, at least one of a new mask and a new address for a subsequent attempt to execute a vector load instruction of the first type.
This invention relates to processing circuitry for handling vector load instructions in a computing system. The problem addressed is improving efficiency and reliability when executing vector load instructions, particularly when encountering errors or conflicts during memory access. The apparatus includes processing circuitry configured to execute vector load instructions of a first type, where these instructions involve loading data from memory into a vector register. The circuitry identifies elements within the vector register that are invalid or require special handling, such as due to memory access errors or alignment issues. The circuitry then generates element identifying information that specifies which elements in the vector register are valid or invalid. Based on this information, the circuitry can generate either a new mask or a new address for a subsequent attempt to execute the vector load instruction. The new mask can be used to selectively load only the valid elements, while the new address can adjust the memory location to avoid conflicts or errors. This approach allows the system to retry the vector load operation more efficiently, reducing the need for full re-execution and improving performance. The invention is particularly useful in systems where vector operations are critical, such as in high-performance computing or data processing applications.
5. The apparatus according to claim 1 , wherein the element identifying information comprises an element identifying mask comprising a plurality of indications each corresponding to one of the data elements of the at least one vector register, wherein indications corresponding to the active data element for which the exceptional condition is detected and any subsequent active data element in the predetermined sequence have a first value, and indications corresponding to any data elements earlier in the predetermined sequence than said active data element for which the exceptional condition is detected have a second value.
This invention relates to data processing systems, specifically to apparatuses for handling exceptional conditions in vector processing operations. The problem addressed is efficiently identifying and managing active data elements in vector registers when an exceptional condition (e.g., overflow, underflow, or invalid operation) occurs during vector arithmetic operations. The apparatus includes a vector processing unit configured to execute vector operations on data elements stored in at least one vector register. When an exceptional condition is detected for an active data element during processing, the apparatus generates element identifying information to track the affected data elements. This information is structured as an element identifying mask, which is a bitmask where each bit corresponds to a data element in the vector register. The mask uses a first value (e.g., 1) to mark the active data element where the exceptional condition was detected and all subsequent active data elements in the predetermined sequence. Earlier active data elements in the sequence are marked with a second value (e.g., 0). This mask allows the system to efficiently propagate the exceptional condition handling to the correct data elements while maintaining processing efficiency. The apparatus may also include logic to apply the mask to subsequent operations, ensuring only the affected data elements are processed or corrected. This approach minimizes unnecessary computations and improves performance in vectorized workloads.
6. The apparatus according to claim 1 , wherein the first active data element in the predetermined sequence comprises a least significant active data element of the at least one vector register.
This invention relates to data processing systems, specifically apparatuses for handling vector registers in computing architectures. The problem addressed is the efficient management of active data elements within vector registers, particularly when processing sequences of data elements where certain elements are inactive or masked. The apparatus includes a vector register configured to store at least one vector, where the vector contains multiple data elements. The apparatus further includes a control unit that processes these data elements in a predetermined sequence. A key feature is that the first active data element in this sequence is the least significant active data element of the vector register. This ensures that processing starts with the lowest-order active element, which can improve efficiency in operations like vectorized arithmetic, data filtering, or parallel processing tasks. The apparatus may also include masking logic to identify and handle inactive data elements, ensuring only valid data is processed. The predetermined sequence may be defined by a program or hardware configuration, allowing flexibility in how data elements are accessed and manipulated. This approach optimizes performance by reducing unnecessary operations on inactive elements and ensuring correct alignment of active data for subsequent processing steps. The invention is particularly useful in high-performance computing, where efficient vector operations are critical for tasks like scientific simulations, machine learning, and real-time data analysis.
7. The apparatus according to claim 1 , wherein when the first type of vector load instruction specifies a predetermined register as the offset register, the processing circuitry is configured to determine the offset value as zero.
The invention relates to a data processing apparatus for executing vector load instructions with configurable offset values. The apparatus includes processing circuitry that executes vector load instructions to load data from memory into a vector register. The vector load instructions specify a base address in memory and an offset value, which is derived from an offset register. The apparatus supports multiple types of vector load instructions, including a first type that allows the offset value to be set to zero when a predetermined register is specified as the offset register. This feature simplifies memory access operations by eliminating the need to compute or store an offset value when no offset is required. The apparatus also includes a memory interface for accessing memory and a register file for storing vector and scalar registers. The processing circuitry decodes the vector load instructions, computes the effective memory address by combining the base address and the offset value, and performs the data load operation. This design improves efficiency in scenarios where fixed memory addresses are accessed, reducing unnecessary computations and register usage. The apparatus may be part of a processor or a specialized accelerator for vector processing tasks.
8. An apparatus comprising: processing circuitry to perform, in response to a vector load instruction, load operations to load data from a data store to a plurality of data elements of at least one vector register; wherein: in response to a first type of vector load instruction, when an exceptional condition is detected for the load operation performed for a first active data element of said at least one vector register in a predetermined sequence, the processing circuitry is configured to perform a response action, and when the exceptional condition is detected for the load operation performed for an active data element other than said first active data element in said predetermined sequence, the processing circuitry is configured to suppress said response action and to store element identifying information identifying the active data element for which the exceptional condition is detected; and in response to a second type of vector load instruction, when said exceptional condition is detected for the load operation for any active data element of said at least one vector register, the processing circuitry is configured to suppress said response action and to store the element identifying information identifying the active data element for which the exceptional condition is detected; wherein the first type of vector load instruction and the second type of vector load instruction are distinguished by their instruction encoding; the vector load instruction identifies a contiguous block of addresses, and for each data element of the at least one vector register, the load operation comprises loading data to that data element from storage locations in the data store corresponding to a respective portion of the contiguous block of addresses; both the first and second types of vector load instruction specify a base register and an immediate offset value; in response to the vector load instruction of the first type or the second type, the processing circuitry is configured to determine the start address of the contiguous block of addresses with a value equivalent to a result of adding a base address stored in the base register to a product of the immediate offset value and a multiplier corresponding to a size of said contiguous block of addresses; for the vector load instruction of the first type, the immediate offset value is zero; and for the vector load instruction of the second type, the immediate offset value is non-zero.
This invention relates to a processor apparatus that handles vector load instructions with improved exception handling for loading data into vector registers. The problem addressed is the inefficient or inconsistent handling of exceptional conditions (e.g., memory access violations) during vector load operations, where traditional approaches may either halt processing prematurely or fail to track which data elements caused the exceptions. The apparatus includes processing circuitry that executes vector load instructions to load data from a memory or data store into multiple data elements of one or more vector registers. The circuitry distinguishes between two types of vector load instructions based on their encoding. For the first type, if an exceptional condition occurs during the load of the first active data element in a predetermined sequence, the processor performs a predefined response action (e.g., signaling an exception). However, if the exception occurs for any other active data element, the response is suppressed, and the processor stores identifying information about the problematic data element. For the second type of instruction, exceptions for any active data element trigger suppression of the response action, and the element identifying information is stored. Both instruction types specify a base register and an immediate offset value to compute the start address of a contiguous memory block. The first type uses a zero offset, while the second type uses a non-zero offset. The start address is derived by adding the base address (from the base register) to the product of the offset and a multiplier based on the block size. This allows flexible addressing while maintaining efficient exception handling. The invention improves vector processing by selectivel
9. The apparatus according to claim 1 , wherein the exceptional condition comprises an address translation fault or memory permission fault.
This invention relates to a computing apparatus designed to handle exceptional conditions during memory access operations. The apparatus includes a processor configured to execute instructions, a memory system for storing data, and a mechanism to detect and manage exceptional conditions such as address translation faults or memory permission faults. When such a condition occurs, the processor interrupts normal execution, identifies the fault type, and initiates a recovery process. The apparatus may include a fault handler module that determines the cause of the fault, whether due to an invalid memory address or insufficient access permissions, and takes corrective action. This may involve adjusting memory mappings, updating permission settings, or terminating the offending process. The system ensures reliable operation by preventing crashes or security breaches caused by unauthorized or incorrect memory access. The apparatus may also log fault events for debugging or security auditing purposes. The invention improves system stability and security by providing structured fault detection and recovery mechanisms for memory-related exceptions.
10. The apparatus according to claim 1 , wherein the response action comprises triggering execution of an exception handling routine.
A system for managing exceptions in computing environments addresses the problem of efficiently handling unexpected errors or disruptions during program execution. The system includes a monitoring component that detects anomalies or errors in real-time, such as hardware failures, software crashes, or resource conflicts. Upon detection, the system initiates a response action to mitigate the issue. In this specific implementation, the response action involves triggering an exception handling routine, which is a predefined set of instructions designed to manage the error condition. The exception handling routine may include steps such as logging the error, notifying system administrators, or gracefully terminating the affected process to prevent further system instability. The system is particularly useful in high-availability environments where minimizing downtime and ensuring system resilience are critical. By automating the detection and response to exceptions, the system reduces the need for manual intervention and improves overall system reliability. The exception handling routine may also include recovery procedures, such as restarting services or rolling back transactions, to restore normal operation as quickly as possible. This approach ensures that errors are managed systematically, reducing the risk of cascading failures and enhancing system robustness.
11. A data processing method comprising: in response to a vector load instruction, performing load operations to load data from a data store to a plurality of data elements of at least one vector register, wherein the vector load instruction identifies a contiguous block of addresses, and for each data element of the at least one vector register, the load operation comprises loading data to that data element from storage locations in the data store corresponding to a respective portion of the contiguous block of addresses; when the vector load instruction is of a first type and an exceptional condition is detected for the load operation performed for a first active data element of said at least one vector register in a predetermined sequence, performing a response action; when the vector load instruction is of the first type and the exceptional condition is detected for the load operation performed for an active data element other than said first active data element in said predetermined sequence, suppressing said response action and storing element identifying information identifying the active data element for which the exceptional condition is detected; and when the vector load instruction is of a second type and the exceptional condition is detected for the load operation for any active data element of said at least one vector register, suppressing said response action and storing the element identifying information identifying the active data element for which the exceptional condition is detected; wherein the first type of vector load instruction and the second type of vector load instruction are distinguished by their instruction encoding; the first type of vector load instruction specifies a base register and an offset register, and in response to the vector load instruction of the first type, the processing circuitry is configured to determine the start address of the contiguous block of addresses with a value equivalent to a result of adding a base address stored in the base register to an offset value determined based on a value stored in the offset register; and the second type of vector load instruction specifies a base register and an immediate offset value, and in response to the vector load instruction of the second type, the processing circuitry is configured to determine the start address of the contiguous block of addresses with a value equivalent to a result of adding a base address stored in the base register to a product of the immediate offset value and a multiplier corresponding to a size of said contiguous block of addresses.
This invention relates to vector processing in computing systems, specifically addressing the handling of exceptional conditions during vector load operations. Vector load instructions are used to load data from memory into vector registers, which can process multiple data elements in parallel. The problem solved is the efficient handling of exceptions (e.g., memory access violations) that may occur during such operations, ensuring performance is maintained while still allowing error detection. The method involves two types of vector load instructions distinguished by their encoding. The first type uses a base register and an offset register to compute the start address of a contiguous memory block. The second type uses a base register and an immediate offset value, scaled by the size of the contiguous block. When an exceptional condition (e.g., a memory fault) occurs during a load operation, the response depends on the instruction type and the position of the affected data element in a predetermined sequence. For the first type, if the exception occurs for the first active data element, a response action (e.g., signaling the exception) is performed. For subsequent elements, the response is suppressed, and identifying information about the faulty element is stored. For the second type, exceptions for any element trigger suppression and storage of identifying information. This approach allows efficient error handling without halting the entire vector operation, improving performance in parallel processing scenarios.
12. A non-transitory storage medium storing a computer program for controlling a computer to provide a virtual machine execution environment corresponding to the apparatus according to claim 1 .
A non-transitory storage medium contains a computer program designed to control a computer system to create a virtual machine execution environment. This environment replicates the functionality of a specific apparatus, which is a system for managing and executing virtual machines. The apparatus includes a virtual machine management module that dynamically allocates and deallocates virtual machines based on workload demands, ensuring efficient resource utilization. It also features a resource monitoring module that tracks the performance and resource consumption of each virtual machine, allowing for real-time adjustments. Additionally, the apparatus includes a security module that enforces access controls and isolates virtual machines to prevent unauthorized interactions. The computer program on the storage medium enables the computer to replicate this apparatus, providing a virtualized environment where multiple virtual machines can operate securely and efficiently. The system dynamically adjusts resources to optimize performance while maintaining isolation between virtual machines, addressing challenges related to resource management and security in virtualized environments. This solution is particularly useful in cloud computing and data center environments where scalability and security are critical.
Unknown
February 18, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.