US20060155953A1 - Method and apparatus for accessing multiple vector elements in parallel - Google Patents

Method and apparatus for accessing multiple vector elements in parallel Download PDF

Info

Publication number
US20060155953A1
US20060155953A1 US10/522,085 US52208505A US2006155953A1 US 20060155953 A1 US20060155953 A1 US 20060155953A1 US 52208505 A US52208505 A US 52208505A US 2006155953 A1 US2006155953 A1 US 2006155953A1
Authority
US
United States
Prior art keywords
memory
vector
address
elements
port
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.)
Abandoned
Application number
US10/522,085
Inventor
Antonius Van Wel
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.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
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
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Priority to US10/522,085 priority Critical patent/US20060155953A1/en
Priority claimed from PCT/IB2003/003150 external-priority patent/WO2004013752A1/en
Assigned to KONNINKLIJKE PHILIPS ELECTRONICS, N.V. reassignment KONNINKLIJKE PHILIPS ELECTRONICS, N.V. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VAN WEL, ANTONIUS
Publication of US20060155953A1 publication Critical patent/US20060155953A1/en
Assigned to NXP B.V. reassignment NXP B.V. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KONINKLIJKE PHILIPS ELECTRONICS N.V.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Definitions

  • the present invention relates to a computer system comprising:
  • the multi-port memory being accessible by the processor.
  • the present invention further relates to a method for transmitting a vector, in said computer system.
  • the present invention relates to a computer program for implementing said method.
  • Vector processing is a suitable technique for processing applications that have large computational demands.
  • Vector processors provide high-level operations that work on vectors, i.e. linear arrays of numbers.
  • Vector processors pipeline the operations on the individual elements of a vector.
  • the pipeline includes not only the arithmetic operations, but also memory accesses and effective address calculations.
  • most high-end vector processors allow multiple operations to be done at the same time, creating parallelism among the operations on different elements.
  • Vector instructions have several important properties. First, the computations of each result are independent of the computations of previous results, allowing a very deep pipeline without generating any data hazards. Second, a vector instruction is equivalent to executing an entire loop, reducing the instruction bandwidth requirement.
  • a vector memory system has a large datawidth, which allows retrieving a complete vector of data elements in one memory access using a single memory address. Subsequently, these data elements can be processed in parallel.
  • several problems can occur when retrieving data from a vector memory system.
  • the problem of vector alignment is related to reading from a vector memory system data that cross vector boundaries. In that case the data can be retrieved by requesting the contents of two memory addresses, i.e. two vectors, and subsequently transfer the requested data to a new vector
  • U.S. Pat. No. 5,933,650 describes methods for alignment and ordering of vector elements.
  • one vector is loaded from a memory unit into a first register and another vector is loaded from the memory unit into a second register.
  • a starting byte specifying the first byte of an aligned vector is determined.
  • a vector is extracted from the first register and the second register beginning from the first bit in the first byte of the first register continuing through the bits in the second register.
  • the extracted vector is replicated into a third register such that the third register contains a plurality of elements aligned for vector processing.
  • a first vector is loaded from a memory unit into a first register and a second vector is loaded from the memory unit into a second register.
  • a subset of elements is selected from the first register and the second register.
  • the elements from the subset are then replicated into the elements in the third register in a particular order suitable for subsequent vector processing.
  • An object of the invention is to provide an improved method for vector alignment and ordering of vector elements, resulting in a better performance of vector processors.
  • the method allows transmitting a complete vector to or from a multi-port memory, using a single base memory address.
  • the data elements of a vector can be transmitted to or from arbitrary positions within the memory, improving flexibility and avoiding problems related to vector alignment and ordering of vector elements.
  • the use of a multi-port memory in combination with said address configuration means reduces the instruction width.
  • a complete vector can be transmitted using a single base memory address, whereas otherwise each memory address used by the multi-port memory should be present in the instruction. For certain types of processors, such as very large instruction word processors, reducing the code size is an important issue.
  • a computer system is characterized in that the computer system further comprises an address configuration means, wherein the address configuration means is conceived to define a set of memory addresses using a base memory address and a configuration instruction for configuring the address configuration means, and wherein the multi-port memory is conceived to use the set of memory addresses.
  • the address configuration means is conceived to define a set of memory addresses using a base memory address and a configuration instruction for configuring the address configuration means
  • the multi-port memory is conceived to use the set of memory addresses.
  • Complete vectors can be transmitted to or from the multi-port memory using one base memory address, which reduces memory overhead and increases the performance of the computer system.
  • a computer program for implementing the method according to the invention for transmitting a vector is defined in Claim 8 .
  • the address configuration means comprises: a plurality of register files arranged to be configured by the configuration instruction, and a plurality of address calculation units for calculating the set of memory addresses;
  • the register files are accessible by the address calculation units
  • the address calculation units are coupled to the multi-port memory.
  • the configuration instruction configures the plurality of register files, and these register files can hold this configuration until the next configuration instruction is executed. In between, this configuration can be used repeatedly, for example during execution of a loop of instructions.
  • An embodiment of the computer system according to the invention is characterized in that the configuration instruction comprises a set of offsets, each offset in combination with the base memory address defining a second memory address.
  • the set of offsets can be directly loaded in the plurality of register files and used by the plurality of address calculation units, improving the performance of the address configuration means.
  • FIG. 1 shows a schematic diagram of a computer system according to the invention.
  • FIG. 2 shows a schematic diagram of a memory system having a multi-port memory and an address configuration means.
  • FIG. 1 shows a block diagram of a computer system comprising a processor PROC, an address configuration unit ACU, a multi-port memory MEM and a system bus SB.
  • the processor PROC, the address configuration unit ACU and the multi-port memory MEM are coupled via the system bus SB.
  • the processor PROC may issue operations to access the multi-port memory MEM in order to read or write a vector with data elements.
  • the address configuration unit ACU Prior to reading or writing a set of data elements from the multi-port memory MEM, the address configuration unit ACU should be configured by means of a configuration instruction, issued by the processor PROC.
  • the configuration instruction configures the address configuration unit ACU so that it is capable of calculating a set of memory addresses specific for the set of data elements to be retrieved from the multi-port memory MEM, using a base memory address.
  • the configuration of the address calculation unit ACU remains unchanged until a next configuration instruction is issued.
  • the processor issues a read operation, comprising a base memory address, and the latter is sent to the address calculation unit ACU.
  • the address calculation unit ACU calculates a set of memory addresses. These memory addresses are sent to the multi-port memory MEM via the system bus SB, followed by reading the data elements from the multi-port memory MEM. These data elements are sent as a single vector to the processor PROC and used for further processing.
  • a base memory address is sent to the address configuration unit ACU.
  • the address configuration unit ACU calculates a set of memory addresses, which are sent to the multi-port memory MEM, via the system bus SB.
  • the data elements are also sent to the multi-port memory MEM via the system bus SB.
  • the data elements are written to the multi-port memory MEM.
  • FIG. 2 shows a block diagram of a memory system MS, comprising a multi-port memory MEM and an embodiment of an address configuration unit ACU.
  • the multi-port memory MEM comprises a RAM memory, four data input ports DatIn, four address ports Addr and four data output ports DatOut.
  • the address configuration unit ACU comprises an address port AddrIn, four address calculation units AU, four register files RF and four data input ports DatIn.
  • the data inputs DatIn are shared data input ports for both the address configuration unit ACU and the multi-port memory MEM.
  • the address input port AddrIn is coupled to the address calculation units AU, and the address calculation units AU are coupled to their corresponding address port Addr of the multi-port memory MEM.
  • the data input ports DatIn are coupled to the register files RF.
  • the register files RF are accessible by the address calculation units AU.
  • the multi-port memory MEM supports commands for reading and writing of data.
  • data can be read from the RAM memory via the data output ports DatOut.
  • the four data elements read from the data output ports DatOut can be combined into one vector.
  • a set of four data elements can be written to the multi-port memory, via the data input ports DatIn and using the address ports Addr for memory addressing.
  • the address configuration units ACU support a configuration instruction, which specifies a set of offsets relative to a base memory address.
  • a configuration instruction which specifies a set of offsets relative to a base memory address.
  • an offset value is written to each of the register files RF, via the corresponding data input port DatIn.
  • the address calculation units AU fetch the offset value from their corresponding register file RF and store this value internally.
  • a base memory address is provided at the address port AddrIn.
  • the address calculation units AU take the value of the base memory address from the address input port AddrIn and add their corresponding offset value.
  • the address calculation units AU send the resulting set of memory addresses to the corresponding address ports Addr, and subsequently a read command is issued to the multi-port memory MEM.
  • the resulting set of data elements is provided at the data output ports DatOut of the multi-port memory MEM.
  • the processor PROC may also issue a write operation to the memory system MS in order to write a set of data elements to the RAM memory.
  • the address port AddrIn receives a base memory address.
  • the address calculation units AU calculate a set of memory addresses, using the base memory address and their corresponding offset value.
  • the resulting set of memory addresses is sent to the corresponding address ports Addr of the multi-port memory MEM.
  • the data elements are sent to the data input ports DatIn of the multi-port memory MEM. Subsequently, a write command is issued to the multi-port memory MEM and the data elements are written to the RAM memory.
  • the configuration instruction may comprise a set of commands issued to the address configuration units AU for calculating a set of offsets.
  • the set of offsets received by the register files RF will be such that in combination with a base memory address the address calculation units AU are capable of defining an arbitrary set of memory addresses.
  • a set of data elements can be simultaneously written to or retrieved from the multi-port memory MEM.
  • the memory system MS therefore behaves as a vector memory system, having the advantage of allowing retrieving a set of data elements from arbitrary memory locations using one base memory address.
  • the memory system MS has the advantage that using one memory address, a set of data elements can be addressed instead of requiring a set of memory addresses from an external source.
  • the instruction width can be reduced, which is especially of interest for very large instruction word processors, where reduction of code size is an important issue.
  • any reference signs placed between parentheses shall not be construed as limiting the claim.
  • the word “comprising” does not exclude the presence of elements or steps other than those listed in a claim.
  • the word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements.
  • the invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Abstract

