EP0240032A2

Vector processor with vector data compression/expansion capability.

Abstract

A vector processor comprises a memory (1) for storing vector data, a plurality of vector registers each capable of reading or writing plural (m) vector elements in parallel, at least one mask vector register (4) capable of m mask bits in parallel, transfer portion (2, 2-0, 2-1, 2-2, 2-3) connected to the memory, the plurality of vector registers and the mask vector register and responsive to an instruction for transferring vector elements from regularly spaced address locations within the memory to selected storage locations of a selected vector register corresponding to valid mask bits. The transfer portion includes at least one count portion (307) connected to the mask vector register for counting a total number of valid mask bits within already read out mask bits and plural (m) access portion (300 to 306, 308, 310 in 2-i (i=0 - 3)) operable concurrently and connected to the count means and the mask vector register and each responsive to validness of a corresponding one within currently read out m mask bits, to a total number of valid mask bits or invalid mask bits included within the currently read m mask bits and having preceding sequential numbers of element to that of the corresponding mask bit and to the counted total number each for generating an address of an location within the memory which hold a vector element to be transferred to a storage location corresponding to the corresponding mask bit within the selected vector register or which should receive a vector element read out from the storage location.

EP0240032A2, drawing sheet 1
Sheet 1 of 15

Term

Term ended

Projected expiry passed 3 April 2007, 19.5 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

2 claims: 2 independent, 0 dependent

  1. 1
    A vector processor, comprising:(a) a memory (1) for storing vector data;(b) a plurality of vector registers each capable of reading or writing plural (m) vector elements in parallel;(c) at least one mask vector register (4) capable of m mask bits in parallel;(d) transfer means (2, 2-0, 2-1, 2-2, 2-3) connected to said memory, said plurality of vector registers and said mask vector register and responsive to an instruction for transferring vector elements from regularly spaced address locations within said memory to selected storage locations of a selected vector register corresponding to valid mask bits, said transfer means including: (dl) at least one count means (307) connected to said mask vector register for counting a total number of valid mask bits within already read out mask bits;(d2) plural (m) access means (300 to 306, 308, 310 in 2-i (i=0 - 3) operable concurrently and connected to said count means and said mask vector register and each responsive to validness of a corresponding one within currently read out m mask bits, to a total number of valid mask bits or invalid mask bits included within the currently read m mask bits and having preceding sequential numbers of element to that of the corresponding mask bit and to the counted total number each for generating an address of an location within said memory which hold a vector element to be transferred to a storage location corresponding to the corresponding mask bit within the selected vector register or which should receive a vector element read out from the storage location.
  2. 2
    A vector processor comprising:(a) a memory (1) for storing vector data;(b) a plurality of vector registers (3) each having a plurality of serially accessable storage location groups each having a predetermined number (m) of storage locations, the m storage locations in each group being accessable to allow parallel reading or writing of vector elements;(c) at least one vector mask register (4) capable of parallelly reading m mask bits corresponding to the storage locations of each of the storage location groups of said vector registers;and ( d ) transfer means (2, 2-0, 2-1, 2-2, 2-3) for parallely reading from said memory a plurality of vector elements to be written into each of the storage location groups in one of said vector registers or parallelly writing into said memory the plurality of vector elements read from the storage locations of each group in said one vector register, including, (dl) means for detecting a total number of valid mask bits of m mask bits supplied from said mask vector register for an t-th storage location group of said one vector register to be next read or written, (d2) first to m-th registers each holding, as an initial value, an address of the storage location in said memory for a predetermined vector element of the vector data to be read from said memory or the vector data to be written into said memory, (d3) first to m-th signal means, said first signal means producing a predetermined number of bits, and i-th signal means of said second to m-th signal means counting and producing the number of valid mask bits or invalid mask bits contained in the first to (i-l)th mask bit groups of the m supplied mask bits, (d4) first to m-th address means, i-th address means thereof issuing a read request or write request to said memory if the i-th mask bit in the m supplied mask bits is valid, and generating and sending to said memory an address of a vector element to be written into an i-th storage location in the t-th storage location group or an address to which the vector element read from the i-th storage location is to be written based on the address in said first register and the output of said i-th signal means, and (d5) first to m-th address update means for incrementing the addresses in said first to m-th registers by products of the numbers of bits produced by said first to m-th signal means multipled by the address increment of the vector data.