EP1513071B1 - Memory bandwidth control device - Google Patents

Memory bandwidth control device Download PDF

Info

Publication number
EP1513071B1
EP1513071B1 EP04255414A EP04255414A EP1513071B1 EP 1513071 B1 EP1513071 B1 EP 1513071B1 EP 04255414 A EP04255414 A EP 04255414A EP 04255414 A EP04255414 A EP 04255414A EP 1513071 B1 EP1513071 B1 EP 1513071B1
Authority
EP
European Patent Office
Prior art keywords
buffer
memory
data
memory bandwidth
requests
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
EP04255414A
Other languages
German (de)
French (fr)
Other versions
EP1513071A2 (en
EP1513071A3 (en
Inventor
Kenichi C/o Sony Corporation Okuno
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of EP1513071A2 publication Critical patent/EP1513071A2/en
Publication of EP1513071A3 publication Critical patent/EP1513071A3/en
Application granted granted Critical
Publication of EP1513071B1 publication Critical patent/EP1513071B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Definitions

  • This invention relates to a memory bandwidth control device.
  • a video editing apparatus To store material data received from an external device via an input/output port in a hard disk drive, a video editing apparatus temporarily stores the material data by a prescribed amount or more in a memory and then performs a burst transfer of the data to the hard disk drive, so as to transfer data in a short time with improved transfer efficiency.
  • the video editing apparatus gives material data being stored in the hard disk drive, to an external device such as an effector via the memory, to edit the data, and then performs the burst transfer of the edited material data via the memory, thereby storing it in the hard disk again or outputting them to the outside.
  • the video editing apparatus communicates material data with the hard disk drive via the memory. Therefore, memory bandwidth should be controlled between the memory and a plurality of external devices being connected to the video editing apparatus via input/output ports.
  • the video editing apparatus equally divides the memory bandwidth by the number of the external devices simply, resulting in assigning 0.1 second to the devices with time division (10 Mbps).
  • such a video editing apparatus assigns fixed memory bandwidth to each external device being connected thereto via an input/output port, by means of time division. Therefore, the number of external devices to be connected is limited according to the memory bandwidth. In addition, bandwidth assigned external devices which do not receive and output material data is useless, resulting in deteriorated data transfer efficiency.
  • Embodiments of the present invention seek to provide a memory bandwidth control device capable of efficient data transfer between external devices and a memory.
  • United States Patent No US-B-6 501 734 discloses a memory bandwidth control device generally according to the pre-characterising part of claim 1 hereof.
  • the present invention provides a memory bandwidth control device according to claim 1 hereof, a memory bandwidth control method according to claim 4 hereof, and a memory bandwidth assignment program according to claim 7 hereof.
  • Embodiments of the present invention may be suitably applied to a memory bandwidth control device for temporarily storing in a memory material data such as video and audio, which is externally entered to a video editing apparatus, and then processing the material data via the memory or performing memory bandwidth control for a burst transfer to a hard disk drive.
  • a memory bandwidth control device for temporarily storing in a memory material data such as video and audio, which is externally entered to a video editing apparatus, and then processing the material data via the memory or performing memory bandwidth control for a burst transfer to a hard disk drive.
  • reference numeral 1 shows a memory bandwidth control device of an embodiment of the invention which is installed in an editing apparatus, for communicating material data with a hard disk drive (HDD) 60 via a memory 80 comprising, for example, a Double Data Rate-Synchronous Dynamic Random Access Memory (DDR-SDRAM).
  • HDD hard disk drive
  • DDR-SDRAM Double Data Rate-Synchronous Dynamic Random Access Memory
  • the memory bandwidth control device 1 is constructed in the Field Programmable Gate Array (FPGA), and is designed to communicate material data with first to fourth devices 50 to 53, an encoder/decoder (ENC/DEC) 54 and a CPU 62 being connected to an I/O buffer 2 via various input/output ports such as a first Serial Data Interface (SDI)-IN port 3, a second SDI-IN port 4, a first SDI-OUT port 5, a second SDI-OUT port 6, an ENC/DEC port 7, and a CPU port 12 and to write/read the material data via the memory 80 in/from a hard disk drive (HDD) 60 being connected via a peripheral component interconnect (PCI) port 11.
  • SDI Serial Data Interface
  • HDD hard disk drive
  • PCI peripheral component interconnect
  • video data, audio data and meta data composing material data can be communicated via three read ports or three write ports for three kinds of data transfers between the I/O buffer 2, and the first and second SDI-IN ports 3 and 4 and the first SDI-OUT ports 5 and 6.
  • data can be communicated via one read port and one write port between the I/O buffer 2, and the ENC/DEC port 7, the PCI ports 11 and the CPU port 12.
  • VPROC video process
  • the I/O buffer 2 is a module for mediating data transfer between the memory 80 and an input/output port via a memory controller 70, and includes inside a write-only I/O buffer W 81 and a read-only I/O buffer R 82.
  • the I/O buffer W 81 and the I/O buffer R 82 are switched by a selector 83 depending on writing operation or readout operation.
  • the I/O buffer W 81 and the I/O buffer R 82 absorb a difference in a transfer rate between an input/output port and the memory 80, so as to improve efficiency of continuous burst transfer to the memory 80.
  • This memory bandwidth control device 1 dynamically assigns memory bandwidth to input/output ports requesting data transfers, out of the first SDI-IN port 3, the second SDI-IN port 4, the first SDI-OUT port 5, the second SDI-OUT port 6, the ENC/DEC port 7, the VPROC port 10, the PCI port 11, and the CPU port 12, and makes handshaking with the input/output ports for the assignment of the memory bandwidth.
  • an input/output port outputs a data transfer request (Request) to the I/O buffer 2 at a time of writing or reading data in/from the memory 80, and the I/O buffer 2 assigns required bandwidth to the input/output port requesting the data transfer and outputs a response signal (Acknowledge) to the input/output port, so as to inform the input/output port of the reservation of the memory bandwidth.
  • Request data transfer request
  • Acknowledge response signal
  • each input/output port includes a single or plural read/write ports, and communication with the I/O buffer 2 is made on a read port/write port basis.
  • an I/O buffer controller 81B having a passive band allocation circuit 81A (hereinafter, referred to as PBA circuit, simply) dynamically assigns memory bus bandwidth between the I/O buffer 2 and the memory 80 to the write ports 13, 14, ..., 28 sending the data transfer requests.
  • the I/O buffer controller 81B converts material data to be written, sequentially received with a 32-bit-width data bus from the write ports 13, 14, ..., 28, which have been assigned the memory bandwidth by the PBA circuit 81A, so as to send the data to the buffer 81C with a 256-bit-width data bus.
  • the I/O buffer controller 81B outputs a data transfer request (Request) to a PBA circuit 83A of the selector 83.
  • the PBA circuit 83A of the selector 83 alternatively switches between the I/O buffer W 81 and the I/O buffer R 82 which communicate data with the memory 80, depending on whether a data transfer request (Request) has come from the I/O buffer W 81 or I/O buffer R 82.
  • Request data transfer request
  • the memory controller 70 transfers from the I/O buffer W 81 to the memory 80 the material data to be written, received from any of the first SDTI-IN port 3, the second SDTI-IN port 4, the ENC/DEC port 7, the VPROC port 10, the PCI port 11 and the CPU port 12 while the selector 83 selects the I/O buffer W 81. And while the I/O buffer R 82 is selected, the memory controller 70 outputs the material data read from the memory 80, to any of the first SDI-OUT port 5, the second SDI-OUT port 6, the ENC/DEC port 7, the VPROC port 10, the PCI port 11, and the CPU port 12, via the I/O buffer R 82.
  • I/O buffer R 82 performs the same process as the I/O buffer W 81 although they are different in writing operation and readout operation, and its explanation will be omitted.
  • Each write port 13, 14, ..., 28 has a buffer inside, and outputs a data transfer request to the I/O buffer W 81 when 25-Byte material data to be written is stored in the buffer.
  • the PBA circuit 81A (Fig. 2) of the I/O buffer W 81 When the PBA circuit 81A (Fig. 2) of the I/O buffer W 81 receives a data transfer request from a write port 14, it assigns a smallest-numbered, or, first bank in the buffer 81C, to the write port 14, so as to assign memory bandwidth to the write port 14.
  • the I/O buffer controller 81B creates a port table 91 indicating a correspondence between the write port 14 (#2) sending the data transfer request and the order (No. 1) of arrival of the data transfer request, and creates a bank table 92 indicating a correspondence between the write port 14 (#2) and the first bank (1B) assigned.
  • the I/O buffer controller 81B sequentially takes in material data to be written, via a port slot 84 with a 32-bit-width data bus from the write port 14, converts the data with an internal register 87 to output it with a 256-bit-width data bus, and sequentially stores it in the first bank of the buffer 81C via a bank slot 85 at a transfer rate of 256 bits per one clock, thereby storing the material data of 256 Bytes in the fist bank for 8 clocks.
  • a unit of data transfer in the I/O buffer W 81 is basically 256 Bytes.
  • the buffer 81C When material data of 256 Bytes is stored in the first bank, the buffer 81C sends the memory controller 70 a writing request of the material data into the memory 80. When the buffer 81C receives a writing permission, it sequentially transfers the material data of 256 Bytes in total 256 bits at a time to the memory controller 70 via the selector 83.
  • the memory controller 70 transfers the received data to the memory 80 with a 128-bit-width data bus.
  • the I/O buffer controller 81B receives a data transfer request (Request) from each write port 13, 14, ..., 28 in an order that material data of 256 Bytes are stored in the write ports 13, 14, ..., 28. Since it takes eight clocks to store material data of 256 bits from each write port 13, 14, ..., 28 to convert data of 32 bits to data of 256 bits with the buffer 86, 87, 88 and eight clocks are divided with time division for the data transfer to the buffer 81C, it is able to simultaneously receive data from eight write ports.
  • Request data transfer request
  • memory bandwidth to be assigned to each write port 13, 14, ..., 28 is one-eighth of the memory bandwidth at most.
  • the maximum memory bandwidth for one write port is 125 Mbps.
  • the memory bandwidth is not assigned unless a transfer request is sent to the I/O buffer W 81.
  • the I/O buffer W 81 assigns memory bandwidth according to transfer requests (Request), so that large memory bandwidth can be assigned to a write port having a large amount of data, resulting in efficient data transfer.
  • the I/O buffer controller 81B creates a port table 91 indicating a correspondence between the write ports 13, 14, ..., 28 and the order of arrival of data transfer requests (Request).
  • the I/O buffer controller 81B assigns each write port 13, 14, ..., 28 to a smallest-numbered free bank of the buffer 81C in the order of arrival of the data transfer requests (Request) and creates a bank table 92 indicating its correspondence.
  • the port table 91 shows that the write ports 14 (#2), 13 (#1), and 28 (#16) sent the first to third data transfer requests (Request) indicated by Nos. 1, 2, and 3, respectively.
  • the bank table 92 indicates the numbers (#2, #1, #16) of the write ports 14, 13, and 28 assigned in the order of arrival of the data transfer requests (request), in association with the second to fourth banks out of the first to sixteenth banks of the buffer 81C.
  • material data from the second SDI-IN port 4 has been already stored as described above, so that write ports are assigned to the smallest-numbered free bank, or, second and following free banks.
  • the I/O buffer controller 81B dynamically assigns the write ports 13, 14, ..., 28 to the banks of the buffer 81C in an order of arrival of data transfer requests (Request) to the PBA circuit 81A.
  • memory bandwidth is assigned to three write ports 13, 14, 28, so that, in the order of arrival of the transfer requests, material data of 256 bits from the write port 14 is stored in the second bank for the first one clock, material data of 256 bits from the write port 13 is stored in the third bank for the next one clock, and material data of 256 bits from the write port 28 is stored in the fourth bank for the next one clock.
  • material data of 256 bits is stored in each write port 13, 14, 28 again after eight clocks, resulting in storing 256-Byte material data to be written, in the second to fourth banks.
  • the buffer 81C comprises a dual port RAM, and transfers material data of 256 Bytes, 256 bits at a time, from the second bank to the memory 80 via the memory controller 70 according to a writing permission issued from the memory controller 70 when material data of 256 Bytes is stored in the second bank. Similarly, the buffer 81C transfers material data to the memory 80 via the memory controller 70 from the third bank and then from the fourth bank in order.
  • the buffer 81C comprises a dual port RAM as described above, so that the I/O buffer controller 81B asynchronously stores and reads material data in/from the first to sixteenth banks of the buffer 81C.
  • the buffer 81C is able to transfer material data from the first bank to the memory 80 while I/O buffer controller 81B stores material data in the second to fourth banks, resulting in improving data transfer efficiency.
  • the I/O buffer W 81 is used for only writing material data in the memory 80. As compared with a case of alternatively issuing a writing command and a readout command many times, time to switch between the writing operation and the readout operation is not required, resulting in significantly improving data transfer efficiency.
  • a PBA circuit (not shown) of the I/O buffer R 82 When a PBA circuit (not shown) of the I/O buffer R 82 receives a data transfer request of material data to be read, being stored in the memory 80, from only the read port 30, it assigns memory bandwidth to the read port 30 and assigns the smallest-numbered free bank, or, the first bank of the buffer 82C to the read port 30.
  • the I/O buffer controller 82B creates a port table 101 indicating a correspondence between the read port 30 (#2) sending the data transfer request and an order of arrival of its data transfer request (No. 1), and also creates a bank table 102 indicating a correspondence between the read port 30 (#2) and the assigned first bank (1B) with the smallest number of the buffer 82C.
  • the I/O buffer controller 82B issues a data transfer request of material data to be read, to the memory controller 70 via the selector 83, sequentially stores the material data from the memory 80 in the first bank of the buffer 82C at a transfer rate of 256 bits per one clock, thereby storing material data of 256 Bytes in the first bank for eight clocks.
  • the I/O buffer controller 82B takes in the material data of 256 bits from the first bank of the buffer 82C via a bank slot 105, converts it with the register 107 to output it with a 32-bit-width data bus and transfers the data to the read port 30 via a port slot 104, and finishes the data transfer process when the material data of 256 Bytes is stored in the read port 30.
  • the I/O buffer controller 82B When the I/O buffer controller 82B receives data transfer requests of material data to be read from the memory 80, from read ports 29, 30, ..., 44, it can assign memory bandwidth to the read ports 29, 30, ..., 44 sending the transfer requests.
  • the I/O buffer controller 82B creates a port table 101 indicating a correspondence between the read ports 29, 30, ..., 44 and an order of arrival of the data transfer requests. In addition, the I/O buffer controller 82B assigns the read ports to the smallest-numbered free banks in the order of arrival of the data transfer requests and creates a bank table 102 indicating its correspondence.
  • the port table 101 of this case shows that the read ports 30 (#2), 29 (#1), and 44 (#16) sent first to third data transfer requests (Request) indicated by Nos. 1 to 3, respectively.
  • the bank table 102 shows the numbers (#2, #1, #16) of the read ports 29, 30, ..., 44 assigned to the second to fourth banks out of the first to sixteenth banks of the buffer 82C in the order of arrival of the data transfer requests.
  • the read ports are assigned to the smallest-numbered, or, second and following free banks.
  • the I/O buffer controller 82B dynamically assigns the read ports 29, 30, ..., 44 to banks of the buffer 82C in an order of arrival of data transfer requests to the PBA circuit (not shown).
  • the I/O buffer controller 82B performs the burst transfer of data of 256 Bytes, 256 bits at a time, from the memory 80 to banks in an order of transfer requests.
  • the buffer 82C comprises a dual port RAM, and when material data of 256 Bytes is stored in each of the second to fourth banks, sequentially transfers the material data from the second to fourth bank, 256 bits at a time, to the I/O buffer controller 82B with time division.
  • the I/O buffer controller 82B converts the material data of 256 bit width into 32 bit width with the registers 106 to 108, and transfers the resultant to the read ports 29, 30, ..., 44 via the port slot 104.
  • the I/O buffer controller 82B is able to asynchronously store material data into/from the first to sixteenth banks of the buffer 82C and output material data read from the first to sixteenth banks of the buffer 82C.
  • the buffer 82C is able to transfer material data from the first bank to the read port 30 via the I/O buffer controller 82B, resulting in improving data transfer efficiency.
  • the I/O buffer R 82 is used for only readout of material data from the memory 80. As compared with a case of alternatively outputting a writing command and a readout command many times, time to switch between the writing operation and the readout operation is not required, resulting in significantly improving data transfer efficiency.
  • the I/O buffer 2 of the memory bandwidth control device 1 dynamically assigns memory bandwidth to input/output ports requesting data transfer. Therefore, required memory bandwidth can be assigned according to necessity. As compared with a conventional case of assigning fixed memory bandwidth, memory bandwidth can be prevented from being uselessly assigned, resulting in significantly improving efficiency of data transfer to the memory 80.
  • the I/O buffer 2 of the memory bandwidth control device 1 dynamically assigns memory bandwidth to input/output ports requesting data transfer.
  • the number of input/output ports to be connected to the I/O buffer 2 is not limited in theory, provided that the memory bandwidth can be assigned within its range, resulting in significantly improving usability without limiting the number of external devices according to the memory bandwidth.
  • the I/O buffer 81B of the I/O buffer W 81 assigns the second to fourth banks of the buffer 81C, in an increasing numbered order of banks, to the write ports 13, 14, 28 dynamically assigned memory bandwidth in an order of arrival of data transfer requests in order, and stores material data to be written, 256 bits at a time, in the assigned second to fourth banks in order by time-sharing one clock by one clock, resulting in finishing transfer of data of 256 Bytes to be written, to the second to fourth banks almost at the same time.
  • the I/O buffer controller 81B stores material data of 256 bits into the second to fourth banks assigned to the write ports 13, 14, ..., 28 by time-sharing one clock by one clock, resulting in finishing transfer of material data of 256 Bytes in the second to fourth banks almost at the same time and also improving data transfer efficiency with preventing the interruption of transfer of material data in the registers 86, 87 and 88.
  • the I/O buffer 2 uses the write-only I/O buffer W 81 and the read-only I/O buffer R 81, time to switch between the writing operation and the readout operation is not required, resulting in significantly improving data transfer efficiency.
  • the I/O buffer 2 of the memory bandwidth control device 1 uses the write-only I/O buffer W 81 and the read-only I/O buffer R 82 and the PBA circuit 83A of the selector 83 dynamically switches between the buffers 81 and 82 to gives a writing permission and a readout permission. Therefore, when burst transfer for writing or readout is performed, 256 bits at a time, eight times continuously, the highest use efficiency of 95.16 % and 95.84 % can be obtained at a clock frequency of 74 MHz and 100 MHz, respectively.
  • the I/O buffer 2 of the memory bandwidth 1 dynamically assigns memory bandwidth to input/output ports requesting data transfer.
  • the efficiency of data transfer to the memory 80 can be significantly improved without wasting memory bandwidth.
  • the I/O buffer 2 executes the above memory bandwidth assignment process with a memory bandwidth assignment program.
  • Embodiments of this invention are not limited to this and in another embodiment, for example, the I/O buffer 2 can execute the memory bandwidth assignment process by inserting a program storage medium storing the memory bandwidth assignment program in an editing apparatus.
  • a program storage medium which is used for installing the memory bandwidth assignment program to execute the above-described memory bandwidth assignment process in an editing apparatus
  • not only package media such as flexible disks, compact disc-read only memory (CD-ROM), digital versatile disc (DVD) but also semiconductor memories and magnetic disks capable of temporarily or permanently storing the memory bandwidth program
  • semiconductor memories and magnetic disks capable of temporarily or permanently storing the memory bandwidth program
  • wired or wireless communication media such as local area networks, the Internet and digital satellite broadcasting can be used.
  • the program can be stored via various communication interfaces such as routers and modems.
  • memory bandwidth can be dynamically assigned after a priority order for accepting a data transfer request is given to each input/output port.
  • the above-described embodiment has described a case where the memory bandwidth control device of an embodiment of this invention is installed in an editing apparatuses.
  • Embodiments of this invention are not limited to this and instead the memory bandwidth control device of other embodiments can be installed in various kinds of information processing apparatuses such as personal computers and personal digital assistants (PDA).
  • PDA personal digital assistants
  • the above-described embodiment has described a case where the PBA circuit 81A of the I/O buffer W 81 and the PBA circuit of the I/O buffer R 82 serving as a control means dynamically assigns memory bandwidth.
  • Embodiments of this invention are not limited to this and instead the memory bandwidth can be assigned with another circuit configuration.
  • Embodiments of this invention can be applied to various information processing apparatuses for communicating data via memories, for example.

Description

  • This invention relates to a memory bandwidth control device.
  • To store material data received from an external device via an input/output port in a hard disk drive, a video editing apparatus temporarily stores the material data by a prescribed amount or more in a memory and then performs a burst transfer of the data to the hard disk drive, so as to transfer data in a short time with improved transfer efficiency.
  • Further, to edit material data, the video editing apparatus gives material data being stored in the hard disk drive, to an external device such as an effector via the memory, to edit the data, and then performs the burst transfer of the edited material data via the memory, thereby storing it in the hard disk again or outputting them to the outside.
  • As described above, the video editing apparatus communicates material data with the hard disk drive via the memory. Therefore, memory bandwidth should be controlled between the memory and a plurality of external devices being connected to the video editing apparatus via input/output ports.
  • In a case where memory bandwidth (bit width X clock number) is 100 Mbps and there are 10 external devices, the video editing apparatus equally divides the memory bandwidth by the number of the external devices simply, resulting in assigning 0.1 second to the devices with time division (10 Mbps).
  • By the way, such a video editing apparatus assigns fixed memory bandwidth to each external device being connected thereto via an input/output port, by means of time division. Therefore, the number of external devices to be connected is limited according to the memory bandwidth. In addition, bandwidth assigned external devices which do not receive and output material data is useless, resulting in deteriorated data transfer efficiency.
  • Embodiments of the present invention seek to provide a memory bandwidth control device capable of efficient data transfer between external devices and a memory.
  • United States Patent No US-B-6 501 734 discloses a memory bandwidth control device generally according to the pre-characterising part of claim 1 hereof.
  • The present invention provides a memory bandwidth control device according to claim 1 hereof, a memory bandwidth control method according to claim 4 hereof, and a memory bandwidth assignment program according to claim 7 hereof.
  • Embodiments of the present invention may be suitably applied to a memory bandwidth control device for temporarily storing in a memory material data such as video and audio, which is externally entered to a video editing apparatus, and then processing the material data via the memory or performing memory bandwidth control for a burst transfer to a hard disk drive.
  • The present invention will be described further, by way of example only, with reference to preferred embodiments thereof as illustrated in the accompanying drawings, in which:
    • Fig. 1 is a schematic block diagram showing a circuit construction of a memory bandwidth control device according to an embodiment of this invention;
    • Fig. 2 is a schematic block diagram explaining a process of bandwidth assignment to an input/output port;
    • Fig. 3 is a schematic diagram explaining operation of an I/O buffer w; and
    • Fig. 4 is a schematic diagram explaining operation of an I/O buffer R.
  • Preferred embodiments of this invention will be described with reference to the accompanying drawings:
  • (1) Circuit construction of memory bandwidth control device
  • Referring to Fig. 1, reference numeral 1 shows a memory bandwidth control device of an embodiment of the invention which is installed in an editing apparatus, for communicating material data with a hard disk drive (HDD) 60 via a memory 80 comprising, for example, a Double Data Rate-Synchronous Dynamic Random Access Memory (DDR-SDRAM).
  • The memory bandwidth control device 1 is constructed in the Field Programmable Gate Array (FPGA), and is designed to communicate material data with first to fourth devices 50 to 53, an encoder/decoder (ENC/DEC) 54 and a CPU 62 being connected to an I/O buffer 2 via various input/output ports such as a first Serial Data Interface (SDI)-IN port 3, a second SDI-IN port 4, a first SDI-OUT port 5, a second SDI-OUT port 6, an ENC/DEC port 7, and a CPU port 12 and to write/read the material data via the memory 80 in/from a hard disk drive (HDD) 60 being connected via a peripheral component interconnect (PCI) port 11.
  • Note that video data, audio data and meta data composing material data can be communicated via three read ports or three write ports for three kinds of data transfers between the I/O buffer 2, and the first and second SDI- IN ports 3 and 4 and the first SDI-OUT ports 5 and 6.
  • Further, data can be communicated via one read port and one write port between the I/O buffer 2, and the ENC/DEC port 7, the PCI ports 11 and the CPU port 12.
  • In addition, there is a video process (VPROC) port 10 as a port which is not connected to the outside, and data can be communicated via a single or plural read ports and write ports according to necessity between the VPROC port 10 and the I/O buffer 2.
  • The I/O buffer 2 is a module for mediating data transfer between the memory 80 and an input/output port via a memory controller 70, and includes inside a write-only I/O buffer W 81 and a read-only I/O buffer R 82. The I/O buffer W 81 and the I/O buffer R 82 are switched by a selector 83 depending on writing operation or readout operation.
  • The I/O buffer W 81 and the I/O buffer R 82 absorb a difference in a transfer rate between an input/output port and the memory 80, so as to improve efficiency of continuous burst transfer to the memory 80.
  • This memory bandwidth control device 1 dynamically assigns memory bandwidth to input/output ports requesting data transfers, out of the first SDI-IN port 3, the second SDI-IN port 4, the first SDI-OUT port 5, the second SDI-OUT port 6, the ENC/DEC port 7, the VPROC port 10, the PCI port 11, and the CPU port 12, and makes handshaking with the input/output ports for the assignment of the memory bandwidth.
  • Basically, an input/output port outputs a data transfer request (Request) to the I/O buffer 2 at a time of writing or reading data in/from the memory 80, and the I/O buffer 2 assigns required bandwidth to the input/output port requesting the data transfer and outputs a response signal (Acknowledge) to the input/output port, so as to inform the input/output port of the reservation of the memory bandwidth.
  • Note that each input/output port includes a single or plural read/write ports, and communication with the I/O buffer 2 is made on a read port/write port basis.
  • (2) Summary of bandwidth assignment process
  • Sequentially, a process of bandwidth assignment to read/write ports which the I/O buffer 2 executes with a memory bandwidth assignment program will be described with reference to Fig. 2.
  • For example, when the I/O buffer W 81 of the I/O buffer 2 receives data transfer requests (Request) from a single or plural write ports 13, 14, ..., 28, an I/O buffer controller 81B having a passive band allocation circuit 81A (hereinafter, referred to as PBA circuit, simply) dynamically assigns memory bus bandwidth between the I/O buffer 2 and the memory 80 to the write ports 13, 14, ..., 28 sending the data transfer requests.
  • The I/O buffer controller 81B converts material data to be written, sequentially received with a 32-bit-width data bus from the write ports 13, 14, ..., 28, which have been assigned the memory bandwidth by the PBA circuit 81A, so as to send the data to the buffer 81C with a 256-bit-width data bus. When data of a prescribed size is stored in the buffer 81C, the I/O buffer controller 81B outputs a data transfer request (Request) to a PBA circuit 83A of the selector 83.
  • The PBA circuit 83A of the selector 83 alternatively switches between the I/O buffer W 81 and the I/O buffer R 82 which communicate data with the memory 80, depending on whether a data transfer request (Request) has come from the I/O buffer W 81 or I/O buffer R 82.
  • The memory controller 70 transfers from the I/O buffer W 81 to the memory 80 the material data to be written, received from any of the first SDTI-IN port 3, the second SDTI-IN port 4, the ENC/DEC port 7, the VPROC port 10, the PCI port 11 and the CPU port 12 while the selector 83 selects the I/O buffer W 81. And while the I/O buffer R 82 is selected, the memory controller 70 outputs the material data read from the memory 80, to any of the first SDI-OUT port 5, the second SDI-OUT port 6, the ENC/DEC port 7, the VPROC port 10, the PCI port 11, and the CPU port 12, via the I/O buffer R 82.
  • Note that the I/O buffer R 82 performs the same process as the I/O buffer W 81 although they are different in writing operation and readout operation, and its explanation will be omitted.
  • (2-1) Operation of I/O buffer W
  • The operation of the I/O buffer W 81 at a time of sequentially performing a burst transfer of material data to be written, to the memory 80 via a write port 13, 14, ..., 28 of an input/output port will be now described with reference to Fig. 3.
  • Each write port 13, 14, ..., 28 has a buffer inside, and outputs a data transfer request to the I/O buffer W 81 when 25-Byte material data to be written is stored in the buffer.
  • When the PBA circuit 81A (Fig. 2) of the I/O buffer W 81 receives a data transfer request from a write port 14, it assigns a smallest-numbered, or, first bank in the buffer 81C, to the write port 14, so as to assign memory bandwidth to the write port 14.
  • In this case, the I/O buffer controller 81B creates a port table 91 indicating a correspondence between the write port 14 (#2) sending the data transfer request and the order (No. 1) of arrival of the data transfer request, and creates a bank table 92 indicating a correspondence between the write port 14 (#2) and the first bank (1B) assigned.
  • Then the I/O buffer controller 81B sequentially takes in material data to be written, via a port slot 84 with a 32-bit-width data bus from the write port 14, converts the data with an internal register 87 to output it with a 256-bit-width data bus, and sequentially stores it in the first bank of the buffer 81C via a bank slot 85 at a transfer rate of 256 bits per one clock, thereby storing the material data of 256 Bytes in the fist bank for 8 clocks.
  • As for the first bank to the sixteenth bank in the buffer 81C, 256 Bytes are set as a unit of data transfer to the memory 80. With this data size, material data to be written can be transferred continuously with a small overhead.
  • In the I/O buffer W 81, since 256 Bytes are set as a size of burst transfer to the memory 80, a unit of data transfer in the I/O buffer W 81 is basically 256 Bytes.
  • When material data of 256 Bytes is stored in the first bank, the buffer 81C sends the memory controller 70 a writing request of the material data into the memory 80. When the buffer 81C receives a writing permission, it sequentially transfers the material data of 256 Bytes in total 256 bits at a time to the memory controller 70 via the selector 83.
  • Since the memory 80 is a double data rate memory, the memory controller 70 transfers the received data to the memory 80 with a 128-bit-width data bus.
  • Consider now a case where the I/O buffer controller 81B receives a data transfer request (Request) from each write port 13, 14, ..., 28 in an order that material data of 256 Bytes are stored in the write ports 13, 14, ..., 28. Since it takes eight clocks to store material data of 256 bits from each write port 13, 14, ..., 28 to convert data of 32 bits to data of 256 bits with the buffer 86, 87, 88 and eight clocks are divided with time division for the data transfer to the buffer 81C, it is able to simultaneously receive data from eight write ports.
  • Therefore, memory bandwidth to be assigned to each write port 13, 14, ..., 28 is one-eighth of the memory bandwidth at most. In a case where the memory bandwidth is 1 Gbps, for example, the maximum memory bandwidth for one write port is 125 Mbps.
  • In a case where memory bandwidth is not required, the memory bandwidth is not assigned unless a transfer request is sent to the I/O buffer W 81.
  • As described above, the I/O buffer W 81 assigns memory bandwidth according to transfer requests (Request), so that large memory bandwidth can be assigned to a write port having a large amount of data, resulting in efficient data transfer.
  • At this time, similarly, the I/O buffer controller 81B creates a port table 91 indicating a correspondence between the write ports 13, 14, ..., 28 and the order of arrival of data transfer requests (Request). In addition, the I/O buffer controller 81B assigns each write port 13, 14, ..., 28 to a smallest-numbered free bank of the buffer 81C in the order of arrival of the data transfer requests (Request) and creates a bank table 92 indicating its correspondence.
  • The port table 91 shows that the write ports 14 (#2), 13 (#1), and 28 (#16) sent the first to third data transfer requests (Request) indicated by Nos. 1, 2, and 3, respectively.
  • In addition, the bank table 92 indicates the numbers (#2, #1, #16) of the write ports 14, 13, and 28 assigned in the order of arrival of the data transfer requests (request), in association with the second to fourth banks out of the first to sixteenth banks of the buffer 81C.
  • In this connection, as to the first bank, material data from the second SDI-IN port 4 has been already stored as described above, so that write ports are assigned to the smallest-numbered free bank, or, second and following free banks.
  • As described above, the I/O buffer controller 81B dynamically assigns the write ports 13, 14, ..., 28 to the banks of the buffer 81C in an order of arrival of data transfer requests (Request) to the PBA circuit 81A.
  • In this case, memory bandwidth is assigned to three write ports 13, 14, 28, so that, in the order of arrival of the transfer requests, material data of 256 bits from the write port 14 is stored in the second bank for the first one clock, material data of 256 bits from the write port 13 is stored in the third bank for the next one clock, and material data of 256 bits from the write port 28 is stored in the fourth bank for the next one clock.
  • Then, material data of 256 bits is stored in each write port 13, 14, 28 again after eight clocks, resulting in storing 256-Byte material data to be written, in the second to fourth banks.
  • The buffer 81C comprises a dual port RAM, and transfers material data of 256 Bytes, 256 bits at a time, from the second bank to the memory 80 via the memory controller 70 according to a writing permission issued from the memory controller 70 when material data of 256 Bytes is stored in the second bank. Similarly, the buffer 81C transfers material data to the memory 80 via the memory controller 70 from the third bank and then from the fourth bank in order.
  • The buffer 81C comprises a dual port RAM as described above, so that the I/O buffer controller 81B asynchronously stores and reads material data in/from the first to sixteenth banks of the buffer 81C.
  • Therefore, the buffer 81C is able to transfer material data from the first bank to the memory 80 while I/O buffer controller 81B stores material data in the second to fourth banks, resulting in improving data transfer efficiency.
  • By the way, the I/O buffer W 81 is used for only writing material data in the memory 80. As compared with a case of alternatively issuing a writing command and a readout command many times, time to switch between the writing operation and the readout operation is not required, resulting in significantly improving data transfer efficiency.
  • (2-2) Operation of I/O buffer R
  • Operation of the I/O buffer R 82 at a time of transferring material data from the memory 80 to read ports 29, 30, ..., 44 via the I/O buffer R 82 will be now described with reference to Fig. 4.
  • In Fig. 4 where the same reference numerals are applied to parts corresponding to those of Fig. 3, parts other than the I/O Buffer R 82 which is used instead of the I/O buffer W 81 of Fig. 3 are all the same.
  • When a PBA circuit (not shown) of the I/O buffer R 82 receives a data transfer request of material data to be read, being stored in the memory 80, from only the read port 30, it assigns memory bandwidth to the read port 30 and assigns the smallest-numbered free bank, or, the first bank of the buffer 82C to the read port 30.
  • In this case, the I/O buffer controller 82B creates a port table 101 indicating a correspondence between the read port 30 (#2) sending the data transfer request and an order of arrival of its data transfer request (No. 1), and also creates a bank table 102 indicating a correspondence between the read port 30 (#2) and the assigned first bank (1B) with the smallest number of the buffer 82C.
  • Then the I/O buffer controller 82B issues a data transfer request of material data to be read, to the memory controller 70 via the selector 83, sequentially stores the material data from the memory 80 in the first bank of the buffer 82C at a transfer rate of 256 bits per one clock, thereby storing material data of 256 Bytes in the first bank for eight clocks.
  • Then the I/O buffer controller 82B takes in the material data of 256 bits from the first bank of the buffer 82C via a bank slot 105, converts it with the register 107 to output it with a 32-bit-width data bus and transfers the data to the read port 30 via a port slot 104, and finishes the data transfer process when the material data of 256 Bytes is stored in the read port 30.
  • When the I/O buffer controller 82B receives data transfer requests of material data to be read from the memory 80, from read ports 29, 30, ..., 44, it can assign memory bandwidth to the read ports 29, 30, ..., 44 sending the transfer requests.
  • The I/O buffer controller 82B creates a port table 101 indicating a correspondence between the read ports 29, 30, ..., 44 and an order of arrival of the data transfer requests. In addition, the I/O buffer controller 82B assigns the read ports to the smallest-numbered free banks in the order of arrival of the data transfer requests and creates a bank table 102 indicating its correspondence.
  • The port table 101 of this case shows that the read ports 30 (#2), 29 (#1), and 44 (#16) sent first to third data transfer requests (Request) indicated by Nos. 1 to 3, respectively.
  • The bank table 102 shows the numbers (#2, #1, #16) of the read ports 29, 30, ..., 44 assigned to the second to fourth banks out of the first to sixteenth banks of the buffer 82C in the order of arrival of the data transfer requests.
  • In this connection, as to the first bank, as described above, material data to be read has been stored in response to the data transfer request from the read port 30, the read ports are assigned to the smallest-numbered, or, second and following free banks.
  • As described above, the I/O buffer controller 82B dynamically assigns the read ports 29, 30, ..., 44 to banks of the buffer 82C in an order of arrival of data transfer requests to the PBA circuit (not shown).
  • In actual, similarly to the I/O buffer controller 81B, the I/O buffer controller 82B performs the burst transfer of data of 256 Bytes, 256 bits at a time, from the memory 80 to banks in an order of transfer requests.
  • In this case, since memory bandwidth is assigned to three read ports 30, 29, and 44 in order, material data of 256 Bytes from the memory 80 is stored in the second bank, the third bank and then the fourth bank in order.
  • The buffer 82C comprises a dual port RAM, and when material data of 256 Bytes is stored in each of the second to fourth banks, sequentially transfers the material data from the second to fourth bank, 256 bits at a time, to the I/O buffer controller 82B with time division.
  • The I/O buffer controller 82B converts the material data of 256 bit width into 32 bit width with the registers 106 to 108, and transfers the resultant to the read ports 29, 30, ..., 44 via the port slot 104.
  • Since the buffer 82C also comprises a dual port RAM, the I/O buffer controller 82B is able to asynchronously store material data into/from the first to sixteenth banks of the buffer 82C and output material data read from the first to sixteenth banks of the buffer 82C.
  • Therefore, while the I/O buffer controller 82B stores material data in the second to fourth banks, the buffer 82C is able to transfer material data from the first bank to the read port 30 via the I/O buffer controller 82B, resulting in improving data transfer efficiency.
  • By the way, the I/O buffer R 82 is used for only readout of material data from the memory 80. As compared with a case of alternatively outputting a writing command and a readout command many times, time to switch between the writing operation and the readout operation is not required, resulting in significantly improving data transfer efficiency.
  • (3) Operation and Effects
  • In the above configuration, the I/O buffer 2 of the memory bandwidth control device 1 dynamically assigns memory bandwidth to input/output ports requesting data transfer. Therefore, required memory bandwidth can be assigned according to necessity. As compared with a conventional case of assigning fixed memory bandwidth, memory bandwidth can be prevented from being uselessly assigned, resulting in significantly improving efficiency of data transfer to the memory 80.
  • The I/O buffer 2 of the memory bandwidth control device 1 dynamically assigns memory bandwidth to input/output ports requesting data transfer. The number of input/output ports to be connected to the I/O buffer 2 is not limited in theory, provided that the memory bandwidth can be assigned within its range, resulting in significantly improving usability without limiting the number of external devices according to the memory bandwidth.
  • The I/O buffer 81B of the I/O buffer W 81 assigns the second to fourth banks of the buffer 81C, in an increasing numbered order of banks, to the write ports 13, 14, 28 dynamically assigned memory bandwidth in an order of arrival of data transfer requests in order, and stores material data to be written, 256 bits at a time, in the assigned second to fourth banks in order by time-sharing one clock by one clock, resulting in finishing transfer of data of 256 Bytes to be written, to the second to fourth banks almost at the same time.
  • In a case where data is transferred to the second to fourth banks without time-sharing, material data to be written, from the write ports 13, 14, ..., 28 should be stored in the registers 86, 87, and 88 once, so that the data transfer of the material data transferred between the I/O buffer controller 81B and the buffer 81C is interrupted by the registers 86, 87 and 88.
  • The I/O buffer controller 81B, however, stores material data of 256 bits into the second to fourth banks assigned to the write ports 13, 14, ..., 28 by time-sharing one clock by one clock, resulting in finishing transfer of material data of 256 Bytes in the second to fourth banks almost at the same time and also improving data transfer efficiency with preventing the interruption of transfer of material data in the registers 86, 87 and 88.
  • This effects are the same in the I/O buffer controller 82B of the I/O buffer R 82.
  • Since the I/O buffer 2 uses the write-only I/O buffer W 81 and the read-only I/O buffer R 81, time to switch between the writing operation and the readout operation is not required, resulting in significantly improving data transfer efficiency.
  • In actual, the I/O buffer 2 of the memory bandwidth control device 1 uses the write-only I/O buffer W 81 and the read-only I/O buffer R 82 and the PBA circuit 83A of the selector 83 dynamically switches between the buffers 81 and 82 to gives a writing permission and a readout permission. Therefore, when burst transfer for writing or readout is performed, 256 bits at a time, eight times continuously, the highest use efficiency of 95.16 % and 95.84 % can be obtained at a clock frequency of 74 MHz and 100 MHz, respectively.
  • According to the above configuration, the I/O buffer 2 of the memory bandwidth 1 dynamically assigns memory bandwidth to input/output ports requesting data transfer. As compared with a conventional case of assigning fixed memory bandwidth, the efficiency of data transfer to the memory 80 can be significantly improved without wasting memory bandwidth.
  • (4) Other embodiments
  • Note that the above-described embodiment has described a case where material data of 256 Bytes is stored in the first to sixteenth banks of the buffers 81C and 82C by performing the burst transfer, 256 bits at a time, for eight clocks. Embodiments of this invention, however, are not limited to this, and in other embodiments, for example, material data of 128 Bytes or 512 Bytes can be stored by performing the burst transfer for four clocks or sixteen clocks.
  • Further, the above-described embodiment has described a case where the I/O buffer 2 executes the above memory bandwidth assignment process with a memory bandwidth assignment program. Embodiments of this invention, however, are not limited to this and in another embodiment, for example, the I/O buffer 2 can execute the memory bandwidth assignment process by inserting a program storage medium storing the memory bandwidth assignment program in an editing apparatus.
  • As a program storage medium which is used for installing the memory bandwidth assignment program to execute the above-described memory bandwidth assignment process in an editing apparatus, not only package media such as flexible disks, compact disc-read only memory (CD-ROM), digital versatile disc (DVD) but also semiconductor memories and magnetic disks capable of temporarily or permanently storing the memory bandwidth program can be used. In addition, as a means for storing the memory bandwidth assignment program in a program storage medium, wired or wireless communication media such as local area networks, the Internet and digital satellite broadcasting can be used. The program can be stored via various communication interfaces such as routers and modems.
  • Still further, the above-described embodiment has described a case of dynamically assigning memory bandwidth to input/output ports requesting data transfer. Embodiments of this invention, however, are not limited to this and in another embodiment memory bandwidth can be dynamically assigned after a priority order for accepting a data transfer request is given to each input/output port. By doing this, while the number of connectable input/output ports is not limited in theory, a risk in which memory bandwidth is not assigned to devices with higher priority can be previously prevented.
  • Still further, the above-described embodiment has described a case where the memory bandwidth control device of an embodiment of this invention is installed in an editing apparatuses. Embodiments of this invention are not limited to this and instead the memory bandwidth control device of other embodiments can be installed in various kinds of information processing apparatuses such as personal computers and personal digital assistants (PDA).
  • Still further, the above-described embodiment has described a case where the PBA circuit 81A of the I/O buffer W 81 and the PBA circuit of the I/O buffer R 82 serving as a control means dynamically assigns memory bandwidth. Embodiments of this invention, however, are not limited to this and instead the memory bandwidth can be assigned with another circuit configuration.
  • Embodiments of this invention can be applied to various information processing apparatuses for communicating data via memories, for example.
  • In so far as the embodiments of the invention described above are implemented, at least in part, using software-controlled data processing apparatus, it will be appreciated that a computer program providing such software control and a storage medium by which such a computer program is stored are envisaged as aspects of the present invention.
  • Although particular embodiments have been described herein, it will be appreciated that the invention is not limited thereto and that many modifications and additions thereto may be made within the scope of the invention. For example, various combinations of the features of the following dependent claims can be made with the features of the independent claims without departing from the scope of the present invention.

Claims (7)

  1. A memory bandwidth control device (1) comprising:
    a memory (80) to be used for temporarily storing and outputting data to be communicated with external devices (50-62) connected via input/output ports (3-7, 10-12); and
    a controller (2) for dynamically assigning memory bandwidth to input/output ports of external devices issuing data transfer requests when receiving the data transfer requests of the data to the memory from the external devices, the controller (2) comprising a selector (83) for temporarily storing data from external devices into a write-only buffer (81) when receiving writing requests from the external devices or temporarily storing data read from the memory into a read-only buffer (82) when receiving readout requests from the external devices, and dynamically assigning use permission to the write-only buffer accepting the writing requests or the read-only buffer accepting the readout requests
    characterised in that each of the write-only and read-only I/O buffers (81, 82) comprises a buffer portion. (81C, 82C) having plural banks and an I/O buffer control portion (81B, 82B) having a passive band allocation circuit (81 A, 82A) for dynamically assigning memory bandwidth between the controller (2) and the memory (80) to the input/output ports sending the requests, wherein the passive band allocation circuit (81A, 82A) is responsive to receiving each said request to assign a bank of the buffer portion (81C, 82C) to the port sending the request, and the I/O buffer control portion (81B, 82B) is operative to create a port table (91, 101) indicating a correspondence between the requesting ports and the order of arrival of the requests from the ports and a bank table (92, 102) indicating a correspondence between the requesting ports and the banks assigned.
  2. A memory bandwidth control device according to claim 1, wherein the controller (2) is operative to set the number of input/output ports effective to the memory within a range of the memory bandwidth.
  3. A memory bandwidth control device according to claim 1 or claim 2, wherein the selector (83) is operative to perform burst transfer of the data stored in the write-only buffer (81) or the read-only buffer (82) to the memory (80), a prescribed data amount at a time.
  4. A memory bandwidth control method comprising:
    a step of temporarily storing in a memory (80) and outputting data to be communicated with external devices (50-62) connected via input/output ports (3-7, 10-12); and
    a step of dynamically assigning memory bandwidth to input/output ports of external devices issuing data transfer requests when receiving the data transfer requests of the data to the memory from the external devices, the step being effected by a controller (2) comprising a selector (83) for temporarily storing data from external devices into a write-only buffer (81) when receiving writing requests from the external devices or temporarily storing data read from the memory into a read-only buffer (82) when receiving readout requests from the external devices, and dynamically assigning use permission to the write-only buffer accepting the writing requests or the read-only buffer accepting the readout requests;
    characterised in that each of the write-only and read-only I/O buffers (81, 82) comprises a buffer portion (81C, 82C) having plural banks and an I/O buffer control portion (81B, 82B) having a passive band allocation circuit (81A, 82A) for dynamically assigning memory bandwidth between the controller (2) and the memory (80) to the input/output ports sending the requests, wherein the passive band allocation circuit (81A, 82A) is responsive to receiving each said request to assign a bank of the buffer portion (81C, 82C) to the port sending the request, and the I/O buffer control portion (81B, 82B) is operative to create a port table (91, 101) indicating a correspondence between the requesting ports and the order of arrival of the requests from the ports and a bank table (92, 102) indicating a correspondence between the requesting ports and the banks assigned.
  5. A memory bandwidth control method according to claim 4, wherein the controller (2) sets the number of input/output ports effective to the memory within a range of the memory bandwidth.
  6. A memory bandwidth control method according to claim 4 or claim 5, wherein the selector (83) performs burst transfer of the data stored in the write-only buffer (81) or the read-only buffer (82) to the memory (80), a prescribed data amount at a time.
  7. A memory bandwidth assignment program for executing on an editing apparatus to execute all method steps of a memory bandwidth control method according to claim 4, claim 5 or claim 6.
EP04255414A 2003-09-08 2004-09-07 Memory bandwidth control device Expired - Fee Related EP1513071B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003315731A JP2005084907A (en) 2003-09-08 2003-09-08 Memory band control unit
JP2003315731 2003-09-08

Publications (3)

Publication Number Publication Date
EP1513071A2 EP1513071A2 (en) 2005-03-09
EP1513071A3 EP1513071A3 (en) 2005-12-14
EP1513071B1 true EP1513071B1 (en) 2007-09-05

Family

ID=34131940

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04255414A Expired - Fee Related EP1513071B1 (en) 2003-09-08 2004-09-07 Memory bandwidth control device

Country Status (5)

Country Link
US (1) US7657711B2 (en)
EP (1) EP1513071B1 (en)
JP (1) JP2005084907A (en)
CN (1) CN100397374C (en)
DE (1) DE602004008712T2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11258877B2 (en) 2018-07-26 2022-02-22 Netapp, Inc. Methods for managing workloads in a storage system and devices thereof

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4135747B2 (en) * 2006-04-06 2008-08-20 ソニー株式会社 Data processing apparatus and flash memory access method
WO2008032711A1 (en) * 2006-09-13 2008-03-20 Panasonic Corporation Memory controller, nonvolatile storage device, access device and nonvolatile storage system
JP4679494B2 (en) * 2006-11-22 2011-04-27 Necシステムテクノロジー株式会社 Disk array device system, disk array device control method, and program
JP5045229B2 (en) * 2007-05-14 2012-10-10 富士ゼロックス株式会社 Storage system and storage device
US8250312B2 (en) 2009-04-29 2012-08-21 Micron Technology, Inc. Configurable multi-port memory devices and methods
US20120066444A1 (en) * 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation
US20120066471A1 (en) * 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Allocation of memory buffers based on preferred memory performance
JP5754273B2 (en) 2011-07-11 2015-07-29 株式会社リコー MEMORY CONTROL DEVICE, INFORMATION PROCESSING DEVICE, AND MEMORY CONTROL METHOD
WO2016038710A1 (en) * 2014-09-11 2016-03-17 株式会社日立製作所 Storage system
US10095422B2 (en) * 2016-10-28 2018-10-09 Veritas Technologies, LLC Systems and methods for allocating input/output bandwidth in storage systems

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63132369A (en) 1986-11-21 1988-06-04 Oki Electric Ind Co Ltd Memory information transfer system
JPH03273353A (en) 1990-03-22 1991-12-04 Hitachi Ltd Communication control equipment
JP3273191B2 (en) 1991-11-29 2002-04-08 日本電気エンジニアリング株式会社 Data transfer device
JP3364751B2 (en) 1992-02-20 2003-01-08 日本電気エンジニアリング株式会社 Data transfer system
WO1995015525A1 (en) * 1993-11-30 1995-06-08 Vlsi Technology, Inc. Method and apparatus for providing and maximizing concurrent operations in a shared memory system
WO1995015528A1 (en) * 1993-11-30 1995-06-08 Vlsi Technology, Inc. A reallocatable memory subsystem enabling transparent transfer of memory function during upgrade
US5634004A (en) * 1994-05-16 1997-05-27 Network Programs, Inc. Directly programmable distribution element
BR9610270A (en) * 1995-08-16 1999-07-06 Starguide Digital Networks Inc Dynamic bandwidth allocation for transmission of audio signals and a video signal
US6098123A (en) * 1997-05-08 2000-08-01 International Business Machines Corporation Method and apparatus for dynamic allocation of bandwidth to/from network adapter memory amongst active input/output ports
JPH10340243A (en) 1997-06-06 1998-12-22 Hitachi Ltd Input/output data transfer system
US6339434B1 (en) * 1997-11-24 2002-01-15 Pixelworks Image scaling circuit for fixed pixed resolution display
US6903733B1 (en) * 1997-11-24 2005-06-07 Pixelworks, Inc. Ultra-high bandwidth multi-port memory system for image scaling applications
JP2000330923A (en) 1999-05-19 2000-11-30 Nec Corp Data transfer system, transfer method, and recording medium
US6501734B1 (en) * 1999-05-24 2002-12-31 Advanced Micro Devices, Inc. Apparatus and method in a network switch for dynamically assigning memory interface slots between gigabit port and expansion port
KR100724438B1 (en) * 2001-12-26 2007-06-04 엘지전자 주식회사 Memory control apparatus for bsae station modem

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11258877B2 (en) 2018-07-26 2022-02-22 Netapp, Inc. Methods for managing workloads in a storage system and devices thereof

Also Published As

Publication number Publication date
US7657711B2 (en) 2010-02-02
CN100397374C (en) 2008-06-25
EP1513071A2 (en) 2005-03-09
EP1513071A3 (en) 2005-12-14
JP2005084907A (en) 2005-03-31
DE602004008712D1 (en) 2007-10-18
CN1601501A (en) 2005-03-30
DE602004008712T2 (en) 2008-06-12
US20050086425A1 (en) 2005-04-21

Similar Documents

Publication Publication Date Title
US6523088B2 (en) Disk array controller with connection path formed on connection request queue basis
US7984246B1 (en) Multicore memory management system
KR100619806B1 (en) Arbitration Methods and Systems for Arbitrating Access to a Disk Controller Memory
JP4805351B2 (en) System and method for improving parallel processing of DRAM
US7165125B2 (en) Buffer sharing in host controller
CA2223890A1 (en) Split buffer architecture
KR19980063551A (en) Signal Processing Units and Software
EP1513071B1 (en) Memory bandwidth control device
US20020184453A1 (en) Data bus system including posted reads and writes
US20190130951A1 (en) Multi-port memory device and a method of using the same
US20070168583A1 (en) Endpoint control apparatus and method thereof
KR101857911B1 (en) Multiple channel memory controller using virtual channel
US20080301381A1 (en) Device and method for controlling commands used for flash memory
JP2004501470A (en) Generating memory addresses using scheme registers
CN116685943A (en) Self-dispatch threading in programmable atomic units
US6877060B2 (en) Dynamic delayed transaction buffer configuration based on bus frequency
KR100449721B1 (en) Interface for devices having different data bus width and data transfer method using the same
KR100676982B1 (en) Arrangement with a plurality of processors having an interface for a collective memory
KR100487199B1 (en) Apparatus and method for data transmission in dma
EP1988463B1 (en) Memory control apparatus and memory control method
US20050097272A1 (en) Disk array device and control method of disk array device
US6401151B1 (en) Method for configuring bus architecture through software control
KR100950356B1 (en) Data transfer unit with support for multiple coherency granules
JP2009037639A (en) Dmac issue mechanism via streaming identification method
US6425029B1 (en) Apparatus for configuring bus architecture through software control

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

17P Request for examination filed

Effective date: 20060516

AKX Designation fees paid

Designated state(s): DE FR GB

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

RIN1 Information on inventor provided before grant (corrected)

Inventor name: OKUNO, KENICHI,C/O SONY CORPORATION

REF Corresponds to:

Ref document number: 602004008712

Country of ref document: DE

Date of ref document: 20071018

Kind code of ref document: P

ET Fr: translation filed
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20080606

REG Reference to a national code

Ref country code: GB

Ref legal event code: 746

Effective date: 20120703

REG Reference to a national code

Ref country code: DE

Ref legal event code: R084

Ref document number: 602004008712

Country of ref document: DE

Effective date: 20120614

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20120920

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20120921

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20121010

Year of fee payment: 9

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20130907

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 602004008712

Country of ref document: DE

Effective date: 20140401

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20140530

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20130907

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20140401

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20130930