QoS assisted AES engine for SSD controller
AssigneePetaio Inc.
InventorsFan Yang, Aditi Rema Ganesan
Life of this patent
Estimating the term…
Abstract
A flow controller selects a direction (encryption/decryption) for an AES core according to quality of service parameters and a number of data words in encryption and decryption data buffers. A direction ratio may be calculated as a function of the quality of service parameters and the number of data words in the encryption and decryption data buffers. The flow controller selects the direction to reduce a cost function. The cost function may be at a minimum when a ratio of words in the encryption and decryption data buffers is the same as the direction ratio. A key management unit supplies keys according to the selected direction to the AES cores. Multiple AES cores may be used.
Claims20
An apparatus comprising:
- one or more encryption cores each being an Advanced Encryption Standard (AES) core configured to operate as both an encryptor and a decryptor;
- an encryption data buffer;
- a decryption data buffer;
- and
- a flow controller configured to invoke retrieval of a plurality of data words for processing from the encryption data buffer and the decryption data buffer and submit each data word to a selected encryption core of the one or more encryption cores, the flow controller further configured to select between the encryption data buffer and the decryption data buffer according to a quality of service parameter such that a probability of retrieving each data word of the plurality of data words from the encryption data buffer is different from a probability of retrieving the data for processing from the decryption data buffer in accordance with the quality of service parameter;
- wherein the flow controller is further configured to, (i) when the encryption data buffer is selected, remove a first word of the plurality of data words from the encryption data buffer and load the first word into the selected encryption core and (ii) when the decryption data buffer is selected, remove a second word of the plurality of data words from the decryption data buffer and load the second word into the selected encryption core.
A method comprising:
- providing an encryption core that is an Advanced Encryption Standard (AES) core configured to operate as both an encryptor and a decryptor;
- receiving a plurality of first data words;
- storing the plurality of first data words in an encryption data buffer;
- receiving a plurality of second data words;
- storing the plurality of second data words in a decryption data buffer;
- (a) selecting a selected direction according to a quality of service parameter, the selected direction being one of encryption and decryption, such that a probability of selection of decryption is different from a probability of selection of encryption in accordance with the quality of service parameter;
- (b) configuring the encryption core to operate according to the selected direction;
- (c) (i) when the selected direction is encryption, removing a first word of the plurality of first words from the encryption data buffer and load the first word into the encryption core and (ii) when the selected direction is decryption, removing a second word of the plurality of second words from the decryption data buffer and load the second word into the encryption core;
- (d) executing an operation according to the selected direction by the encryption core;
- and
- (e) writing, by the encryption core, a result of the operation to an output buffer.
Dependencies are inferred from the claim text.