Direct memory access apparatus for transferring a block of data having discontinous addresses using an address calculating circuit
First Claim
1. An apparatus coupled to a central processor, a system memory, a system bus, and a local memory to perform a DMA transfer of a block of data having discontinuous memory addresses, the apparatus comprising:
- an address calculating circuit coupled to the system bus which receives information regarding a block of memory locations inside the system memory, wherein the block of memory locations includes a plurality of memory location rows having discontinuous memory addresses, a memory location row having a plurality of memory locations for storing data words;
wherein the information regarding the block of memory locations comprises an address of a first memory location in a first row, a number of memory location rows, a number of data words per memory location row, and a number of memory locations to be skipped between rows; and
wherein the address calculating circuit generates a plurality of transaction entries corresponding to the number of memory location rows each having a transaction type to be carried out, a starting memory address, and data word count of each transaction.
15 Assignments
0 Petitions
Accused Products
Abstract
A method and arrangement for a dma transfer mode having multiple transactions is provided. The invention generates a set of transaction entries for a DMA transfer each of which contains information related to the address and command instruction of a transaction. The transaction entries are stored in an address/cmd-output-FIFO. The invention negotiates for the control of the system bus. Upon gaining control of the bus, the commands and address relate to each transaction are sequentially place on the system bus. If the transaction is a read operation, data received back from the system bus is first stored in a data-in-FIFO before being sent to the desired destination. If the transaction is a write operation, the data to be transferred is first stored in a data-out-FIFO before being timely place on the system bus for transferring to the desired destination. In either case, the number of data words transferred is monitored to determine when a transaction is complete. The number of transactions carried out is also monitored to determine when a DMA transfer is complete.
41 Citations
18 Claims
-
1. An apparatus coupled to a central processor, a system memory, a system bus, and a local memory to perform a DMA transfer of a block of data having discontinuous memory addresses, the apparatus comprising:
-
an address calculating circuit coupled to the system bus which receives information regarding a block of memory locations inside the system memory, wherein the block of memory locations includes a plurality of memory location rows having discontinuous memory addresses, a memory location row having a plurality of memory locations for storing data words; wherein the information regarding the block of memory locations comprises an address of a first memory location in a first row, a number of memory location rows, a number of data words per memory location row, and a number of memory locations to be skipped between rows; and wherein the address calculating circuit generates a plurality of transaction entries corresponding to the number of memory location rows each having a transaction type to be carried out, a starting memory address, and data word count of each transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system comprising:
-
a system bus; a CPU coupled to the bus; a memory controller coupled to the bus; a main memory coupled to the memory controller; and a video/image processor coupled to the system bus, the video/image processor comprising; an internal bus; a local memory coupled to the internal bus; and an apparatus coupled to the internal bus to perform a DMA transfer of a block of data having discontinuous memory addresses, the apparatus comprising; a first FIFO buffer coupled to the system bus receiving as input a plurality of transaction entries, the transaction entries providing information and instructions relating to transactions to be carried out by the apparatus; a second FIFO buffer coupled to the system bus and the local memory, the second FIFO buffer receiving as input data from the system memory via the system bus and transferring the input data to the local memory; a third FIFO buffer coupled to the local memory and the system bus, the third FIFO buffer receiving as input data from the local memory and transferring the input data to the system memory via the system bus; a control circuit coupled to the first FIFO buffer, the second FIFO buffer, the third FIFO buffer, and the system bus, the control circuit determining from information provided by the transaction entries transaction count, transaction type, starting address of each transaction, and data word count of each transaction, the control circuit carrying out the transactions by communicating with the system bus, monitoring number of data words transferred in a transaction, and monitoring number of transactions performed; and an address calculating circuit coupled to the system bus which receives information regarding a block of memory locations inside the system memory, wherein the block of memory locations includes a plurality of memory location rows having discontinuous memory addresses, a memory location row having a plurality of memory locations for storing data words; wherein the information regarding the block of memory locations comprises an address of a first memory location in a first row, a number of memory location rows, a number of data words per memory location row, and a number of memory locations to be skipped between rows; and wherein the address calculating circuit generates a plurality of transaction entries corresponding to the number of memory location rows each having a transaction type to be carried out, a starting memory address and the data word count of each transaction. - View Dependent Claims (15, 16, 17, 18)
-
Specification