In recent years, USB (Universal Serial Bus) is widely used as one of the serial bus protocol standards in which peripheral devices are connected to personal computers and home electric appliances. Physically speaking, communication is achieved serially in the USB protocol, however, a USB controller having a plurality of endpoints is able to perform communication independently by using each endpoint (refer to FIG. 3).
Patent Document 1 discloses a USB controller having a double buffer configuration comprising a dedicated buffer corresponding to each endpoint and a common buffer used by all the endpoints. According to the Patent Document 1, when the common buffer is allocated to the endpoints at the time of data transfer, the data is transferred by controlling the dedicated buffer and the common buffer. Further, when the common buffer is not allocated, the data transfer is performed in a double buffer configuration by having a buffer switch control device determine whether or not a read buffer of another endpoint to which the common buffer is allocated is vacant and allocate the vacant buffer to an endpoint communicating data.
As described, USB controllers that demonstrate high communication performance while the circuit size is kept to a minimum are developed. Meanwhile, in order to improve the maximum transfer rate, the USB standard has been expanded and USB 3.0 (Non-Patent Document 1) achieving a speed of 5 Gbit/s as the maximum data transfer rate has started to spread. In USB 3.0, in order to achieve the transfer rate above, burst transfer is defined, in addition to the transfer modes of USB 2.0 such as the control transfer and bulk transfer. The burst transfer is a procedure for performing high-speed data transfer, and the transfer rate is improved by partially omitting specification of addresses when continuous data are transferred.
[Patent Document 1]
    Japanese Patent Kokai Publication No. JP-P2002-9849A, which corresponds to US 2001/056513A1.[Non-Patent Document 1]    USB Implementers Forum, Inc, “USB 3.0 Specification,” Nov. 12, 2008, [online], [searched on Apr. 20, 2010], the Internet <URL: http://www.usb.org/developers/docs/>