Vector processing is a suitable technique for processing applications that have large computational demands. Vector processors provide high-level operations that work on vectors, i.e. linear arrays of numbers. Vector operations can be made faster than a sequence of scalar operations on the same number or data items. Typical applications where vector processing can be used is the domain of audio and video processing. A vector memory system has a large data width, which allows retrieving a complete vector of data elements in one memory access using a single memory address. Subsequently, these data elements can be processed in parallel. However, when using vector memory systems the problem of vector alignment and ordering of a set of elements of a vector can occur. The present invention provides an improved method for vector alignment and ordering of vector elements in a computer system comprising a processor (PROC) and a multi-port memory (MEM), resulting in a better performance. The first step comprises passing of a base memory address to an address configuration unit (ACU). Next, defining a set of memory addresses by the address configuration unit (ACU) using the base memory address and a configuration instruction for configuring the address configuration unit. Finally, transmitting a vector to or from the multi-port memory (MEM) using the set of memory addresses.

Description

    TECHNICAL FIELD
  • The present invention relates to a computer system comprising:
  • a processor;
  • a multi-port memory, the multi-port memory being accessible by the processor.
  • The present invention further relates to a method for transmitting a vector, in said computer system.
  • Still further, the present invention relates to a computer program for implementing said method.
  • BACKGROUND ART
  • Vector processing is a suitable technique for processing applications that have large computational demands. Vector processors provide high-level operations that work on vectors, i.e. linear arrays of numbers. Vector processors pipeline the operations on the individual elements of a vector. The pipeline includes not only the arithmetic operations, but also memory accesses and effective address calculations. In addition, most high-end vector processors allow multiple operations to be done at the same time, creating parallelism among the operations on different elements. Vector instructions have several important properties. First, the computations of each result are independent of the computations of previous results, allowing a very deep pipeline without generating any data hazards. Second, a vector instruction is equivalent to executing an entire loop, reducing the instruction bandwidth requirement. Third, the overhead of memory access is reduced, as in a single access a complete vector is retrieved instead of a data element. For these reasons, vector operations can be made faster than a sequence of scalar operations on the same number or data items. Typical applications where vector processing can be used is the domain of audio and video processing.
  • A vector memory system has a large datawidth, which allows retrieving a complete vector of data elements in one memory access using a single memory address. Subsequently, these data elements can be processed in parallel. However, several problems can occur when retrieving data from a vector memory system. First, the problem of vector alignment is related to reading from a vector memory system data that cross vector boundaries. In that case the data can be retrieved by requesting the contents of two memory addresses, i.e. two vectors, and subsequently transfer the requested data to a new vector Second, a problem arises when ordering of a set of elements of a vector, deviating from the order in which they are stored, is required. In case a vector is required with an ordered set of elements stored in different vectors, the contents of these vector have to be retrieved requiring at least two memory accesses followed by selection of the proper data elements. U.S. Pat. No. 5,933,650 describes methods for alignment and ordering of vector elements. In the alignment of vector elements, one vector is loaded from a memory unit into a first register and another vector is loaded from the memory unit into a second register. A starting byte specifying the first byte of an aligned vector is determined. Next, a vector is extracted from the first register and the second register beginning from the first bit in the first byte of the first register continuing through the bits in the second register. Finally, the extracted vector is replicated into a third register such that the third register contains a plurality of elements aligned for vector processing. In the ordering of vector elements, a first vector is loaded from a memory unit into a first register and a second vector is loaded from the memory unit into a second register. Then, a subset of elements is selected from the first register and the second register. The elements from the subset are then replicated into the elements in the third register in a particular order suitable for subsequent vector processing.
  • It is a disadvantage of the prior art methods for alignment and ordering of vector elements that more than one read access to the vector memory system is required, increasing the overhead for obtaining vector data. Furthermore, additional hardware is required, e.g. for temporarily storing of vectors from which elements have to be selected for vector alignment or vector ordering.
  • DISCLOSURE OF INVENTION
  • An object of the invention is to provide an improved method for vector alignment and ordering of vector elements, resulting in a better performance of vector processors.
  • This object is achieved with a method for transmitting a vector, characterized in that the method comprises the steps of:
  • passing a base memory address to an address configuration means;
  • defining a set of memory addresses by the address configuration means using the base memory address and a configuration instruction for configuring the address configuration means;
  • transmitting the vector to/from the multi-port memory using the set of memory addresses.
  • The method allows transmitting a complete vector to or from a multi-port memory, using a single base memory address. The data elements of a vector can be transmitted to or from arbitrary positions within the memory, improving flexibility and avoiding problems related to vector alignment and ordering of vector elements. Furthermore, the use of a multi-port memory in combination with said address configuration means reduces the instruction width. A complete vector can be transmitted using a single base memory address, whereas otherwise each memory address used by the multi-port memory should be present in the instruction. For certain types of processors, such as very large instruction word processors, reducing the code size is an important issue.
  • According to the invention a computer system is characterized in that the computer system further comprises an address configuration means, wherein the address configuration means is conceived to define a set of memory addresses using a base memory address and a configuration instruction for configuring the address configuration means, and wherein the multi-port memory is conceived to use the set of memory addresses. Complete vectors can be transmitted to or from the multi-port memory using one base memory address, which reduces memory overhead and increases the performance of the computer system.
  • Preferred embodiments of the invention are defined in the dependent claims. A computer program for implementing the method according to the invention for transmitting a vector is defined in Claim 8.
  • An embodiment of the computer system according to the invention is characterized in that:
  • the address configuration means comprises: a plurality of register files arranged to be configured by the configuration instruction, and a plurality of address calculation units for calculating the set of memory addresses;
  • the register files are accessible by the address calculation units;
  • the address calculation units are coupled to the multi-port memory.
  • The configuration instruction configures the plurality of register files, and these register files can hold this configuration until the next configuration instruction is executed. In between, this configuration can be used repeatedly, for example during execution of a loop of instructions.
  • An embodiment of the computer system according to the invention is characterized in that the configuration instruction comprises a set of offsets, each offset in combination with the base memory address defining a second memory address. The set of offsets can be directly loaded in the plurality of register files and used by the plurality of address calculation units, improving the performance of the address configuration means.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The features of the described embodiments will be further elucidated and described with reference to the drawings:
  • FIG. 1 shows a schematic diagram of a computer system according to the invention.
  • FIG. 2 shows a schematic diagram of a memory system having a multi-port memory and an address configuration means.
  • DESCRIPTION OF PREFERRED EMBODIMENTS
  • FIG. 1 shows a block diagram of a computer system comprising a processor PROC, an address configuration unit ACU, a multi-port memory MEM and a system bus SB. The processor PROC, the address configuration unit ACU and the multi-port memory MEM are coupled via the system bus SB. During execution of instructions, the processor PROC may issue operations to access the multi-port memory MEM in order to read or write a vector with data elements. Prior to reading or writing a set of data elements from the multi-port memory MEM, the address configuration unit ACU should be configured by means of a configuration instruction, issued by the processor PROC. The configuration instruction configures the address configuration unit ACU so that it is capable of calculating a set of memory addresses specific for the set of data elements to be retrieved from the multi-port memory MEM, using a base memory address. The configuration of the address calculation unit ACU remains unchanged until a next configuration instruction is issued. After configuring the address configuration unit ACU, the processor issues a read operation, comprising a base memory address, and the latter is sent to the address calculation unit ACU. Subsequently the address calculation unit ACU calculates a set of memory addresses. These memory addresses are sent to the multi-port memory MEM via the system bus SB, followed by reading the data elements from the multi-port memory MEM. These data elements are sent as a single vector to the processor PROC and used for further processing. In case the processor PROC issues a write operation, a base memory address is sent to the address configuration unit ACU. The address configuration unit ACU calculates a set of memory addresses, which are sent to the multi-port memory MEM, via the system bus SB. The data elements are also sent to the multi-port memory MEM via the system bus SB. In a next step, the data elements are written to the multi-port memory MEM. Prior to a next write or read operation it may be necessary to issue a new configuration instruction, depending on the set of memory addresses that is required. For example, in case a set of data elements must be read requiring the same set of memory addresses and applying the same base memory addresses, the configuration command does not have to be repeated. When a different base memory address is used, but the required configuration of the address configuration unit ACU remains identical, a new configuration instruction does not have to be issued either.
  • FIG. 2 shows a block diagram of a memory system MS, comprising a multi-port memory MEM and an embodiment of an address configuration unit ACU. The multi-port memory MEM comprises a RAM memory, four data input ports DatIn, four address ports Addr and four data output ports DatOut. The address configuration unit ACU comprises an address port AddrIn, four address calculation units AU, four register files RF and four data input ports DatIn. In this embodiment, the data inputs DatIn are shared data input ports for both the address configuration unit ACU and the multi-port memory MEM. The address input port AddrIn is coupled to the address calculation units AU, and the address calculation units AU are coupled to their corresponding address port Addr of the multi-port memory MEM. The data input ports DatIn are coupled to the register files RF. The register files RF are accessible by the address calculation units AU.
  • The multi-port memory MEM supports commands for reading and writing of data. Using the address ports Addr, data can be read from the RAM memory via the data output ports DatOut. The four data elements read from the data output ports DatOut can be combined into one vector. A set of four data elements can be written to the multi-port memory, via the data input ports DatIn and using the address ports Addr for memory addressing.
  • The address configuration units ACU support a configuration instruction, which specifies a set of offsets relative to a base memory address. When executing the configuration instruction, an offset value is written to each of the register files RF, via the corresponding data input port DatIn. Subsequently, the address calculation units AU fetch the offset value from their corresponding register file RF and store this value internally.
  • In case the processor PROC issues a read operation to the memory system MS, a base memory address is provided at the address port AddrIn. The address calculation units AU take the value of the base memory address from the address input port AddrIn and add their corresponding offset value. The address calculation units AU send the resulting set of memory addresses to the corresponding address ports Addr, and subsequently a read command is issued to the multi-port memory MEM. The resulting set of data elements is provided at the data output ports DatOut of the multi-port memory MEM. The processor PROC may also issue a write operation to the memory system MS in order to write a set of data elements to the RAM memory. The address port AddrIn receives a base memory address. The address calculation units AU calculate a set of memory addresses, using the base memory address and their corresponding offset value. The resulting set of memory addresses is sent to the corresponding address ports Addr of the multi-port memory MEM. The data elements are sent to the data input ports DatIn of the multi-port memory MEM. Subsequently, a write command is issued to the multi-port memory MEM and the data elements are written to the RAM memory.
  • In other embodiments, the configuration instruction may comprise a set of commands issued to the address configuration units AU for calculating a set of offsets.
  • Using a proper configuration instruction, the set of offsets received by the register files RF will be such that in combination with a base memory address the address calculation units AU are capable of defining an arbitrary set of memory addresses. Using this set of memory addresses, a set of data elements can be simultaneously written to or retrieved from the multi-port memory MEM. The memory system MS therefore behaves as a vector memory system, having the advantage of allowing retrieving a set of data elements from arbitrary memory locations using one base memory address. Furthermore, compared to a multi-port memory, the memory system MS has the advantage that using one memory address, a set of data elements can be addressed instead of requiring a set of memory addresses from an external source. As a result, the instruction width can be reduced, which is especially of interest for very large instruction word processors, where reduction of code size is an important issue.
  • It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. The invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims (8)

