Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
First Claim
1. A method of transferring vector data between a memory and a vector buffer in a computer system, the method comprising:
- executing an application program;
issuing a vector data transfer instruction from the application program to transfer the vector data from the memory to the vector buffer;
determining the starting address of the vector data to be transferred;
determining the ending address of the vector data to be transferred;
determining whether the ending address of the vector data to be transferred is within the same virtual page as the starting address of the vector data in memory and generating an address error exception when the ending address of the vector data to be transferred is not within the same page of the memory as the starting address.
3 Assignments
0 Petitions
Accused Products
Abstract
A vector transfer unit for handling transfers of vector data between a memory and a data processor in a computer system. Vector data transfer instructions are posted to an instruction queue in the vector transfer unit. Program instructions for performing a burst transfer include determining the starting address of the vector data to be transferred, the ending address of the vector data to be transferred, and whether the ending address of the vector data to be transferred is within the same virtual memory page as the starting address. The ending address of the vector data to be transferred is determined based on the number of data elements to be transferred, the stride of the vector data to be transferred, and the width of the vector data elements to be transferred. When the amount of data to be transferred is divisible by a factor of two, the multiplication of the stride and width of the data elements is carried out by shifting. An address error exception occurs when the ending address of the vector data to be transferred is not within the same virtual memory page as the starting address. The ending address of the vector data to be transferred is determined in parallel with determining the starting address of the vector data to be transferred.
37 Citations
25 Claims
-
1. A method of transferring vector data between a memory and a vector buffer in a computer system, the method comprising:
-
executing an application program;
issuing a vector data transfer instruction from the application program to transfer the vector data from the memory to the vector buffer;
determining the starting address of the vector data to be transferred;
determining the ending address of the vector data to be transferred;
determining whether the ending address of the vector data to be transferred is within the same virtual page as the starting address of the vector data in memory and generating an address error exception when the ending address of the vector data to be transferred is not within the same page of the memory as the starting address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing system comprising:
-
a data processor;
a memory;
a plurality of application programs, the application programs being operable to issue vector data transfer instructions for transferring vector data between the memory and a vector transfer unit, wherein the vector data transfer instructions are posted to an instruction queue in the vector transfer unit;
wherein the data processing system is configured todetermine the starting address of the vector data to be transferred, the ending address of the vector data to be transferred, and whether the ending address of the vector data to be transferred is within the same virtual memory page as the starting address, and generate an address error exception when the ending address of the vector data to be transferred is not within the same memory page as the starting address. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product for transferring vector data between a memory and a vector buffer pool in a data processor, the computer program product comprising:
-
first program instructions for requesting vector data transfers using vector data transfer instructions;
second program instructions for partitioning a vector buffer pool in the vector transfer unit into a plurality of vector buffers;
third program instructions for assigning a vector buffer to each application program that issues vector data transfer instructions;
fourth program instructions for posting the vector data transfer instructions to a vector transfer instruction queue;
fifth program instructions for determining the ending address of the vector data to be transferred;
sixth program instructions for determining the physical address of the starting location of the vector data to be transferred;
seventh program instructions for determining whether the ending address of the vector data to be transferred is within the same memory page as the starting address and eighth program instructions for generating an address error exception when the ending address of the vector data to be transferred is not within the same memory page as the starting address. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
Specification