Vector register control apparatus for a vector processing computer in which a plurality of high-speed vector registers, including a first vector register and a second vector register, are used as intermediate memory to store ordered sets of data for vector processing by one or more functional units, wherein each said vector register comprises a plurality of memory locations for storing elements of a vector and wherein the one or more functional units includes a first functional unit connected to each of the plurality of vector registers, said first functional unit comprising input means for receiving elements of a first and second vector read from said first and second vector registers, respectively, computational means for performing a mathematical function on each said vector element in a first functional unit time, wherein the first functional unit time is greater than one clock period, and output means for delivering elements of a first result vector, the apparatus comprising:
- control means, connected to said vector registers and to said one or more functional units, for transferring data between said vector registers and said one or more functional units, said control means comprising first vector control means for successively transferring elements, including a last element, read from said first vector register to said first functional unit and for successively storing elements, including a first and a last element, of said result vector to said first vector register and second vector control means for successively transferring elements, including a last element, read from said second vector register to said first functional unit and for successively storing elements, including a first and a last element, of a second result vector received from a second functional unit to said second vector register, wherein said first vector control means stores at least some of said elements of said first result vector to said first vector register concurrently with the transferring of the elements of said first and second vector registers to said first functional unit;
- wherein the first vector control means comprises a first read address counter for successively addressing elements of said first vector register during a read operation, a first write address counter for successively addressing elements of said first vector register during a write operation, a first vector length counter for indicating to said first read address counter when the last element of the elements read from the first vector register has been read, a first write vector length counter for indicating to the first write address counter when the last element of said result vector has been written to said first vector register, and a first write delay counter for delaying storage to said first vector register of the first element of said first result vector for said first functional unit time and for enabling storage, in successive clock periods, of successive elements of said first result vector to said first vector register after said first functional unit time;
- and
- wherein the second vector control means comprises a second read address counter for successively addressing elements of said second vector register during a read operation, a second write address counter for successively addressing elements of said second vector register during a write operation, a second read vector length counter for indicating to said second read address counter when the last element of the elements read from the second vector register has been read, a second write vector length counter for indicating to said second write address counter when the last element of said second result vector has been written to said second vector register, and a second write delay counter for delaying storage to said second vector register of the first element of said second result vector for a second functional unit time associated with said second functional unit and for enabling storage, in successive clock periods, of successive elements of said second result vector to said second vector register after said second functional unit time.