Claims Analysis
Total Claims: 35
Claim 1
Independent Claim
173 words
A method of operating a digital computer, said digital computer including a vector processor, a main memory, and a cache; said main memory including means for storing data elements at respective addresses; said cache including cache memory means for storing selected predefined blocks of said data elements, means for receiving requests to reference a specified block of said data, means for checking whether data for the specified block is stored in the cache memory means, and means operative when data for the specified block is not so stored for reading the specified block of data from said main memory and storing the block of data in the cache memory means; said method comprising the steps of: receiving an instruction to obtain a specified vector of said data elements and load said vector into said vector processor, determining the blocks of data which include at least one data element of said vector, and transmitting requests to reference the blocks of data which are determined to include at least one data element of said vector.
Claim 2
Independent Claim
173 words
A method of operating a digital computer, said digital computer including a vector processor, a main memory, and a cache; said main memory including means for storing data elements at respective addresses; said cache including cache memory means for storing selected predefined blocks of said data elements, means for receiving requests to reference a specified block of said data, means for checking whether data for the specified block is stored in the cache memory means, and means operative when data for the specified block is not so stored for reading the specified block of data from said main memory and storing the block of data in the cache memory means; said method comprising the steps of: receiving an instruction to obtain a specified vector of said data elements and load said vector into said vector processor, determining the blocks of data which include at least one data element of said vector, and transmitting requests to reference the blocks of data which are determined to include at least one data element of said vector.
Claim 3
Dependent Claim
127 words
The method as claimed in claim 1, wherein said means for receiving requests to reference a specified block of said data includes means for receiving a specified memory address, means for determining the block including the specified address, and means for obtaining the data element associated with the specified address from said memory means when the block including the specified address is stored in said memory means and otherwise obtaining the data element from the main memory, and wherein said method further comprises the steps of determining the memory address associated with each of the elements of said vector, transmitting the memory addresses so determined to the cache, and transmitting the data elements associated with the specified addresses from the means for obtaining to said vector processor.
Claim 4
Dependent Claim
19 words
The method as claimed in claim 1, wherein said step of determining is performed by executing a microcode procedure.
Claim 5
Dependent Claim
58 words
The method as claimed in claim 1, wherein said step of determining the blocks of data which include at least one data element of said vector includes the steps of sequentially computing the addresses associated with successive data elements of the vector, and testing whether each computed address is within a different block from the previously computed address.
Claim 6
Dependent Claim
64 words
The method as claimed in claim 4, wherein said addresses associated with successive data elements differ by a predetermined stride, and said step of sequentially computing the addresses associated with successive data elements of the vector computes the address of every Mth data element of the vector, where M is an integer for which different values are selected as a function of said stride.
Claim 7
Dependent Claim
37 words
The method as claimed in claim 5, wherein said blocks each have the same predetermined memory size, and said step of sequentially computing includes the step of comparing said stride to said memory size of said blocks.
Claim 8
Dependent Claim
33 words
The method as claimed in claim 5, further comprising the step of changing a count by said integer M each time said address of every Mth data element of the vector is computed.
Claim 9
Dependent Claim
43 words
The method as claimed in claim 7, further comprising the step of adjusting the address computed for the last Mth data element of the vector by a value which is selected as a function of a remainder of said count and said stride.
Claim 10
Independent Claim
157 words
A method of operating a digital computer, said digital computer including a vector processor, a main memory having multiple memory banks, and at least one data buffer interposed in a data path from said main memory to said vector processor, said memory storing predefined blocks of data elements at respective addresses; said method comprising the steps of: receiving an instruction to obtain a specified vector of data elements and load said vector into said vector processor, determining the blocks of data which include at least one data element of said vector, transmitting requests to reference the blocks of data which are determined to include at least one data element of said vector, and in response to those requests fetching the blocks from memory when the blocks are not stored in said data buffer, and obtaining from the referenced blocks said data elements of said vector and transmitting said data elements of said vector to said vector processor.
Claim 11
Independent Claim
157 words
A method of operating a digital computer, said digital computer including a vector processor, a main memory having multiple memory banks, and at least one data buffer interposed in a data path from said main memory to said vector processor, said memory storing predefined blocks of data elements at respective addresses; said method comprising the steps of: receiving an instruction to obtain a specified vector of data elements and load said vector into said vector processor, determining the blocks of data which include at least one data element of said vector, transmitting requests to reference the blocks of data which are determined to include at least one data element of said vector, and in response to those requests fetching the blocks from memory when the blocks are not stored in said data buffer, and obtaining from the referenced blocks said data elements of said vector and transmitting said data elements of said vector to said vector processor.
Claim 12
Dependent Claim
51 words
The method as claimed in claim 9, wherein said step of transmitting includes the steps of checking whether the referenced blocks of data are stored in said data buffer, and when the reference blocks of data are not found in said data buffer, transmitting respective fetch requests to said main memory.
Claim 13
Dependent Claim
39 words
The method as claimed in claim 10, wherein said method further comprises loading said fetch requests into a fetch buffer, and removing said fetch requests from said fetch buffer when their respective blocks of data are fetched from memory.
Claim 14
Dependent Claim
24 words
The method as claimed in claim 11, wherein said step of transmitting respective fetch requests is temporarily suspended when the fetch buffer becomes full.
Claim 15
Dependent Claim
52 words
The method as claimed in claim 11, wherein said step of transmitting respective fetch requests includes the step of checking whether the fetch buffer already includes the fetch request, and when the fetch buffer is found to already include the fetch request, inhibiting retransmission of the fetch request to the main memory.
Claim 16
Dependent Claim
19 words
The method as claimed in claim 11, wherein said step of determining is performed by executing a microcode procedure.
Claim 17
Dependent Claim
58 words
The method as claimed in claim 9, wherein said step of determining the blocks of data which include at least one data element of said vector includes the steps of sequentially computing the addresses associated with successive data elements of the vector, and testing whether each computed address is within a different block from the previously computed address.
Claim 18
Dependent Claim
64 words
The method as claimed in claim 15, wherein said addresses associated with successive data elements differ by a predetermined stride, and said step of sequentially computing the addresses associated with successive data elements of the vector computes the address of every Mth data element of the vector, where M is an integer for which different values are selected as a function of said stride.
Claim 19
Dependent Claim
37 words
The method as claimed in claim 16, wherein said blocks each have the same predetermined memory size, and said step of sequentially computing includes the step of comparing said stride to said memory size of said blocks.
Claim 20
Dependent Claim
33 words
The method as claimed in claim 16, further comprising the step of changing a count by said integer M each time said address of every Mth data element of the vector is computed.
Claim 21
Dependent Claim
43 words
The method as claimed in claim 18, further comprising the step of adjusting the address computed for the last Mth data element of the vector by a value which is selected as a function of a remainder of said count and said stride.
Claim 22
Independent Claim
207 words
A method of operating a digital computer having a main memory, a cache, a scalar processor, and a vector processor; said memory including means for storing data elements at respective addresses; said cache including cache memory means for storing selected predefined blocks of said data elements, means for receiving requests to reference a specified block of said data, means for checking whether data for the specified block is stored in the cache memory means, and means operative when data for the specified block is not so stored for reading the specified block of data from said main memory and storing the block of data in the cache memory means; said method comprising the steps of: receiving an instruction to obtain a specified vector of said data elements and load said vector into said vector processor; determining the blocks of data which include at least one data element of said vector, transmitting to said cache requests to reference the blocks of data which are determined to include at lest one data element of said vector, and thereafter transmitting to said cache requests to reference individually said data elements of said specified vector, and transmitting said data elements of said specified vector from said cache to said vector processor.
Claim 23
Independent Claim
207 words
A method of operating a digital computer having a main memory, a cache, a scalar processor, and a vector processor; said memory including means for storing data elements at respective addresses; said cache including cache memory means for storing selected predefined blocks of said data elements, means for receiving requests to reference a specified block of said data, means for checking whether data for the specified block is stored in the cache memory means, and means operative when data for the specified block is not so stored for reading the specified block of data from said main memory and storing the block of data in the cache memory means; said method comprising the steps of: receiving an instruction to obtain a specified vector of said data elements and load said vector into said vector processor; determining the blocks of data which include at least one data element of said vector, transmitting to said cache requests to reference the blocks of data which are determined to include at lest one data element of said vector, and thereafter transmitting to said cache requests to reference individually said data elements of said specified vector, and transmitting said data elements of said specified vector from said cache to said vector processor.
Claim 24
Dependent Claim
33 words
The method as claimed in claim 20, wherein said step of determining the blocks of data which include at least one data element of said vector is performed by a micro-sequencer executing microcode.
Claim 25
Dependent Claim
55 words
A method as claimed in claim 21, where in said micro-sequencer determines the blocks of data which include at least one data element of said vector by referencing a vector address register and sequentially computing the addresses associated with successive data elements of the vector and storing the computed address in the vector address register.
Claim 26
Dependent Claim
58 words
The method as claimed in claim 22, wherein said micro-sequencer determines the blocks of data which include at least one data element of said vector by referencing a vector length register and changing a value in said vector length register each time said micro-sequencer computes the address associated with one of said successive data elements of said vector.
Claim 27
Dependent Claim
50 words
The method as claimed in claim 22, wherein said addresses associated with successive data elements differ by a predetermined stride, and said micro-sequencer successively computes the address associated with every Mth data element of said vector, and selects M as an integer which is a predetermined function of said stride
Claim 28
Dependent Claim
41 words
The method as claimed in claim 24, wherein said data blocks have a predetermined size, and said micro-sequencer selects a value for M by comparing said stride to predetermined values, said predetermined values including said predetermined size of the data blocks.
Claim 29
Dependent Claim
242 words
A digital computer having a main memory and a cache coupled to said main memory; said main memory including means for storing data elements at respective addresses; said cache including cache memory means for storing selected predefined blocks of said data elements, means for receiving requests to reference a specified block of said data, means for checking whether data for the specified block is stored in the cache memory means, and means operative when data for the specified block is not so stored for reading the specified block of data from said main memory and storing the block of data in the cache memory means; wherein the improvement comprises: a vector processor coupled to said cache, said vector processor including means for receiving a sequence of data elements from said cache and performing vector operations on said data elements, and prefetch generator means coupled to said vector processor and said cache for prefetching the blocks of data which include the data elements of a vector specified by a vector load instruction, wherein said prefetch generator means includes means for receiving an instruction to obtain a specified vector of said data elements and load them into said vector processor, means for determining the blocks of data which include at least one data element of said vector, and means for transmitting to said cache requests to reference the blocks of data which are determined to include at least one data element of said vector.
Claim 30
Dependent Claim
242 words
A digital computer having a main memory and a cache coupled to said main memory; said main memory including means for storing data elements at respective addresses; said cache including cache memory means for storing selected predefined blocks of said data elements, means for receiving requests to reference a specified block of said data, means for checking whether data for the specified block is stored in the cache memory means, and means operative when data for the specified block is not so stored for reading the specified block of data from said main memory and storing the block of data in the cache memory means; wherein the improvement comprises: a vector processor coupled to said cache, said vector processor including means for receiving a sequence of data elements from said cache and performing vector operations on said data elements, and prefetch generator means coupled to said vector processor and said cache for prefetching the blocks of data which include the data elements of a vector specified by a vector load instruction, wherein said prefetch generator means includes means for receiving an instruction to obtain a specified vector of said data elements and load them into said vector processor, means for determining the blocks of data which include at least one data element of said vector, and means for transmitting to said cache requests to reference the blocks of data which are determined to include at least one data element of said vector.
Claim 31
Dependent Claim
34 words
The digital computer as claimed in claim 26, further comprising means coupled to said cache and said vector processor for transmitting said data elements of said vector from said cache to said vector processor.
Claim 32
Dependent Claim
43 words
The digital computer as claimed in claim 27, wherein said means for transmitting said data elements include cache memory bypass means for transmitting to said vector processor said data elements fetched from the main memory when they are being written into the cache.
Claim 33
Dependent Claim
41 words
The digital computer as claimed in claim 26, wherein said means for transmitting includes a register coupled in the data path between the main memory and the cache, and a register bypass gate connected to said register for bypassing said register.
Claim 34
Dependent Claim
58 words
The digital computer as claimed in claim 26, wherein said means for determining the blocks of data which include at least one data element of said vector includes means for sequentially computing the addresses associated with successive data elements of said vector, and testing whether each computed address is within a different block from the previously computed address.
Claim 35
Dependent Claim
68 words
The digital computer as claimed in claim 26, wherein said cache includes a fetch request buffer for buffering said requests to reference the blocks of data, said fetch request buffer providing a signal indicating when the fetch request buffer is full, and said prefetch generator means has means responsive to said buffer full signal for temporarily suspending the transmission of said requests to reference the blocks of data.