1. Method for transmitting a vector, in a computer system comprising:
a processor;
a multi-port memory, which is accessible by the processor,
characterized in that the method comprises the steps of:
passing a base memory address to an address configuration means;
defining a set of memory addresses by the address configuration means using the base memory address and a configuration instruction for configuring the address configuration means;
transmitting the vector to/from the multi-port memory using the set of memory addresses.
2. Method according to claim 1, wherein:
the address configuration means comprises: a plurality of register files being configured by the configuration instruction, and a plurality of address calculation units for calculating the set of memory addresses;
the register files being accessible by the address calculation units;
the address calculation units being coupled to the multi-port memory.
3. Method according to claim 1, wherein:
the configuration instruction comprises a set of offsets, each offset in combination with the base memory address defining a second memory address.
4. A computer system comprising:
a processor;
a multi-port memory, the multi-port memory being accessible by the processor,
characterized in that the computer system further comprises an address configuration means, wherein the address configuration means is conceived to define a set of memory addresses using a base memory address and a configuration instruction for configuring the address configuration means, and wherein the multi-port memory is conceived to use the set of memory addresses.
5. A computer system according to claim 4, wherein:
the address configuration means comprises: a plurality of register files arranged to be configured by the configuration instruction, and a plurality of address calculation units for calculating the set of memory addresses;
the register fils are accessible by the address calculation units;
the address calculation units are coupled to the multi-port memory.
6. A computer system according to claim 4, wherein:
the configuration instruction comprises a set of offsets, each offset in combination with the base memory address defining a second memory address.
7. A computer system according to claim 4 wherein the multi-port memory and the address configuration means are included in a memory system.
8. A computer program comprising computer program code means for instructing a computer system to perform the steps of the method as claimed in claim 1.
US10/522,085 2000-06-19 2003-07-10 Method and apparatus for accessing multiple vector elements in parallel Abandoned US20060155953A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/522,085 US20060155953A1 (en) 2000-06-19 2003-07-10 Method and apparatus for accessing multiple vector elements in parallel

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/596,321 US6463518B1 (en) 2000-06-19 2000-06-19 Generation of memory addresses for accessing a memory utilizing scheme registers
US10/522,085 US20060155953A1 (en) 2000-06-19 2003-07-10 Method and apparatus for accessing multiple vector elements in parallel
PCT/IB2003/003150 WO2004013752A1 (en) 2002-07-26 2003-07-10 Method and apparatus for accessing multiple vector elements in parallel

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/596,321 Continuation-In-Part US6463518B1 (en) 2000-06-19 2000-06-19 Generation of memory addresses for accessing a memory utilizing scheme registers

