Peripheral controller with paged data buffer management
First Claim
Patent Images
1. A controller for controlling data transfers between a data processing system bus and peripheral devices comprising:
- a. at least one data buffer divided into page frames for temporarily storing pages of data transferred between said data processing system bus and said peripheral devices;
b. a first microprocessor for controlling data transfers between said data processing system bus and said at least one data buffer;
c. a second microprocessor for controlling data transfers between said at least one data buffer and said peripheral devices;
d. a paging means coupled to said first and second microprocessors for identifying page frames of said at least one data buffer which are assigned pages of data by said microprocessors in a non-predetermined order and coupled to said at least one data buffer to address page frames identifies in the paging means.
1 Assignment
0 Petitions
Accused Products
Abstract
A controller controls data transfers between a data processing system bus and peripheral devices. In the controller, data buffers are divided into page frames. Paging circuitry provides for allocation and deallocation of pages to and from the data buffer. Included in the page circuitry is a paging RAM. The paging RAM and other paging circuitry components allow contiguously addressed pages of data to be stored in noncontiguous locations in the data buffer. There may be more than one data buffer and these data buffers may be exclusively seized by microprocessors in the controller via seizing logic.
-
Citations
17 Claims
-
1. A controller for controlling data transfers between a data processing system bus and peripheral devices comprising:
-
a. at least one data buffer divided into page frames for temporarily storing pages of data transferred between said data processing system bus and said peripheral devices; b. a first microprocessor for controlling data transfers between said data processing system bus and said at least one data buffer; c. a second microprocessor for controlling data transfers between said at least one data buffer and said peripheral devices; d. a paging means coupled to said first and second microprocessors for identifying page frames of said at least one data buffer which are assigned pages of data by said microprocessors in a non-predetermined order and coupled to said at least one data buffer to address page frames identifies in the paging means. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. In a controller which controls data transfers between a data processing system bus and peripheral devices, a method of managing data transfers to and from a data buffer comprising the steps of:
-
a. loading an address into an address register; b. passing leading bits of the address in the address register to a paging RAM; c. passing to the paging RAM a device identifier that identifies a device from which data to be transferred originated or to which data to be transferred is destined; d. using the leading bits and the device identifer to locate a page frame address stored in the paging RAM; e. passing the page frame address to a data buffer to locate an addressed page; f. locating a specific memory location sought within the located page by trailing bits of the address in the address register; g. performing a data transfer to or from the addressed location.
-
-
16. A method of controlling data transfers between a data processing system bus and peripheral devices comprising the steps of:
-
a. dividing a data buffer into page frames; b. dividing data to be transferred into blocks using a first microprocessor; c. transferring the pages of data into page frames of the data buffer using the first microprocessor; d. retrieving the pages of data stored in the page frames of the data buffer using a second microprocessor; e. transferring the retrieved pages using the second microprocessor.
-
-
17. A method of managing a paged data buffer located in a controller comprising the steps of:
-
a. loading a page table into a scratch pad memory wherein each page in the page table is initially marked free; b. making a request to either read data from or write data to the data buffer; c. if a write request, checking for a free page in the page table; checking to see if any pages have been marked no longer free for this write request; if no other pages have been marked no longer free for this write request, repeating the steps beginning with checking for a free page; if other pages have been marked no longer free for this write request, performing the write for the pages already allocated and performing no further steps; marking a page no longer free; updating a page RAM to store the page frame address of a page being marked no longer free in a location in the paging RAM; checking to see that enough pages have been allocated to handle the entire write request; if not enough pages have been allocated, repeating the above steps; if enough pages have been allocated, performing the write request; and d. if a read request, performing the read; and
marking pages which were read free in the page table.
-
Specification