DMA transfer device capable of high-speed consecutive access to pages in a memory
AssigneeMatsushita Electric Industrial Co., Ltd.
InventorsMasaaki Harada, Tsutomu Sekibe
Life of this patent
Estimating the term…
Abstract
A DMA transfer device transfers data from a first region to a second region in a memory allowing high-speed page access. The DMA transfer device includes: a first detecting unit for detecting a plurality of read areas that form the first region, each read area being located between page boundaries; a second detecting unit for detecting a plurality of write areas that form the second region, each write area being located between page boundaries; and an access unit for performing high-speed page access to each of the read areas and each of the write areas.
Claims14
A DMA transfer device that transfers data from a first region to a second region in a memory allowing high-speed page access,
- the DMA transfer device comprising:
- first detecting means for detecting a plurality of read areas that form the first region, each read area being demarcated by a page boundary and one of:
- (1) a start of the first region;
- (2) an end of the first region;
- and (3) another page boundary, including,
- first address updating means for storing an access address whose initial value is a start address of the first region and for updating the access address, whenever the access means has read all data from one read area, to a start address of a remaining part of the first region;
- first data size updating means for storing a remaining data size whose, initial value is a data size of the first region and for updating the remaining data size, whenever the access means has read all data from one read area, to a data size of the remaining part of the first region;
- and
- read area detecting means for detecting a read area as an area from the access address to a next page boundary when the access address is set at the initial value and for otherwise detecting a read area as an area from the access address to either a next page boundary or the end of the first region to be accessed;
- second detecting means for detecting a plurality of write areas that form the second region, each write area being demarcated by a page boundary and one of:
- (1) a start of the second region;
- (2) an end of the second region;
- and (3) another page boundary, including,
- second address updating means for storing an access address whose initial value is a start address of the second region and for updating the access address, whenever the access means has written all data into one write area, to a start address of a remaining part of the second region;
- second data size updating means for storing a remaining data size whose initial value is a data size of the second region and for updating the remaining data size, whenever the access means has written all data into one write area, to a data size of the remaining part of the second region;
- and
- write area detecting means for detecting a write area as an area from the access address in the second address updating means to a next page boundary when the access address is set at the initial value and for otherwise detecting a write area as an area from the access address to either a next page boundary or the end of the second region, including,
- second size detecting means for detecting a size of an area from the access address in the second address updating means to either the next page boundary or the end of the second region and
- second size storing means for storing the detected area size as a size of the write area,
- wherein the access means performs high-speed page access to the area of the write area size in the second size storing means, starting from the access address in the second address updating means;
- and
- access means for performing high-speed page access to each of the read areas and each of the write areas.
The DMA transfer device of claim wherein the detecting means includes:
- address updating means for storing an access address whose initial value is a start address of the region to be accessed and for updating the access address, whenever the access means has performed an access, to a start address of a remaining part of the region to be accessed;
- remaining data size updating means for storing a remaining data size whose initial value is a data size of the region to be accessed and for updating the remaining data size, whenever the access means has performed an access, to a data size of the remaining part of the region to be accessed;
- and
- access area detecting means for detecting an access area as an area from the access address to a next page boundary when the access address is set at the initial value and for otherwise detecting an access area as an area from the access address to either a next page boundary or the end of the region to be accessed.
A DMA (Direct Memory Access) transfer device that accesses a region in a memory allowing high-speed page access,
- the DMA transfer device comprising
- detecting means for detecting access areas that form the region to be accessed, each access area being demarcated by a page boundary and one of:
- (1) a start of the region;
- (2) an end of the region;
- and (3) another page boundary and access means for performing high-speed page access to each access area,
- wherein the detecting means includes:
- address updating means for storing an access address whose initial value is a start address of the region to be accessed and for updating the access address, whenever the access means has performed an access, to a start address of a remaining part of the region to be accessed;
- remaining data size updating means for storing a remaining data size whose initial value is a data size of the region to be accessed and for updating the remaining data size, whenever the access means has performed an access, to a data size of the remaining part of the region to be accessed;
- and
- access area detecting means for detecting an access area as an area from the access address to a next page boundary when the access address is set at the initial value and for otherwise detecting an access area as an area from the access address to either a next page boundary or the end of the region to be accessed, and
- wherein the access area detecting means includes
- size detecting means for detecting a size of an area from the access address in the address updating means to either the next page boundary or the end of the region and
- size storing means for storing the detected area size as a size of the access area,
- wherein the access means performs high-speed page access to the area of the access area size in the size storing means, starting from the access address in the address updating means.
A DMA transfer device that transfers data from a first region to a second region in a memory allowing high-speed access,
- the DMA transfer device comprising:
- first detecting means for detecting a plurality of read areas that form the first region, each read area being demarcated by a page boundary and one of:
- (1) a start of the first region;
- (2) an end of the first region;
- and (3) another page boundary;
- second detecting means for detecting a plurality of write areas that form the second region, each write area being demarcated by a page boundary and one of:
- (1) a start the second region;
- (2) an end of the second region;
- and (3) another page boundary;
- and
- access means for performing high-speed page access to each of the read areas and each of the write areas,
- wherein the first detecting means includes:
- first address updating means for storing an access address whose initial value is a start address of the first region and for updating the access address, whenever the access means has read all data from one read area, to a start address of a remaining part of the first region;
- first data size updating means for storing a remaining data size whose initial value is a data size of the first region and for updating the remaining data size, whenever the access means has read all data from one read area, to a data size of the remaining part of the first region;
- and
- read area detecting means for detecting a read area as an area from the access address to a next page boundary when the access address is set at the initial value and for otherwise detecting a read area as an area from the access address to either a next page boundary or the end of the first region to be accessed, and
- wherein the read area detecting means includes
- first size detecting means for detecting a size of an area from the access address in the first address updating means to either the next page boundary or the end of the first region and
- first size storing means for storing the detected area size as a size of the read area,
- wherein the access means performs high-speed page access to the area of the read area size in the first size storing means, starting from the access address in the first address updating means.
A DMA transfer device that transfers data from a first region to a second region in memories that allow high-speed page access,
- the DMA transfer device comprising:
- first detecting means for detecting a plurality of read areas that form the first region, each read area being demarcated by a page boundary and one of:
- (1) a start of the first region;
- (2) an end of the first region;
- and (3) other page boundary;
- second detecting means for detecting a plurality of write areas that form the second region, each write area being demarcated by a page boundary and one of:
- (1) a start of the second region;
- (2) an end of the second region;
- and (3) another page boundary;
- buffer means for temporarily storing data to be transferred;
- and
- access means for performing high-speed page access to each of the read areas and each of the write areas,
- wherein the first region and the second region exist in either in a same memory or different memories connected to a same bus,
- wherein the access means includes
- read/write judging means for comparing a size of data in the buffer means with a size of a next write area and producing a judgement result showing whether a read from a next read area or a write into the next write area should be performed and
- access control means for performing either the read or the write according to the judgement result of the read/write judging means.
A DMA transfer device that transfers data from a first region to a second region in memories that allow high-speed page access,
- the DMA transfer device comprising:
- first detecting means for detecting a plurality of read areas that form the first region, each read area being demarcated by a page boundary and one of:
- (1) a start of the first region;
- (2) an end of the first region;
- and (3) other page boundary;
- second detecting means for detecting a plurality of write areas that form the second region, each write area being demarcated by a page boundary and one of:
- (1) a start of the second region;
- (2) an end of the second region;
- and (3) another page boundary;
- buffer means for temporarily storing data to be transferred;
- and
- access means for performing high-speed page access to each of the read areas and each of the write areas,
- wherein the buffer means is a two-port memory, one port being connected to one bus and the other port being connected to a different bus,
- wherein the first region and the second region exist in different memories connected to the different buses, and
- wherein the access means includes
- read/write judging means for judging from a size of data in the buffer means whether to perform a read from a next read area, and separately judging whether to perform a write into a next write area and
- access control means for performing the read and the write according to judgements of the read/write judging means.
A DMA transfer system that accesses regions in a memory allowing high-speed page access and that has a plurality of DMA channels of different priorities,
- the DMA transfer system comprising:
- a plurality of receiving means that are each provided to a different DMA channel, each receiving means receiving a DMA transfer request for one DMA channel and storing the DMA transfer request until a DMA transfer requested by the DMA transfer request is completed;
- a plurality of detecting means that are each provided to a different DMA channel, each detecting means detecting a plurality of access areas that form one of the regions that is specified by a DMA transfer request corresponding to the detecting means, each access area being demarcated by a page boundary and one of:
- (1) a start of the region;
- (2) an end of the region;
- and (3) another page boundary;
- a plurality of request generating means that are each provided to a different DMA channel, each request generating means generating a plurality of access requests that each indicate high-speed page access to one access area detected by a detecting means corresponding to the request generating means;
- a buffer means that is shared by the plurality of DMA channels and that temporarily stores data to be transferred;
- and
- an arbitration means for:
- (1) performing, if only one DMA transfer request for one DMA channel is stored by one receiving means, high-speed page access according to access requests that have been generated corresponding to the DMA transfer request;
- (2) instructing, if a DMA transfer request for a DMA channel of a higher priority is received by one receiving means while a DMA transfer request of a lower priority is stored by another receiving means, a detecting means and a request generating means corresponding to the DMA transfer request of the lower priority to suspend processing once the buffer means is empty;
- (3) starting, once the buffer means is empty, the DMA transfer of the higher priority according to each access request;
- and (4) instructing, once the DMA transfer of the higher priority is completed, the detecting means and the request generating means whose processing was suspended to resume the processing.
A DMA transfer system that accesses regions in memories allowing high-speed page access and that has a plurality of DMA channels, the DMA transfer system comprising:
- a plurality of receiving means that are each provided to a different DMA channel, each receiving means receiving a DMA transfer request for one DMA channel and storing the DMA transfer request until a DMA transfer requested by the DMA transfer request is completed;
- a plurality of detecting means that are each provided to a different DMA channel, each detecting means detecting a plurality of access areas that form one of the regions that is specified by a DMA transfer request corresponding to the detecting means, each access area being demarcated by a page boundary and one of:
- (1) a start of the region;
- (2) an end of the region;
- and (3) another page boundary;
- a plurality of request generating means that are each provided to a different DMA channel, each request generating means generating a plurality of access requests that each indicate a high-speed page access to one access area detected by a detecting means corresponding to the request generating means;
- a buffer means that is a two-port memory shared by the plurality of DMA channels and that temporarily stores data to be transferred, one port being connected to one bus and the other port connected to a different bus;
- and
- an arbitration means for performing, if only one DMA transfer request for one DMA channel is stored by one receiving means, a DMA transfer requested by the DMA transfer request according to access requests that have been generated corresponding to the DMA transfer request, and if a first DMA transfer request for a DMA channel is received by one receiving means while a second DMA transfer request is stored by another receiving means and a write region into which data should be written for the second DMA transfer request and a read region from which data should be read for the first DMA transfer request exist in different memories connected to the different buses, starting a read from an access area at a start of the read region after all data has been read from one region for the second DMA transfer request into the buffer means and a space having a same size as the access area in the read region has become available in the buffer means.
Dependencies are inferred from the claim text.