Publications (1)

Publication Number Publication Date
US20060155953A1 true US20060155953A1 (en) 2006-07-13

Family

ID=24386859

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/596,321 Expired - Lifetime US6463518B1 (en) 2000-06-19 2000-06-19 Generation of memory addresses for accessing a memory utilizing scheme registers
US10/522,085 Abandoned US20060155953A1 (en) 2000-06-19 2003-07-10 Method and apparatus for accessing multiple vector elements in parallel

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/596,321 Expired - Lifetime US6463518B1 (en) 2000-06-19 2000-06-19 Generation of memory addresses for accessing a memory utilizing scheme registers

Country Status (4)

Country Link
US (2) US6463518B1 (en)
EP (1) EP1297416A1 (en)
JP (1) JP2004501470A (en)
WO (1) WO2001098893A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125624A1 (en) * 2003-12-09 2005-06-09 Arm Limited Data processing apparatus and method for moving data between registers and memory
CN103699360A (en) * 2012-09-27 2014-04-02 北京中科晶上科技有限公司 Vector processor and vector data access and interaction method thereof

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463518B1 (en) * 2000-06-19 2002-10-08 Philips Electronics No. America Corp. Generation of memory addresses for accessing a memory utilizing scheme registers
JP2002215606A (en) * 2001-01-24 2002-08-02 Mitsubishi Electric Corp Data processor
EP1369774A1 (en) * 2002-06-06 2003-12-10 CSEM Centre Suisse d'Electronique et de Microtechnique SA Recherche et Développement Device for elaborating adresses for a digital signal processor
US8561107B1 (en) * 2002-07-10 2013-10-15 At&T Intellectual Property Ii, L.P. Method and apparatus for selecting customized multimedia content for a user in pervasive computing environments
US8656004B1 (en) 2002-07-10 2014-02-18 At&T Intellectual Property Ii, L.P. Method and apparatus for delivering selected multimedia content to a user in pervasive computing environments
JP2005534120A (en) * 2002-07-26 2005-11-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Apparatus and method for accessing multiple vector elements in parallel
US7003653B2 (en) 2002-10-21 2006-02-21 Sun Microsystems, Inc. Method for rapid interpretation of results returned by a parallel compare instruction
US7293155B2 (en) 2003-05-30 2007-11-06 Intel Corporation Management of access to data from memory
US8051272B2 (en) * 2006-05-15 2011-11-01 Samsung Electronics Co., Ltd. Method and system for generating addresses for a processor
US8161264B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for data prefetching using indirect addressing with offset
US8209488B2 (en) * 2008-02-01 2012-06-26 International Business Machines Corporation Techniques for prediction-based indirect data prefetching
US10180829B2 (en) * 2015-12-15 2019-01-15 Nxp Usa, Inc. System and method for modulo addressing vectorization with invariant code motion

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590353A (en) * 1993-07-15 1996-12-31 Hitachi, Ltd. Vector processor adopting a memory skewing scheme for preventing degradation of access performance
US6463518B1 (en) * 2000-06-19 2002-10-08 Philips Electronics No. America Corp. Generation of memory addresses for accessing a memory utilizing scheme registers

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4935867A (en) 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
EP0466550B1 (en) 1990-06-29 1998-11-18 Digital Equipment Corporation Conversion of internal processor register commands to I/O space address
US5357618A (en) 1991-04-15 1994-10-18 International Business Machines Corporation Cache prefetch and bypass using stride registers
JP3449566B2 (en) 1994-01-28 2003-09-22 株式会社リコー Address generator
US5890222A (en) * 1995-01-04 1999-03-30 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indirect addressing mode
US5860155A (en) * 1995-11-16 1999-01-12 Utek Semiconductor Corporation Instruction decoding mechanism for reducing execution time by earlier detection and replacement of indirect addresses with direct addresses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590353A (en) * 1993-07-15 1996-12-31 Hitachi, Ltd. Vector processor adopting a memory skewing scheme for preventing degradation of access performance
US6463518B1 (en) * 2000-06-19 2002-10-08 Philips Electronics No. America Corp. Generation of memory addresses for accessing a memory utilizing scheme registers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125624A1 (en) * 2003-12-09 2005-06-09 Arm Limited Data processing apparatus and method for moving data between registers and memory
US7210023B2 (en) * 2003-12-09 2007-04-24 Arm Limited Data processing apparatus and method for moving data between registers and memory in response to an access instruction having an alignment specifier identifying an alignment to be associated with a start address
CN103699360A (en) * 2012-09-27 2014-04-02 北京中科晶上科技有限公司 Vector processor and vector data access and interaction method thereof

