Patent classifications
G06F9/30178
ILLEGAL INSTRUCTION EXCEPTION HANDLING
Techniques are disclosed relating to the handling of exceptions generated by illegal instructions in a processor. In an embodiment, a processor may be configured to fetch instructions defined according to an instruction set architecture (ISA). The ISA may include a set of uncompressed instructions and a set of compressed instructions. The processor may further be configured to, upon detecting a given one of the set of compressed instructions, cause a copy of the given compressed instruction to be saved and convert the given compressed instruction to a corresponding given uncompressed instruction. The processor may also be configured to detect that the given uncompressed instruction is illegal and was converted from the given compressed instruction, and based at least in part on these, cause an illegal instruction exception to be generated using the copy of the given compressed instruction.
CRYPTOGRAPHIC COMPUTING USING ENCRYPTED BASE ADDRESSES AND USED IN MULTI-TENANT ENVIRONMENTS
Technologies disclosed herein provide cryptographic computing with cryptographically encoded pointers in multi-tenant environments. An example method comprises executing, by a trusted runtime, first instructions to generate a first address key for a private memory region in the memory and generate a first cryptographically encoded pointer to the private memory region in the memory. Generating the first cryptographically encoded pointer includes storing first context information associated with the private memory region in first bits of the first cryptographically encoded pointer and performing a cryptographic algorithm on a slice of a first linear address of the private memory region based, at least in part, on the first address key and a first tweak, the first tweak including the first context information. The method further includes permitting a first tenant in the multi-tenant environment to access the first address key and the first cryptographically encoded pointer to the private memory region.
MANAGEMENT OF KEYS FOR USE IN CRYPTOGRAPHIC COMPUTING
A method comprising executing, by a core of a processor, a first instruction requesting access to a parameter associated with data for storage in a main memory coupled to the processor, the first instruction including a reference to the parameter, a reference to a wrapping key, and a reference to an encrypted encryption key, wherein execution of the first instruction comprises decrypting the encrypted encryption key using the wrapping key to generate a decrypted encryption key; requesting transfer of the data between the main memory and the processor core; and performing a cryptographic operation on the parameter using the decrypted encryption key.
NEURAL NETWORK CONTROL DEVICE AND METHOD
An embodiment of the present invention provides a neural network operator that performs a plurality of processes for each of a plurality of layers of a neural network, including: a memory that includes a data-storing space storing a plurality of data for performing the plurality of processes and a synapse code-storing space storing a plurality of descriptors with respect to the plurality of processes; a memory-transmitting processor that obtains the plurality of descriptors and transmits the plurality of data to the neural network operator based on the plurality of descriptors; an embedded instruction processor that obtains the plurality of descriptors from the memory-transmitting processor, transmits a first data set in a first descriptor to the neural network operator based on the first descriptor corresponding to the first process among the plurality of processes, reads a second descriptor corresponding to a second process, which is a next operation of the first process, based on the first descriptor, and controls the memory-transmitting processor to transmit second data corresponding to the second descriptor to the neural network operator based on the second descriptor; and a synapse code generator that generates the plurality of descriptors, and thus it is possible to operate the neural network operator at high speed without interference of other devices, and it is possible to reduce the memory-storing space for the descriptors.
NEURAL NETWORK CONTROL DEVICE AND METHOD
An embodiment of the present invention provides a neural network operator that performs a plurality of processes for each of a plurality of layers of a neural network, including: a memory that includes a data-storing space storing a plurality of data for performing the plurality of processes and a synapse code-storing space storing a plurality of descriptors with respect to the plurality of processes; a memory-transmitting processor that obtains the plurality of descriptors and transmits the plurality of data to the neural network operator based on the plurality of descriptors; an embedded instruction processor that obtains the plurality of descriptors from the memory-transmitting processor, transmits a first data set in a first descriptor to the neural network operator based on the first descriptor corresponding to the first process among the plurality of processes, reads a second descriptor corresponding to a second process, which is a next operation of the first process, based on the first descriptor, and controls the memory-transmitting processor to transmit second data corresponding to the second descriptor to the neural network operator based on the second descriptor; and a synapse code generator that generates the plurality of descriptors, and thus it is possible to operate the neural network operator at high speed without interference of other devices, and it is possible to reduce the memory-storing space for the descriptors.
LOW MEMORY OVERHEAD HEAP MANAGEMENT FOR MEMORY TAGGING
A method comprising responsive to a first instruction requesting a memory heap operation, identifying a data block of a memory heap; accessing a tag history for the data block, the tag history comprising a plurality of tags previously assigned to the data block; assigning a tag to the data block, wherein assigning the tag comprises verification that the tag does not match any of the plurality of tags of the tag history; and providing the assigned tag and a reference to a location of the data block.
CRYPTOGRAPHIC ISOLATION OF MEMORY COMPARTMENTS IN A COMPUTING ENVIRONMENT
Technologies disclosed herein provide cryptographic computing. An example method comprises executing a first instruction of a first software entity to receive a first input operand indicating a first key associated with a first memory compartment of a plurality of memory compartments stored in a first memory unit, and execute a cryptographic algorithm in a core of a processor to compute first encrypted contents based at least in part on the first key. Subsequent to computing the first encrypted contents in the core, the first encrypted contents are stored at a memory location in the first memory compartment of the first memory unit. More specific embodiments include, prior to storing the first encrypted contents at the memory location in the first memory compartment and subsequent to computing the first encrypted contents in the core, moving the first encrypted contents into a level one (L1) cache outside a boundary of the core.
MICROPROCESSOR PIPELINE CIRCUITRY TO SUPPORT CRYPTOGRAPHIC COMPUTING
In one embodiment, a processor of a cryptographic computing system includes data cache units storing encrypted data and circuitry coupled to the data cache units. The circuitry accesses a sequence of cryptographic-based instructions to execute based on the encrypted data, decrypts the encrypted data based on a first pointer value, executes the cryptographic-based instruction using the decrypted data, encrypts a result of the execution of the cryptographic-based instruction based on a second pointer value, and stores the encrypted result in the data cache units. In some embodiments, the circuitry generates, for each cryptographic-based instruction, at least one encryption-based microoperation and at least one non-encryption-based microoperation. The circuitry also schedules the at least one encryption-based microoperation and the at least one non-encryption-based microoperation for execution based on timings of the encryption-based microoperation.
DATA ENCRYPTION BASED ON IMMUTABLE POINTERS
Technologies disclosed herein provide cryptographic computing. An example processor includes a core to execute an instruction, where the core includes a register to store a pointer to a memory location and a tag associated with the pointer. The tag indicates whether the pointer is at least partially immutable. The core also includes circuitry to access the pointer and the tag associated with the pointer, determine whether the tag indicates that the pointer is at least partially immutable. The circuitry is further, based on a determination that the tag indicates the pointer is at least partially immutable, to obtain a memory address of the memory location based on the pointer, use the memory address to access encrypted data at the memory location, and decrypt the encrypted data based on a key and a tweak, where the tweak including one or more bits based, at least in part, on the pointer.
POINTER BASED DATA ENCRYPTION
Technologies disclosed herein provide cryptographic computing. An example method comprises storing, in a register, an encoded pointer to a memory location, where first context information is stored in first bits of the encoded pointer and a slice of a memory address of the memory location is encrypted and stored in second bits of the encoded pointer. The method further includes decoding the encoded pointer to obtain the memory address of the memory location, using the memory address obtained by decoding the encoded pointer to access encrypted data at the memory location, and decrypting the encrypted data based on a first key and a first tweak value. The first tweak value includes one or more bits derived, at least in part, from the encoded pointer.