[go: up one dir, main page]

EP0167959B1 - Computer vector register processing - Google Patents

Computer vector register processing Download PDF

Info

Publication number
EP0167959B1
EP0167959B1 EP85108148A EP85108148A EP0167959B1 EP 0167959 B1 EP0167959 B1 EP 0167959B1 EP 85108148 A EP85108148 A EP 85108148A EP 85108148 A EP85108148 A EP 85108148A EP 0167959 B1 EP0167959 B1 EP 0167959B1
Authority
EP
European Patent Office
Prior art keywords
address
read
vector register
vector
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
EP85108148A
Other languages
German (de)
French (fr)
Other versions
EP0167959A3 (en
EP0167959A2 (en
Inventor
Hiroyuki Izumisawa
Seiichiro Kinoshita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP13677684A external-priority patent/JPS6116366A/en
Priority claimed from JP13677484A external-priority patent/JPS6116364A/en
Priority claimed from JP13677384A external-priority patent/JPS6116363A/en
Priority claimed from JP13677584A external-priority patent/JPS6116365A/en
Application filed by NEC Corp filed Critical NEC Corp
Publication of EP0167959A2 publication Critical patent/EP0167959A2/en
Publication of EP0167959A3 publication Critical patent/EP0167959A3/en
Application granted granted Critical
Publication of EP0167959B1 publication Critical patent/EP0167959B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements

Definitions

  • the present invention relates to high speed digital processors, and more particularly to computing machines adapted for vector processing.
  • US-A-4,128,880 describes an example of such vector processing apparatus.
  • vector processing in a computer is achieved by means of a plurality of vector registers 20 (V0-V7), a plurality of independent fully segmented vector functional units and means for controlling the operation of the vector registers, including fan-outs 22 and 23 for selecting a signal, a data path 21 and a memory 12.
  • Each of vector registers V0-V7 has 64 individual elements, each of which can hold a 64 bit word.
  • element data in the register 20 are sequentially stored in the memory 12 via the fan-out 22 and data path 21 by store instructions, and a portion of the element data in the memory 12 are then loaded to the register V1 via the fan-out 22.
  • the element data in the register V0 is sent to the shift functional unit via the fan-out 23 by a shift instruction.
  • the shift functional unit can perform a shift in accordance with a shift quantity designated by the instruction.
  • the output of the shift functional unit is moved, shifted by one word, to the vector register V1 via the fan-out 23.
  • the desired movement of element data is accomplished by repeating this shift operation. Accordingly, since both techniques need either the memory 12 or the shift functional unit, the performance of element data movement becomes slow.
  • the next instruction needs the memory 12 and/or the shift functional unit, a conflict in using these devices has occurred.
  • a computer includes vector registers 100 and 101, read address registers 110 and 111, write address registers 120 and 121, read address selectors 130 and 131, write address selectors 140 and 141, and an input selector 200 for selecting input element data.
  • a plurality of vector registers e.g., two vector registers 100 and 101 in this embodiment, hold a plurality of elements of an ordered set of data, respectively.
  • Each of the registers 100 and 101 stores data loaded from a main storage or the result of an arithmetic operation from an ALU.
  • An instruction will include the operation code (OP) and four operands R1, R2, R3 and R4.
  • the operand R1 designates the destination vector register number
  • the operand R3 designates the source vector register number.
  • the operand R2 designates the write starting address of the destination vector register designated by the operand R1. If not necessary to designate the write starting address, it is not used.
  • the operand R4 designates the read starting address of the source vector register designated by the operand R3. If not necessary, it is not used.
  • the operation of designating read starting address for the source vector address 100 is as follows.
  • the operand R4 is sent to the address selector 130.
  • "0" is set into the selector 130.
  • the output from the selector 130 is stored into a read address register 110 when the operation code designates the element data move instruction and the operand R3, i.e., the source vector register number, designates the vector register 100.
  • the operand R2 is sent to the write address selector 141.
  • "0" is sent to the selector 141.
  • the output from the selector 141 is stored into the write address register 121 when the operation code designates an element data move instruction and the operand R1, i.e., the destination vector register number, designates the vector register 101.
  • the operand R4 is sent into the read address selector 131.
  • "0" is sent into the selector 131.
  • the output from the selector 131 is stored into the read address register 111 when the operation code designates an element data move instruction and the operand R3, i.e., the source vector register number, designates the vector register 101.
  • the operand R2 is sent to the write address selector 140.
  • "0" is sent into the selector 140.
  • the output from the selector 140 is stored into the write address register 120 when the operation code designates the element data move instruction and the operand R1, i.e., the destination vector register number, shows the vector register 100.
  • the maximum number of element data capable of being stored in the vector registers 100 and 101 is 64. If 32 element data are moved from the vector register 100 to the register 101, the vector length register (not shown in the Figure) holds the vector length number "32" in accordance with an instruction indicating the vector length.
  • the operand R3, representing the source vector register number designates the vector register 100
  • the operand R1, representing the destination vector register number designates the vector register 101
  • the operand R4 representing the read starting address for the vector register 100 designates the number "32”.
  • the read starting address designated by the instruction is given to read address selector 130.
  • the address selected by the selector 130 is stored in the read address register 110.
  • "0" is stored in the write address register 121 via the address selector 141.
  • the vector register 100 sends the element data from the location of the register 100 designated by the address register 110 to the selector 200.
  • the read address register 110 has "1" increment function to read the element data in sequentially, and counts the location 33 following location 32.
  • the element data stored in the vector register 100 is read out, and sent to the selector 200.
  • the selector 200 selects the element data read out from the vector register 100 for input to the vector register 101.
  • the vector register 101 starts to store the element data.
  • the write address register 121 has a "1" increment function for writing the element data in sequence like the read address register 110, and counts the location 1 following location 0.
  • the element data is provided from the selector 200 to the location of the vector register 101 designated by the counted location. This operation is complete when the number of element data moved reaches "32", that is, the number is equal to the designated vector length.
  • FIG. 5 An example of a portion of the element data input selector 200 is illustrated in Figure 5.
  • the operation code is provided to the decoder 400 and is judged as to whether or not the code designates an element data move instruction.
  • the operand R3 is decoded by a decoder 402, and the decoded result designates the source vector register to a decoder 400.
  • the gates 500, 510, 420, 530 and 540 select one of the outputs from vector registers 100 and 101, the main storage (not shown in the Figure) and the ALU (not shown in the Figure).
  • the read address register 110 functions to count the number of the vector length designation in sequence so that the next location 0 is designated when the location of the vector register 100 is "63".
  • the source vector register number R3 designates the vector register 100
  • the destination vector register number R1 designates the vector register 101
  • the write starting address R2 for the vector register 101 designates "32".
  • "0" is stored into the read address register 110 via the read address selector 130.
  • the number "32" designated by the instruction as a write starting address is stored into the write address register 121 via the write address selector 141.
  • the read address register 110 has a "1" increment function.
  • the element data is read out from the location 0 of the vector register 100 in sequence, and is sent to the element data input selector 200.
  • the write address register 121 also has a "1" increment function.
  • the vector register 101 starts to store the element data as the element data is output from the location 0 of the vector register 100 via the selector 200. This operation is complete when the number of element data moved are "32", which is equal to the designated vector length. In the case that the designated vector length is more than "64-(m-1)", (where m designates the write starting address of the destination of movement of the element data), after the location of the vector register 101 shows "63", the write address register 121 functions to count "0" as a following location in the vector register 101, and to thereafter count the number of the vector length in sequence.
  • the source vector register number R3 shows the vector register 100
  • the destination vector register number R1 shows the vector register 101
  • the read starting address R4 of the vector register 100 shows "32”
  • the write starting address R2 of the vector register 101 shows "32" in the instruction. Since both of the read starting address and write starting address are designated by the instruction, the starting addresses "32" are stored into the read address register 110 and the write address register 121 via the read address selector 130 and the write address register 141, respectively.
  • the read address register 110 has an increment function
  • the vector data is read out from the location 32 of vector register 100 designated by the content of the read address register 110 and is sent to the selector 200.
  • the write address register 121 has an increment function
  • the element data from the selector 200 is stored into consecutive locations of the vector register 101 starting from the location 32 of the vector register 101.
  • the invention is not limited to a particular number of vector registers.
  • the source vector register for the movement of element data is the vector register 100
  • the destination vector register for the movement of element data is the vector register 100.
  • the scope of the present invention is not limited to the situation mentioned above, but the designation of vector registers is freely performed by the designation of the instruction.
  • the movement of the element data according to the present invention is carried out without going through the main storage or the shift functional unit, so that the performance of element data movement is improved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Description

  • The present invention relates to high speed digital processors, and more particularly to computing machines adapted for vector processing.
  • There are many circumstances in problem solving with computers where it is necessary to perform the same operation repetitively on each successive element of a set of data.
  • To solve such a problem one prior art technique provides vector processing apparatus for a computer, which allows the processing of a plurality of elements of an ordered set of data. US-A-4,128,880 describes an example of such vector processing apparatus. In this apparatus, referring to FIG. 2 of US-A-4,128,880, vector processing in a computer is achieved by means of a plurality of vector registers 20 (V₀-V₇), a plurality of independent fully segmented vector functional units and means for controlling the operation of the vector registers, including fan-outs 22 and 23 for selecting a signal, a data path 21 and a memory 12. Each of vector registers V₀-V₇ has 64 individual elements, each of which can hold a 64 bit word. When the apparatus executes the partial vector processing of the element data in the vector register V₀, it is necessary to move at least one portion of the data in the register V₀ to another register V₁. To accomplish this movement, element data is moved between the vector registers V₀-V₇ and the memory 12 by store/load instructions, or by a shift instruction. When moving by store/load instructions, element data in the register 20 are sequentially stored in the memory 12 via the fan-out 22 and data path 21 by store instructions, and a portion of the element data in the memory 12 are then loaded to the register V₁ via the fan-out 22.
  • When moving by shift instructions, the element data in the register V₀ is sent to the shift functional unit via the fan-out 23 by a shift instruction. The shift functional unit can perform a shift in accordance with a shift quantity designated by the instruction. The output of the shift functional unit is moved, shifted by one word, to the vector register V₁ via the fan-out 23. The desired movement of element data is accomplished by repeating this shift operation. Accordingly, since both techniques need either the memory 12 or the shift functional unit, the performance of element data movement becomes slow. In addition, when the next instruction needs the memory 12 and/or the shift functional unit, a conflict in using these devices has occurred.
  • It is, therefore, one object of the present invention to provide a computer with an improved movement of data elements.
  • The vector processing apparatus according to the present invention is defined in independent claim 1. The subclaims are directed to preferred embodiments of the invention.
  • The present invention will be further described in detail by reference to the following examples and the accompanying drawings, in which:
    • Figure 1 is a diagram of a computer embodying the present invention;
    • Figure 2 is an illustration of the format of the instruction used by the present invention;
    • Figures 3 and 4 are block diagrams for explanation of the addressing designated by the instruction of Figure 2; and
    • Figure 5 is a portion of the detailed schematic diagram of the element data input selector 200 of Figure 1.
  • Referring to Figure 1, a computer according to the present invention includes vector registers 100 and 101, read address registers 110 and 111, write address registers 120 and 121, read address selectors 130 and 131, write address selectors 140 and 141, and an input selector 200 for selecting input element data.
  • A plurality of vector registers, e.g., two vector registers 100 and 101 in this embodiment, hold a plurality of elements of an ordered set of data, respectively. Each of the registers 100 and 101 stores data loaded from a main storage or the result of an arithmetic operation from an ALU.
  • When the apparatus executes the partial vector processing of the element data in the vector register 100, it is necessary to move at least one set of the data in the register 100 to another register 101. In the operation of this case, the instruction shown in Figure 2 is utilized.
  • An instruction will include the operation code (OP) and four operands R1, R2, R3 and R4. The operand R1 designates the destination vector register number, and the operand R3 designates the source vector register number. The operand R2 designates the write starting address of the destination vector register designated by the operand R1. If not necessary to designate the write starting address, it is not used. The operand R4 designates the read starting address of the source vector register designated by the operand R3. If not necessary, it is not used. The operation of designating read starting address for the source vector address 100 is as follows.
  • Referring to Figure 3, when the operation code is decoded as an element data move instruction, the operand R4 is sent to the address selector 130. When the operation code does not designate an element data move instruction, "0" is set into the selector 130. The output from the selector 130 is stored into a read address register 110 when the operation code designates the element data move instruction and the operand R3, i.e., the source vector register number, designates the vector register 100.
  • The operation of determining a write starting address for the destination vector register is as follows.
  • When the operation code designates an element data move instruction, the operand R2 is sent to the write address selector 141. When the operation code does not designate an element data move instruction, "0" is sent to the selector 141. The output from the selector 141 is stored into the write address register 121 when the operation code designates an element data move instruction and the operand R1, i.e., the destination vector register number, designates the vector register 101.
  • The operation of designating an element data move instruction which designates the vector register 101 as a source vector register number and the vector register 100 as a destination vector register number, will be described as is a follows. First, referring to Figure 4, the operation of designating the read starting address for the source vector register will be explained.
  • When the operation code designates an element data move instruction, the operand R4 is sent into the read address selector 131. When the operation code does not designate data move instruction, "0" is sent into the selector 131. The output from the selector 131 is stored into the read address register 111 when the operation code designates an element data move instruction and the operand R3, i.e., the source vector register number, designates the vector register 101.
  • The operation of designating the write starting address for the destination vector register is as follows.
  • When the operation code designates an element data move instruction, the operand R2 is sent to the write address selector 140. When the operation code does not designate a data move instruction, "0" is sent into the selector 140. The output from the selector 140 is stored into the write address register 120 when the operation code designates the element data move instruction and the operand R1, i.e., the destination vector register number, shows the vector register 100.
  • For example, the maximum number of element data capable of being stored in the vector registers 100 and 101 is 64. If 32 element data are moved from the vector register 100 to the register 101, the vector length register (not shown in the Figure) holds the vector length number "32" in accordance with an instruction indicating the vector length.
  • Referring to Figure 1, according to the vector data movement instruction, the operand R3, representing the source vector register number designates the vector register 100, the operand R1, representing the destination vector register number, designates the vector register 101, and the operand R4, representing the read starting address for the vector register 100 designates the number "32". The read starting address designated by the instruction is given to read address selector 130. The address selected by the selector 130 is stored in the read address register 110. On the other hand, since the write starting address is not designated by the instruction, "0" is stored in the write address register 121 via the address selector 141. The vector register 100 sends the element data from the location of the register 100 designated by the address register 110 to the selector 200. The read address register 110 has "1" increment function to read the element data in sequentially, and counts the location 33 following location 32. The element data stored in the vector register 100 is read out, and sent to the selector 200. The selector 200 selects the element data read out from the vector register 100 for input to the vector register 101. On the other hand, when the first element data is output from the selector 200 to the location of the vector register 101 designated by the contents of the write address register 121, the vector register 101 starts to store the element data. The write address register 121 has a "1" increment function for writing the element data in sequence like the read address register 110, and counts the location 1 following location 0. The element data is provided from the selector 200 to the location of the vector register 101 designated by the counted location. This operation is complete when the number of element data moved reaches "32", that is, the number is equal to the designated vector length.
  • An example of a portion of the element data input selector 200 is illustrated in Figure 5. The operation code is provided to the decoder 400 and is judged as to whether or not the code designates an element data move instruction. The operand R3 is decoded by a decoder 402, and the decoded result designates the source vector register to a decoder 400. The gates 500, 510, 420, 530 and 540 select one of the outputs from vector registers 100 and 101, the main storage (not shown in the Figure) and the ALU (not shown in the Figure).
  • Next will be described a case wherein a vector length designation more than 64-(m-1) is used, where m is the read starting address of the source vector register. That is, the read address register 110 functions to count the number of the vector length designation in sequence so that the next location 0 is designated when the location of the vector register 100 is "63".
  • According to a different instruction, the source vector register number R3 designates the vector register 100, the destination vector register number R1 designates the vector register 101, and the write starting address R2 for the vector register 101 designates "32". As the read starting address is not designated by this instruction, "0" is stored into the read address register 110 via the read address selector 130. The number "32" designated by the instruction as a write starting address is stored into the write address register 121 via the write address selector 141. The read address register 110 has a "1" increment function. In response to the address from this register 110, the element data is read out from the location 0 of the vector register 100 in sequence, and is sent to the element data input selector 200. The write address register 121 also has a "1" increment function. The vector register 101 starts to store the element data as the element data is output from the location 0 of the vector register 100 via the selector 200. This operation is complete when the number of element data moved are "32", which is equal to the designated vector length. In the case that the designated vector length is more than "64-(m-1)", (where m designates the write starting address of the destination of movement of the element data), after the location of the vector register 101 shows "63", the write address register 121 functions to count "0" as a following location in the vector register 101, and to thereafter count the number of the vector length in sequence.
  • Next, a further example of data movement will be explained. Now, it is assumed that the source vector register number R3 shows the vector register 100, the destination vector register number R1 shows the vector register 101, the read starting address R4 of the vector register 100 shows "32", and the write starting address R2 of the vector register 101 shows "32" in the instruction. Since both of the read starting address and write starting address are designated by the instruction, the starting addresses "32" are stored into the read address register 110 and the write address register 121 via the read address selector 130 and the write address register 141, respectively. Since the read address register 110 has an increment function, the vector data is read out from the location 32 of vector register 100 designated by the content of the read address register 110 and is sent to the selector 200. Since the write address register 121 has an increment function, the element data from the selector 200 is stored into consecutive locations of the vector register 101 starting from the location 32 of the vector register 101.
  • This operation is completed when the number of element data moved is "32", which is equal to the designated vector length. The read address register 110 continues to count so that the value "0" follows "63" when the value of the vector length designated is greater than 64-(m-1), where "m" indicates the read starting address. In the same way, the write address register 121 continues to count so that the value "0" follows "63" when the value of the vector length designated is greater than 64-(n-1), where "n" indicates the write starting address.
  • Although it is assumed in this embodiment that the number of vector registers is two, the invention is not limited to a particular number of vector registers.
  • Furthermore, it is assumed in this embodiment that the source vector register for the movement of element data is the vector register 100, and the destination vector register for the movement of element data is the vector register 100. However, the scope of the present invention is not limited to the situation mentioned above, but the designation of vector registers is freely performed by the designation of the instruction.
  • The movement of the element data according to the present invention is carried out without going through the main storage or the shift functional unit, so that the performance of element data movement is improved.
  • It should be appreciated that a number of changes and modifications could be made to the embodiment described above. For example, although the implementation described above provides separate read address generation circuits for each of the two illustrated storage devices and similarly provides separate write address generation circuits for each of the storage devices, it would be a relatively straightforward matter to provide a single read address generation circuit which would always be loaded with the read start address and would then have its contents selectively gated to whichever one of the storage devices was designated by the instruction as the source register. A similar arrangement would be provided for the write address circuitry.

Claims (10)

  1. Vector processing apparatus for a computer of the type which performs an operation in accordance with an instruction, said apparatus comprising:
       instruction receiving means (400, 401, 402, 410, 420, 430, 440) for receiving an instruction from said computer;
       first vector register means (100) for storing a plurality of data elements;
       second vector register means (101) for storing a plurality of data elements;
       read addressing means (110, 111) responsive to said instruction received by said receiving means for providing read addresses to one of said first and second vector register means for reading out data elements therefrom; and
       write addressing means (120, 121) responsive to said instruction received by said receiving means for providing write addresses to the other of said first and second vector register means for writing into said other vector register means the data elements read out of said one vector register means; and
       selector means (200) coupled to data inputs and data outputs of both of said first and second vector register means (100, 101)
    characterised by
       said selector means (200) being responsive to said instruction, selector means and instruction being exclusively dedicated to the data transfer between said first and second vector register means (101, 100) designated by said instruction, said selector means thereby passing data from a position of said one vector register means (100, 101) to a position of said other vector register means (101, 100) with both said positions definable by said instruction so that said passing of data is done without using the main storage or functional units of the computer.
  2. A vector processing apparatus as claimed in claim 1, wherein said read addressing means comprises:
       a read address register (110, 111) for providing said read addresses to said one vector register (100, 101) means;
       incrementing means coupled to said read address register (110, 111) for incrementing the read address currently in said read address register (110, 111) to obtain an incremented read address;
       first means for providing a read start address; and
       read address selector means (130, 131) coupled to said incrementing means and coupled to said first means and responsive to said instruction for first providing said read start address and thereafter providing said incremented read address to said read address register (110, 111).
  3. A vector processing apparatus as claimed in claim 2, wherein said instruction includes a field (R4) containing said read start address and said first means comprises means for providing a predetermined read start address and means for selectively providing one of said predetermined read start address and said address contained in said field (R4) of said instruction.
  4. A vector processing apparatus as claimed in any of claims 1 to 3, wherein said instruction includes a field (R3) designating said one of said first and second vector register means (100, 101) as a source vector storage means, and wherein said read addressing means comprises means responsive to said field (R3) for selectively providing said read addresses to the vector register means designated as said source vector register means.
  5. A vector processing apparatus as claimed in any of claims 1 to 4, wherein said read addressing means comprises:
       a first read address generation circuit (110) for generating said read addresses for said first vector register means (100) when activated;
       a second read address generation circuit (111) for generating said read addresses for said second vector register means (101) when activated; and
       read address control means (420, 440) controlled by said instruction for selectively activating one of said first and second read address generation circuits (110, 111).
  6. A vector processing apparatus as claimed in any of claims 1 to 5, wherein said write addressing means comprises;
       a write address register (120, 121) for providing said write addresses to said other of said first and second vector register means (101, 100);
       incrementing means coupled to said write address register (120, 121) for incrementing the write address currently in said write address register to obtain an incremented write address;
       first means for providing a write start address; and
       write address selector means (140, 141) coupled to said first means and coupled to said incrementing means and responsive to said instruction for first providing said write start address and thereafter providing said incremented write address to said write address register (120, 121).
  7. A vector processing apparatus as claimed in claim 6, wherein said instruction includes a field (R2) containing said write start address and said first means comprises means for providing a predetermined write start address and means for selectively providing one of said predetermined write start address and said address contained in said field (R2) of said instruction.
  8. A vector processing apparatus as claimed in any of claims 1 to 7, wherein said instruction includes a field (R1) designating said one of said first and second vector register means (100, 101) as a destination vector register means, and wherein said write addressing means comprises means responsive to said field (R1) for selectively providing said write addresses to the vector register means designated as said destination vector register means.
  9. A vector processing apparatus as claimed in any of claims 1 to 8, wherein said writing addressing means comprises:
       a first write address generation circuit (120) for generating said write addresses for said first vector register means (100) when activated;
       a second write address generation circuit (121) for generating said write addresses for said second vector register means (101) when activated; and
       write address control means (410, 430) controlled by said instruction for selectively activating one of said first and second write address generation circuits (120, 121).
  10. A vector processing apparatus as claimed in any of claims 1 to 9, wherein said selector means (200) receives first and second data inputs from said first and second vector register means (100, 101), respectively, and receives a third data input from a main memory in said computer and a fourth data input from a processing means (ALU) in said computer, said selector means (200) having output means (500 - 540) coupled to said first and second vector register means (100, 101) and being responsive to said instruction for selectively providing any one of its first through fourth data inputs to the one of said first and second vector register means (100, 101) designated by said instruction as a destination vector register means.
EP85108148A 1984-07-02 1985-07-01 Computer vector register processing Expired - Lifetime EP0167959B1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP13677684A JPS6116366A (en) 1984-07-02 1984-07-02 Vector data processor
JP136774/84 1984-07-02
JP136776/84 1984-07-02
JP136773/84 1984-07-02
JP13677484A JPS6116364A (en) 1984-07-02 1984-07-02 Vector data processor
JP13677384A JPS6116363A (en) 1984-07-02 1984-07-02 Vector data processor
JP13677584A JPS6116365A (en) 1984-07-02 1984-07-02 Vector data processor
JP136775/84 1984-07-02

Publications (3)

Publication Number Publication Date
EP0167959A2 EP0167959A2 (en) 1986-01-15
EP0167959A3 EP0167959A3 (en) 1988-09-07
EP0167959B1 true EP0167959B1 (en) 1992-05-06

Family

ID=27472018

Family Applications (1)

Application Number Title Priority Date Filing Date
EP85108148A Expired - Lifetime EP0167959B1 (en) 1984-07-02 1985-07-01 Computer vector register processing

Country Status (3)

Country Link
US (1) US5019969A (en)
EP (1) EP0167959B1 (en)
DE (1) DE3585972D1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276891A (en) * 1990-01-11 1994-01-04 Bull Hn Information Systems Inc. Alignment of sign, data, edit byte operand results for storage in memory
WO1992009968A1 (en) * 1990-11-27 1992-06-11 Cray Research, Inc. VECTOR WORD SHIFT BY Vo SHIFT COUNT IN VECTOR SUPERCOMPUTER PROCESSOR
US5423051A (en) * 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
US5669013A (en) * 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
US5848286A (en) * 1994-03-29 1998-12-08 Cray Research, Inc. Vector word shift by vo shift count in vector supercomputer processor
JPH0877143A (en) * 1994-09-02 1996-03-22 Kofu Nippon Denki Kk Vector data processor
US5680338A (en) * 1995-01-04 1997-10-21 International Business Machines Corporation Method and system for vector processing utilizing selected vector elements
US5893928A (en) * 1997-01-21 1999-04-13 Ford Motor Company Data movement apparatus and method
US5961628A (en) * 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
JP3731385B2 (en) * 1999-06-09 2006-01-05 株式会社日立製作所 Packet switching equipment
JP2004302647A (en) * 2003-03-28 2004-10-28 Seiko Epson Corp Vector processor and register addressing method
JP3985797B2 (en) * 2004-04-16 2007-10-03 ソニー株式会社 Processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3609665A (en) * 1970-03-19 1971-09-28 Burroughs Corp Apparatus for exchanging information between a high-speed memory and a low-speed memory
JPS5148937A (en) * 1974-10-25 1976-04-27 Fujitsu Ltd Kiokusochi niokeru junjoseigyohoshiki
US4296465A (en) * 1977-11-03 1981-10-20 Honeywell Information Systems Inc. Data mover
JPS5725069A (en) * 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
US4541046A (en) * 1981-03-25 1985-09-10 Hitachi, Ltd. Data processing system including scalar data processor and vector data processor
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS58114274A (en) * 1981-12-28 1983-07-07 Hitachi Ltd data processing equipment
JPS58134357A (en) * 1982-02-03 1983-08-10 Hitachi Ltd Array processor
JPS5975365A (en) * 1982-10-22 1984-04-28 Hitachi Ltd Vector processing device
JPH0652530B2 (en) * 1982-10-25 1994-07-06 株式会社日立製作所 Vector processor
JPS59111569A (en) * 1982-12-17 1984-06-27 Hitachi Ltd vector processing device
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
US4697235A (en) * 1983-03-22 1987-09-29 Fujitsu Limited List vector control apparatus
JPS6015771A (en) * 1983-07-08 1985-01-26 Hitachi Ltd Memory controller
JPS6027984A (en) * 1983-07-27 1985-02-13 Hitachi Ltd data processing equipment
JPS6057467A (en) * 1983-09-09 1985-04-03 Nec Corp Vector data processor
JPS6077265A (en) * 1983-10-05 1985-05-01 Hitachi Ltd Vector processor
JPS60134974A (en) * 1983-12-23 1985-07-18 Hitachi Ltd vector processing device
JPS60136870A (en) * 1983-12-26 1985-07-20 Hitachi Ltd vector processing device
JPS621067A (en) * 1985-02-25 1987-01-07 Hitachi Ltd Vector processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing

Also Published As

Publication number Publication date
EP0167959A3 (en) 1988-09-07
DE3585972D1 (en) 1992-06-11
US5019969A (en) 1991-05-28
EP0167959A2 (en) 1986-01-15

Similar Documents

Publication Publication Date Title
US4984151A (en) Flexible, next-address generation microprogram sequencer
US4118773A (en) Microprogram memory bank addressing system
EP0114304B1 (en) Vector processing hardware assist and method
EP0011442B1 (en) Data processing system having an integrated stack and register machine architecture
US4398244A (en) Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4675809A (en) Data processing system for floating point data having a variable length exponent part
US3983539A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US4156903A (en) Data driven digital data processor
EP0022622A1 (en) Programmable controller
EP0148478A2 (en) A data processor with control of the significant bit lenghts of general purpose registers
EP0167959B1 (en) Computer vector register processing
US4204252A (en) Writeable control store for use in a data processing system
US3553653A (en) Addressing an operating memory of a digital computer system
US4630192A (en) Apparatus for executing an instruction and for simultaneously generating and storing related information
EP0136597B1 (en) Vector processor
US4197589A (en) Operation sequencing mechanism
CA2000145C (en) Data transfer controller
US3297997A (en) List control
JPS623461B2 (en)
US4754424A (en) Information processing unit having data generating means for generating immediate data
EP0057096A2 (en) Information processing unit
US5642523A (en) Microprocessor with variable size register windowing
WO1980002755A1 (en) General purpose data buffer
EP0234187B1 (en) Programmably controlled shifting mechanism in a programmable unit having variable data path widths
US5050076A (en) Prefetching queue control system

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19850701

AK Designated contracting states

Designated state(s): BE DE FR GB IT NL SE

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): BE DE FR GB IT NL SE

17Q First examination report despatched

Effective date: 19900129

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): BE DE FR GB IT NL SE

REF Corresponds to:

Ref document number: 3585972

Country of ref document: DE

Date of ref document: 19920611

ET Fr: translation filed
ITF It: translation for a ep patent filed
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
EAL Se: european patent in force in sweden

Ref document number: 85108148.9

REG Reference to a national code

Ref country code: GB

Ref legal event code: IF02

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: BE

Payment date: 20030624

Year of fee payment: 19

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20030625

Year of fee payment: 19

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20030710

Year of fee payment: 19

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: SE

Payment date: 20030711

Year of fee payment: 19

Ref country code: FR

Payment date: 20030711

Year of fee payment: 19

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 20030730

Year of fee payment: 19

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20040701

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20040702

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20040731

BERE Be: lapsed

Owner name: *NEC CORP.

Effective date: 20040731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20050201

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20050201

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20040701

EUG Se: european patent has lapsed
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20050331

NLV4 Nl: lapsed or anulled due to non-payment of the annual fee

Effective date: 20050201

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

BERE Be: lapsed

Owner name: *NEC CORP.

Effective date: 20040731