EP1069512A2

Data processing apparatus with buffering between buses

Abstract

The local buffers 13-15 connected to the buses 10-12 input and output data in a manner that cancels out the difference between the data transfer speeds of the bus 1 and the buses 10-12, where the data transfer speed of a bus changes in proportion to the bit width of the bus. The data transfer rates assigned to the master devices 4-6 are changed by changing the read/write ports of the master devices 4-6, buses 10-12, and local buffers 13-15. The memory device, memory controller 3, and bus 1 need not be re-designed.

EP1069512A2, drawing sheet 1
Sheet 1 of 30

Term

Term ended

Projected expiry passed 11 July 2020, 6.2 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

30 claims: 2 independent, 28 dependent

  1. 1
    A data processing apparatus for performing data transfers between a plurality of master devices and a memory device, comprising:a memory bus connected which includes two points and is connected at one of the two points to the memory device;a plurality of local buses each of which includes at least two points and is connected at one of the at least two points to one of the plurality of master devices;a transfer controller for reading data from the memory device, writing data to the memory device, and controlling the data transfers on the memory bus so that data is transferred at a transfer rate suitable for the master device on a corresponding local bus, and at a transfer rate suitable for the memory device on the memory bus;and a plurality of local buffer means each of which is connected to one of the plurality of local buses at another of the at least two points, is connected to the memory bus at the other of the two points, and inputs and outputs data in a manner that cancels out a difference between a transfer rate of the memory bus and a transfer rate of each local bus.
  2. 2
    The data processing apparatus of Claim 1, wherein the transfer controller includes:a memory controller which, when one of the plurality of master devices issues a data read request, reads data from the memory device in accordance with the data read request and exercises control so that data is transferred on the memory bus at the transfer rate suitable for the memory device, and when one of the plurality of master devices issues a data write request, exercises control so that data to be written to the memory device is transferred on the memory bus at the transfer rate suitable for the memory device and writes the data to the memory device in accordance with the data write request;and a plurality of local controllers corresponding to the plurality of local buses on a one-to-one basis, wherein when one of the plurality of master devices issues one of the data read request and the data write request, a corresponding local controller transfers one of (1) data that has been read from the memory device and (2) data to be written to the memory device in accordance with the request on a corresponding local bus at a transfer rate suitable for the master device that has issued the request.
  3. 3
    The data processing apparatus of Claim 2, wherein each local controller controls a corresponding local buffer means to take in, from the memory bus, data specified by a data read request issued by a corresponding master device and output the data to a corresponding local bus, and controls the corresponding local buffer means to take in, from the corresponding local bus, data to be written to the memory device specified by a data write request issued by the corresponding master device and output the data to the memory bus.
  4. 4
    The data processing apparatus of Claim 2 further comprising:an arbiter for, when a contention occurs between two or more requests issued by two or more master devices among the plurality of master devices, acknowledging one of the two or more requests and rejecting the other requests, the two or more requests being either data read requests or data write requests, wherein master devices that issued the rejected requests suspend transferring data on the memory bus and corresponding local buses.
  5. 5
    The data processing apparatus of Claim 4, wherein one of the plurality of local buses includes three or more points and is connected to two or more master devices at two or more points out of the three or more points, and when a contention occurs between requests issued by master devices among the two or more master devices, the arbiter acknowledges one of the requests and rejects the other requests, the requests being either data read requests or data write requests, and master devices that issued the rejected requests suspend transferring data on the one of the plurality of local buses.
  6. 6
    The data processing apparatus of Claim 1, wherein the memory device receives a synchronization clock signal having an operating frequency which is different from an operating frequency of the data processing apparatus, and the data processing apparatus further comprises:a dual port memory device which has one read/write port connected to the memory device and has a plurality of ports connected to the plurality of local buffer means respectively, and inputs and outputs data in a manner that cancels out a difference between the operating frequencies of the memory device and the data processing apparatus.
  7. 7
    The data processing apparatus of Claim 6, wherein the transfer controller exercises control so that the dual port memory device takes in from the memory bus data that has been transferred to the memory bus in accordance with data read requests issued by master devices, and the dual port memory outputs the data to local buffer means corresponding to the master devices that issued the data read requests.
  8. 8
    The data processing apparatus of Claim 6, wherein when data to be written to the memory device has been transferred to the local buffer means in accordance with data write requests issued by corresponding master devices, the transfer controller exercises control so that the dual port memory device takes in the data from local buffer means, accumulates the data, and outputs the accumulated data to the memory bus.
  9. 9
    The data processing apparatus of Claim 1, wherein the plurality of master devices are connected to a control bus, and when one of the plurality of master devices issues a data write request, data is written to an area in the memory device and an entry address of the area is transferred to the control bus, the entry address being the start address of the area, and at least one other master device requests to read data from a location indicated by the entry address.
  10. 10
    The data processing apparatus of Claim 1, wherein the plurality of master devices are connected to a control bus, and when one of the plurality of master devices issues a data write request, data is written to an area in the memory device and an end address of the area is transferred to the control bus, and at least one of the others of the plurality of master devices requests to write data to a location starting from an address following the end address transferred to the control bus.
  11. 11
    The data processing apparatus of Claim 1 further comprising:an address server which prestores use state information indicating whether each of a plurality of areas in the memory device is used or empty, and when one of the plurality of master devices issues a data write request to write data to the memory device, informs the master device having issued the data write request of empty areas in the memory device by referring to the use state information.
  12. 12
    The data processing apparatus of Claim 11, wherein the address server includes:a first update unit for, when data is written to an area in the memory device in accordance with a data write request, updating the use state information to indicate that the area is being used.
  13. 13
    The data processing apparatus of Claim 11, wherein when one of the plurality of master devices reads data from areas among the plurality of areas in the memory device, the master device issues a request to release the areas, and the first update unit updates the use state information to indicate that the areas having been requested to be released are empty.
  14. 14
    A data processing apparatus connected to a memory device, comprising:a plurality of master devices for issuing access commands which each request to either read data from the memory device or write data to the memory device;a dual port memory;and a transfer controller for, when an access command is issued, controlling data transfers between each master device and the memory device via the dual port memory in a manner that cancels out a difference between the operating frequencies of the memory device and the data processing apparatus.
  15. 15
    The data processing apparatus of Claim 14, wherein the dual port memory includes a plurality of entry areas and a plurality of tag areas corresponding to the plurality of entry areas, an entry address being assigned to each of the plurality of entry areas, each access command specifies an external address indicating either a data read destination or a data write destination, and the external address indicates a location of one of a plurality of external areas in the memory device to be accessed, wherein the data processing apparatus further comprises:an entry managing means for, when one of the plurality of master devices issues an access command for accessing the memory device, assigning one of the plurality of entry areas in the dual port memory to a data transfer between the master device and the memory device, and storing an external address included in the access command into a tag area corresponding to the entry area, wherein the transfer controller includes: a memory control unit for performing a data transfer between the entry area and an external area indicated by the external address stored in the tag area.
  16. 16
    The data processing apparatus of Claim 15, wherein the entry managing means includes:a use state information sending unit for sending entry addresses of empty entry areas in the dual port memory as use state information to each master device, wherein the data processing apparatus includes: a local control unit for transferring data between the plurality of master devices and the empty entry areas indicated by the entry addresses sent as the use state information, the transferred data having been read from the memory device or being to be written to the memory device.
  17. 17
    The data processing apparatus of Claim 16, wherein the entry managing means includes:a bit sequence holding unit for holding a bit sequence, the bit sequence consisting of a plurality of bits corresponding to the plurality of entry addresses, and each of the plurality of bits being set to "on" or "off", wherein the use state information sending unit sends entry addresses corresponding to "off" bits, as the use state information to each master device, and the entry managing means includes: a first update unit for, after one of the plurality of master devices issues an access command, updating bits corresponding to the entry addresses having been sent as the use state information by setting the bits to "on";and a second update unit for, after data is stored in entry areas specified by the entry addresses and then transferred to the memory device or to a master device, updating the bits to "off".
  18. 18
    The data processing apparatus of Claim 17, wherein when all bits in the bit sequence are set to "on", the use state information sending unit sends to each master device the use state information indicating that the dual port memory has no empty entry area, and upon a receipt of the use state information indicating that the dual port memory has no empty entry area, each master device does not issue an access command until the master device receives entry addresses of empty entry areas.
  19. 19
    The data processing apparatus of Claim 15, wherein after a data transfer from an external area to an entry area is completed, the memory control unit outputs a reading completion notice, which includes an entry address corresponding to the entry address, to a master device having issued an access command requesting the data transfer, wherein the data processing apparatus includes:a plurality of local control units which correspond to the plurality of master devices on a one-to-one basis, wherein when a master device receives the reading completion notice, a local control unit corresponding to the master device extracts an entry address from the reading completion notice and transfers data from an entry area specified by the extracted entry address to the corresponding master device.
  20. 20
    The data processing apparatus of Claim 19, wherein when one of a pair of master devices among the plurality of master devices issues an access command including an entry address of an entry area in the dual port memory, one of the plurality of local access controllers allows the one of the pair of master devices to transfer data to the other of the pair of master devices via the entry area specified by the entry address in the access command.
  21. 21
    The data processing apparatus of Claim 19, wherein the plurality of entry areas in the dual port memory are divided into data-reading areas and data-writing areas, the data-reading areas storing data having been read from the memory device, and the data-writing areas storing data to be written to the memory device, when a master device issues an access command requesting to read data from the memory device, the entry managing means outputs entry addresses of empty data-reading areas in the dual port memory to the master device that has issued the access command, when a master device issues an access command requesting to write data to the memory device, the entry managing means outputs entry addresses of empty data-writing areas in the dual port memory to the master device that has issued the access command, the memory control unit performs a data transfer between the memory device and the entry areas specified by the entry addresses output by the entry managing means, and one of the plurality of local access controllers performs a data transfer between the master device and the entry areas specified by the entry addresses output by the entry managing means.
  22. 22
    The data processing apparatus of Claim 15, wherein access commands requesting a DMA (Direct Memory Access) transfer for transferring data between an entry area in the dual port memory and an external area in the memory device are further used, each access command requesting a DMA transfer specifies an external address of an external area in the memory device and specifies an entry address of an entry area in the dual port memory, and the data processing apparatus further comprises:a DMA control unit for, when an access command requesting DMA transfer is issued, exercising control to store the external address specified by the access command into a tag area corresponding to the entry area specified by the access command, and allowing the memory control unit to perform a data transfer between the entry area specified by the entry address and the external area specified by the external address.
  23. 23
    The data processing apparatus of Claim 15, wherein each of the plurality of entry areas is composed of a plurality of memory cells, each memory cell stores a mask bit which is set to either "on" or "off", and the memory control unit, when transferring data from an entry area to the memory device, does not write data of memory cells with an "on" mask bit to the memory device and writes only data of memory cells with an "off" mask bit to the memory device.
  24. 24
    The data processing apparatus of Claim 15 further comprising:an arbiter for, when two or more master devices issue access commands in a same cycle, permitting one of the two or more master devices to transfer data via an entry area in the dual port memory;and a plurality of local control units which correspond to the plurality of master devices on a one-to-one basis, wherein when a master device is permitted to transfer data by the arbiter, a local control unit corresponding to the master device transfers data between an entry area and the master device, wherein when a master device is permitted to transfer data by the arbiter, the memory control unit transfers data between an entry area and the memory device.
  25. 25
    The data processing apparatus of Claim 24, wherein the arbiter includes:a ring register which is composed of n registers each of which is connected one after the other in a circle and stores identification information of a master device, wherein n is an integer;a shift controller for shifting the n pieces of identification information one at a cycle to specify one of the n pieces of identification information as current information;and a permission unit for permitting a master device x to transfer data via an entry area in the dual port memory when the master device x issues an access command in a cycle in which identification information of the master device x is specified as the current information.
  26. 26
    The data processing apparatus of Claim 25 further comprising:a storage controller for storing an identification information x of the master device x in m registers out of the n registers when a user specifies m data transfers out of n data transfers in terms of the master device x, wherein n>m, and the permission unit permits the master device x to transfer data via an entry area in the dual port memory when the master device x issues an access command in a cycle in which the identification information x is specified as the current information.
  27. 27
    The data processing apparatus of Claim 26, wherein each master device is assigned a priority level, and when the master device x does not issue an access command in a cycle in which the identification information x is specified as the current information, the permission unit permits a master device having a lower priority level than the master device x and having issued an access command in the cycle, to transfer data via an entry area in the dual port memory.
  28. 28
    The data processing apparatus of Claim 27, wherein when the master device x and the master device having a lower priority level than the master device x do not issue an access command in a cycle in which the identification information x is specified as the current information, the permission unit permits a master device having a higher priority level than the master device x and having issued an access command in the cycle, to transfer data via an entry area in the dual port memory.
  29. 29
    The data processing apparatus of Claim 14 further comprising:a plurality of local buffer means which correspond to the plurality of master devices and each have one read/write port connected to the dual port memory, have another read/write port connected to a corresponding master device, and input and output data having been read from the dual port memory and input and output data to be written to the dual port memory in a manner that adjusts a bit width of a read/write port of each master device to a bit width of a read/write port of the dual port memory.
  30. 30
    The data processing apparatus of Claim 29, wherein each of the plurality of local buffer means is a double buffer which simultaneously inputs and outputs data having been read from the dual port memory and inputs and outputs data to be written to the dual port memory.
Independent claims30