Also Published As

Publication number Publication date
EP1297416A1 (en) 2003-04-02
WO2001098893A1 (en) 2001-12-27
JP2004501470A (en) 2004-01-15
US6463518B1 (en) 2002-10-08

Similar Documents

Publication Publication Date Title
US5832290A (en) Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems
US11183225B2 (en) Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
US20060155953A1 (en) Method and apparatus for accessing multiple vector elements in parallel
US5892963A (en) System and method for assigning tags to instructions to control instruction execution
US8046568B2 (en) Microprocessor with integrated high speed memory
EP0507208A2 (en) A data processing system with combined static and dynamic masking of information in an operand
JP2002518730A (en) Register and method for accessing register used in single instruction multiple data system
JPH0764853A (en) Variable-accuracy indirect addressing method for simd multiprocessor and apparatus for execution of it
US9400652B1 (en) Methods and apparatus for address translation functions
KR102590679B1 (en) Testing bit values inside vector elements
US6880057B1 (en) Split write data processing mechanism for memory controllers utilizing inactive periods during write data processing for other transactions
US5307300A (en) High speed processing unit
JP2818529B2 (en) Information storage device
US7774583B1 (en) Processing bypass register file system and method
WO2004013752A1 (en) Method and apparatus for accessing multiple vector elements in parallel
US3798615A (en) Computer system with program-controlled program counters
US10862485B1 (en) Lookup table index for a processor
JP2002527812A (en) Vector data processor with conditional instructions
US5752271A (en) Method and apparatus for using double precision addressable registers for single precision data
US6405233B1 (en) Unaligned semaphore adder
US7069386B2 (en) Associative memory device
CN108733625B (en) Arithmetic device and method
US8209520B2 (en) Expanded functionality of processor operations within a fixed width instruction encoding
JPH1091593A (en) Data processor provided with microprocessor and optional calculation unit
JPH03225452A (en) Processing for inserting/extracting tag bit for bit encode data processing system and data word

Legal Events

Date Code Title Description
AS Assignment

Owner name: KONNINKLIJKE PHILIPS ELECTRONICS, N.V., NETHERLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VAN WEL, ANTONIUS;REEL/FRAME:017051/0886

Effective date: 20040226

AS Assignment

Owner name: NXP B.V., NETHERLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KONINKLIJKE PHILIPS ELECTRONICS N.V.;REEL/FRAME:019719/0843

Effective date: 20070704

Owner name: NXP B.V.,NETHERLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KONINKLIJKE PHILIPS ELECTRONICS N.V.;REEL/FRAME:019719/0843

Effective date: 20070704

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION