A compiler and vector data transfer instructions for use in a vector
transfer unit for handling transfers of vector data between a memory and a
data processor in a computer system. The compiler identifies the use of
vector data in an application program and implements one or more vector
instructions for transferring the vector data between memory and registers
used to perform calculations on the vector data. A vector is partitioned
by the compiler into variable-sized streams which are transferred into and
out of the processor as burst transactions. The compiler schedules
transfers of vector streams required in a calculation so that calculations
on a portion of the vector data are performed while a subsequent portion
of the vector data is transferred. A vector buffer pool is partitioned
into one or more vector buffers and each vector buffer is used at a
specific time. The compiler partitions a vector buffer into the
variable-sized streams depending on the number of vectors buffers required
by an application program and the size required for each stream. Each
vector buffer is allocated for exclusive use by an application program
that is executing in the data processor. A synchronization instruction is
used to allow all VTU instructions issued prior to the synchronization
instruction to finish before any VTU instructions issued after the
synchronization instruction may begin. Instructions for controlling access
to the vector buffer pool are also included.
Een compiler en vectorinstructies van de gegevensoverdracht voor gebruik in een vectoroverdrachteenheid voor de behandeling van overdrachten van vectorgegevens tussen een geheugen en een gegevensbewerker in een computersysteem. De compiler identificeert het gebruik van vectorgegevens in een toepassingsprogramma en voert één of meerdere vectorinstructies voor het overbrengen van de vectorgegevens tussen geheugen en registers uit die wordt gebruikt om berekeningen op de vectorgegevens uit te voeren. Een vector wordt verdeeld door de compiler in veranderlijk-gerangschikte stromen die in en uit de bewerker zoals uitbarstingstransacties worden overgebracht. De compiler plant overdrachten van vectorstromen die in een berekening worden vereist zodat de berekeningen op een gedeelte vectorgegevens worden uitgevoerd terwijl een verder gedeelte vectorgegevens wordt overgebracht. Een vectorbufferpool wordt verdeeld in één of meerdere vectorbuffers en elke vectorbuffer wordt gebruikt in een specifieke tijd. De compiler verdeelt een vectorbuffer in de veranderlijk-gerangschikte stromen afhankelijk van het aantal vectorenbuffers die door een toepassingsprogramma en de grootte worden vereist die voor elke stroom wordt vereist. Elke vectorbuffer wordt toegewezen voor exclusief gebruik door een toepassingsprogramma dat in de gegevensbewerker uitvoert. Een synchronisatieinstructie wordt gebruikt om alle instructies toe te staan VTU die voorafgaand aan de synchronisatieinstructie worden uitgegeven om vóór om het even welke uitgegeven instructies te eindigen VTU nadat de synchronisatieinstructie kan beginnen. De instructies voor het controleren van toegang tot de vectorbufferpool zijn ook inbegrepen.