A vector transfer unit for handling transfers of vector data between a
memory and a data processor in a computer system. Vector data transfer
instructions are posted to an instruction queue in the vector transfer
unit. Program instructions for performing a burst transfer include
determining the starting address of the vector data to be transferred, the
ending address of the vector data to be transferred, and whether the
ending address of the vector data to be transferred is within the same
virtual memory page as the starting address. The ending address of the
vector data to be transferred is determined based on the number of data
elements to be transferred, the stride of the vector data to be
transferred, and the width of the vector data elements to be transferred.
When the amount of data to be transferred is divisible by a factor of two,
the multiplication of the stride and width of the data elements is carried
out by shifting. An address error exception occurs when the ending address
of the vector data to be transferred is not within the same virtual memory
page as the starting address. The ending address of the vector data to be
transferred is determined in parallel with determining the starting
address of the vector data to be transferred.
Een vectoroverdrachteenheid voor de behandeling van overdrachten van vectorgegevens tussen een geheugen en een gegevensbewerker in een computersysteem. De vector instructies van de gegevensoverdracht worden gepost aan een instructierij in de vectoroverdrachteenheid. De instructies van het programma voor het uitvoeren van een uitbarstingsoverdracht omvatten het bepalen van het beginnende adres van de vector over te brengen gegevens, het beëindigende adres van de vector over te brengen gegevens, en of het beëindigende adres van de vector over te brengen gegevens binnen de zelfde virtueel geheugenpagina zoals het beginnende adres is. Het beëindigende adres van de vector over te brengen gegevens wordt gebaseerd op het aantal over te brengen gegevenselementen bepaald, de pas van de vector over te brengen gegevens, en de breedte van de vectorover te brengen gegevenselementen. Wanneer de hoeveelheid over te brengen gegevens door een factor van twee verdeelbaar is, wordt de vermenigvuldiging van de pas en de breedte van de gegevenselementen uitgevoerd door te verschuiven. Een uitzondering van de adresfout komt voor wanneer het beëindigende adres van de vector over te brengen gegevens niet binnen de zelfde virtueel geheugenpagina zoals het beginnende adres is. Het beëindigende adres van de vector over te brengen gegevens wordt bepaald parallel met het bepalen van het beginnende adres van de vector over te brengen gegevens.