| CPC G06F 12/1458 (2013.01) [G06F 9/30036 (2013.01); G06F 21/6218 (2013.01); G06F 2212/1052 (2013.01)] | 23 Claims |

|
1. An integrated circuit for executing instructions comprising:
a processor core including a pipeline configured to execute instructions, including constant-stride vector memory instructions;
a memory protection circuit configured to check for memory protection violations with a protection granule; and
a vector partition circuit configured to:
determine a maximum length, greater than one, corresponding to a number of vector elements to be accessed in a single clock cycle, wherein the maximum length is determined based on the protection granule and a stride of a vector that is identified by a vector memory instruction;
partition the vector into a subvector of the maximum length and one or more additional subvectors with lengths less than or equal to the maximum length;
check, using the memory protection circuit, whether accessing elements of the subvector will cause a memory protection violation; and
access the elements of the subvector before checking, using the memory protection circuit, whether accessing elements of one of the one or more additional subvectors will cause a memory protection violation.
|