In order to reduce load placed on a cpu (central processing unit) in providing SBP-2 (serial bus protocol 2) initiator capability, provided are a sequence control circuit activated by the cpu for controlling a command issue sequence, a packet processing circuit for assembling operation request blocks (orb) into a transmission packet and extracting a status from a received packet; buffer for storing a command orb provided by the cpu; a buffer for storing a management orb provided by the cpu; a buffer for storing a status received for an issued management orb and providing the status to the cpu; and a buffer for command for storing a status received for an issued command orb and providing the status to the cpu.
|
4. A command issuing apparatus as an initiator in a high-speed serial interface for issuing a command to a target by using a packet, comprising:
a sequence control circuit activated by a central processing unit (cpu) for controlling a command issue sequence;
a packet processing circuit for assembling operation request blocks (orb) to be issued into a transmission packet and extracting a status from a received packet; and
a command orb transmission buffer for storing a plurality of command ORBs provided by said cpu at a time;
wherein said command orb transmission buffer, by itself, assigns and rewrites an address into a next_orb field of command orb which is stored in the end of said command orb transmission buffer so that a plurality of ORBs are linked when the cpu issues an additional command orb during an execution of a plurality of linked command orb.
3. A command issuing apparatus as an initiator in a high-speed serial interface for issuing a command to a target by using a packet, comprising:
a sequence control circuit activated by a central processing unit (cpu) for controlling a command issue sequence;
a packet processing circuit for assembling operation request blocks (orb) to be issued into a transmission packet and extracting a status from a received packet;
a command orb transmission buffer for storing a command orb provided by said cpu;
a management orb transmission buffer for storing a management orb provided by said cpu;
a status reception buffer for management for storing a status received for an issued management orb and providing the status to said cpu; and
a status reception buffer for command for storing a status received for an issued command orb and providing the status to said cpu,
wherein said command orb transmission buffer, by itself, automatically assigns and rewrites an address into a next_orb field without an operation of the cpu.
5. A command issuing apparatus as an initiator in a high-speed serial interface for issuing a command to a target by using a packet, comprising:
a sequence control circuit activated by a central processing unit (cpu) for controlling a command issue sequence;
a packet processing circuit for assembling operation request blocks (orb) to be issued into a transmission packet and extracting a status from a received packet; and
a command orb transmission buffer for storing a plurality of command ORBs provided by said cpu at a time;
wherein said command orb transmission buffer rewrites a next_orb field of a command orb in said command orb buffer from null to an address of a new command orb to link the ORBs, and then requests said sequence control circuit to access a doorbell register of said target when the new command orb is stored during the execution of a command orb; and
said sequence control circuit generates and issues a packet accessing said doorbell register in response to the request from said command orb transmission buffer.
1. A command issuing apparatus as an initiator in a high-speed serial interface for issuing a command to a target by using a packet, comprising:
a sequence control circuit activated by a central processing unit (cpu) for controlling a command issue sequence;
a packet processing circuit for assembling operation request blocks (orb) to be issued into a transmission packet and extracting a status from a received packet;
a command orb transmission buffer for storing a command orb provided by said cpu;
a management orb transmission buffer for storing a management orb provided by said cpu;
a status reception buffer for management for storing a status received for an issued management orb and providing the status to said cpu; and
a status reception buffer for command for storing a status received for an issued command orb and providing the status to said cpu,
wherein said command orb transmission buffer has a capacity for storing a plurality of command ORBs at a time, and
wherein said command orb transmission buffer automatically assigns and rewrites an address into a next_orb field so that a plurality of ORBs to be stored are linked even if the next_orb field is null.
2. A command issuing apparatus as an initiator in a high-speed serial interface for issuing a command to a target by using a packet, comprising:
a sequence control circuit activated by a central processing unit (cpu) for controlling a command issue sequence;
a packet processing circuit for assembling operation request blocks (orb) to be issued into a transmission packet and extracting a status from a received packet;
a command orb transmission buffer for storing a command orb provided by said cpu;
a management orb transmission buffer for storing a management orb provided by said cpu;
a status reception buffer for management for storing a status received for an issued management orb and providing the status to said cpu; and
a status reception buffer for command for storing a status received for an issued command orb and providing the status to said cpu,
wherein said command orb transmission buffer has a capacity for storing a plurality of command ORBs at a time, and
wherein said command orb transmission buffer rewrites the next_orb field to link the ORBs, and then requests said sequence control circuit to access a doorbell register of said target when a new command orb is stored during the execution of a command orb; and
said sequence control circuit generates and issues a packet accessing said doorbell register in response to the request from said command orb transmission buffer.
|
The present invention relates to a command issuing apparatus for a high-speed serial interface.
In recent years, IEEE 1394 interfaces have received attention as high-speed serial interfaces for interconnecting audiovisual apparatuses and computers. The IEEE 1394 technology can be used not only for communications between computers through ATAPI (AT Attachment Packet Interface) and SCSI (Small Computer System Interface), which are conventional parallel interfaces, but also for communications between audiovisual apparatuses. This is because IEEE 1394 defines asynchronous communication and isochronous communication.
When computer data is stored in a magnetic disk such as a hard disk or an optical disk such as a DVD-RAM or computer data stored in such a disk is read by a host computer using the IEEE 1394 technology, a control command and data is typically transmitted using asynchronous communication. SBP-2 (Serial Bus Protocol 2), which is a protocol using asynchronous communication, has been generally used for communication between the host computer (initiator) and the hard disk or DVD-RAM (target).
With the commencement of digital broad casting services in Japan, the fusion of audiovisual apparatuses and computers has been accelerated and a hard disk and DVD-RAM have begun to be used as a recording medium for a set top box (STB). Audiovisual data is recorded on these disks in a format that can be handled as a computer file in order to facilitate the management and editing of the data. In such a case, it is required that an SBP-2 initiator capability be provided in the STB, which is an audiovisual apparatus.
Because the dominating apparatuses having the SBP-2 initiator capability have been computers, central processing units (CPUs) offering sufficient speed performance have controlled the transmission and reception of all packets, especially the generation of packets containing operation request blocks (ORBs), in accordance with a program. However, in terms of a cost/performance ratio it is difficult to include a CPU offering sufficient speed performance in an audiovisual apparatus.
In addition, when audiovisual data is recorded or images are reproduced or edited in a target apparatus (such as a hard disk drive or DVD-RAM drive) by an initiator apparatus (STB), the CPU cannot provide sufficient command execution speeds and therefore transmission performance of the target apparatus cannot be fully exploited. Furthermore, required transfer performance of the entire system cannot be achieved.
It is an object of the present invention to reduce load on a CPU when it issues a command in an apparatus providing high-speed serial interface initiator capability.
To achieve the object, the present invention provides a command issuing apparatus as an initiator in a high-speed serial interface that issues a command to a target by using a packet, comprising: a sequence control circuit activated by a central processing unit (CPU) for controlling a command issue sequence; a packet processing circuit for assembling operation request blocks (ORB) to be issued into a transmission packet and extracting a status from a received packet; a command ORB transmission buffer for storing a command ORB provided by the CPU; a management ORB transmission buffer for storing a management ORB provided by the CPU; a status reception buffer for management for storing a status received for an issued management ORB and providing the status to the CPU; and a status reception buffer for command for storing a status received for an issued command ORB and providing the status to the CPU.
According to the present invention, once the CPU stores a command ORB or a management ORB in its transfer buffer and activates the sequence control circuit, no additional load is placed on the CPU until it receives a status for the ORB issued.
According to the present invention, an initiator capability with high response performance can be provided in the command issuing apparatus by using non-programmed control.
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings. However, the following description does not limit the technical scope of the present invention.
State management performed by a target in SBP-2 will be described below with reference to
The physical-layer controller 21 has the capabilities of initializing the bus 3, encoding/decoding data, performing arbitration, and providing/detecting a bias voltage. The link-layer controller 22 has the capabilities of sending and receiving packets and generating/detecting an error correcting code. The asynchronous transmission FIFO buffer 23 stores a packet to be transmitted and the asynchronous reception FIFO buffer 24 stores a received packet directed to the CPU 10. The control register module 25 is a group of registers used in various control operations performed by the CPU 10 in transmitting or receiving a packet, performing initial setting for issuing a command, storing an ORB, and reading a status.
The transmission filter 26 receives a packet transmission request from the packet processing circuit 28 or a packet transmission request from the CPU 10 and, if the transmission buffer 23 is empty, writes the requested packet into the transmission buffer 23. The transmission filter 26 has an arbitration function for giving priority to one of packet transmission requests provided from the packet processing circuit 28 and a packet transmission request from the CPU 10 at the same time. It also has the function of prohibiting a packet from being written into the transmission buffer 23 if it is not empty.
The reception filter 27 discriminates between a packet directed to the packet processing circuit 28 and a packet directed to the CPU 10. In particular, the reception filter 27 determines a packet as one directed to the packet processing circuit 28 based on information provided from the packet processing circuit 28 when a command is issued, that is, tcode and destination offset (packet destination address) for a request packet or tcode and tl for a response packet, and passes the received packet to the packet processing circuit 28. The reception filter 27 determines other received packets as ones directed to the CPU 10 and stores them in the reception buffer 24.
The packet processing circuit 28 generates packets and manages transactions related to a command issue sequence and the reception of a status. Details of its operation will be described later.
The sequence control circuit 29 controls a command issue sequence in cooperation with the command ORB transmission buffer 30 and management ORB transmission buffer 31. The sequence control circuit 29 receives from the CPU 10 or other blocks a request for accessing each of a MANAGEMENT_AGENT register and a CommandAgent register based on the address of each of the MANAGEMENT_AGENT register and CommandAgent register of the target 2 and the destination ID of the target 2 received from the CPU 10 through a control register module 25, generates a request packet, and provides it to the packet processing circuit 28. The sequence control circuit 29 also receives notification of the reception of a response packet responding to that request packet from the packet processing circuit 28 to manage the command issue sequence.
The command ORB transmission buffer 30 stores a command ORB provided by the CPU 10 through the control register module 25. In addition, the command ORB transmission buffer 30 has the function of automatically managing the addresses of command ORBs. In particular, when a command ORB is stored by the CPU 10, the command ORB transmission buffer 30 automatically decides the address of the command ORB and communicates the address to the sequence control circuit 29. The sequence control circuit 29 will use a BWRQ packet to write the address of the command ORB in the ORB_POINTER register of the target 2 when issuing the command ORB. The address of the command ORB is also communicated from the sequence control circuit 29 to the reception filter 27 through the packet processing circuit 28. If the destination_offset of the BWRQ packet received from the target 2 matches the address of the command ORB, the BWRQ packet is provided to the packet processing circuit 28 and the packet processing circuit 28 generates a BRRS packet containing an ORB read from the command ORB transmission buffer 30 and provides it to the transmission filter 26.
The command ORB transmission buffer 30 can store a plurality of ORBs. It has the capability of automatically performing ORB linking if an unissued command is in the command ORB transmission buffer 30 when a command ORB is provided from the CPU 10. As shown in the bottom section of
The management ORB transmission buffer 31 stores a management ORB provided by the CPU 10 through the control register module 25. In addition, the management ORB transmission buffer 31 has the capability of automatically managing addresses of management ORBs. In particular, when a management ORB is buffered by the CPU 10, the management ORB transmission buffer 31 automatically decides the address of the management ORB and communicates the address to the sequence control circuit 29. The sequence control circuit 29 will use a BWRQ packet to write the address of the ORB into the MANAGEMENT_AGENT register of the target 2 when issuing the management ORB. The address of the management ORB is also communicated from the sequence control circuit 29 to the reception filter 27 through the packet processing circuit 28. If the destination_offset of a BWRQ packet received from the target 2 matches the address of the management ORB, the BWRQ packet is provided to the packet processing circuit 28. The packet processing circuit 28 generates a BRRS packet containing an ORB read from the management ORB transmission buffer 31 and provides it to the transmission filter 26.
The status reception buffer for management 32 stores a status received for an issued management ORB and communicates it to the CPU 10. When the reception filter 27 receives from the target 2 a BWRQ packet having a destination_offset that matches the address in STATUS_FIFO provided from the CPU 10 to the reception register 27 through the control register module 25 before the issue of the management ORB, the reception filter 27 provides the BWRQ packet to the packet processing circuit 28. If the address of the management ORB communicated from the management ORB transmission buffer 31 matches the ORB_offset_hi/ORB_offset_lo (see
The status reception buffer for command 33 stores a status received for an issued command ORB and communicates it to the CPU 10. When the reception filter receives a BWRQ packet having a destination_offset that matches the address in STATUS_FIFO communicated from the CPU 10 to the reception filter 27 through the control register module 25 from the target 2 before the issue of the command ORB, the reception filter 27 provides the BWRQ packet to the packet processing circuit 28. If the address of the management ORB communicated from the management ORB transmission buffer 31 does not matches the ORB_offset_hi/ORB_offset_lo of the received status, the packet processing circuit 28 provides the status to the status reception buffer for command 33. The status reception buffer for command 33 can store a plurality of statuses. The status reception buffer for command 33 also has the function of submitting a request to the sequence control circuit 29 for access to the AGENT_RESET register of the target 2, if it detects that the status it received is an error (bit d set in the status shown in
Five exemplary operations of the command issuing apparatus 20 shown in
(First Exemplary Operation)
An operation of the command issuing apparatus 20 that is performed when a management ORB is issued will be describe with reference to
As described above, the command issuing apparatus 20 can eliminate load which would be placed on the CPU 10 until the CPU 10 receives the notification of the reception of the status and reads the status once the CPU 10 performs the initial setting, generates and registers a management ORB, and requests the issue of the management ORB.
(Second Exemplary Operation)
An operation of the command issuing apparatus 20 when issuing a command ORB will be described below with reference to
Thus, the command issuing apparatus 20 can eliminates the load which would be placed on the CPU 10 during the period until it receives the notification of the reception of the status and reads the status after it performs the initial setting, generates and stores a command ORB, and requests the issue of the command ORB. While operation for issuing the command ORB through access to the ORB_POINTER register has been described with respect to the exemplary operation, similar functions are performed in issuing a command ORB through access to the DOORBELL register while AGENT_STATE is SUSPEND.
(Third Exemplary Operation)
An operation of the command issuing apparatus 20 when issuing linked command ORBs will be described below with reference to
In this exemplary operation, the CPU 10 generates two command ORBs (ORB A, ORB B) to be issued and stores them in the command ORB transmission buffer 30 in sequence. The command ORB transmission buffer 30 decides the address of the ORB of command A (“*A” in
The process from phase “a” to phase “c” in
The target 2 determines that the next_ORB field in the ORB of command A is not Null but *B. Thus, the ORB of command B is obtained and the execution of it is started. Phases d and e in
As described above, the command issuing apparatus 20 allows the CPU 10 to buffer a plurality of command ORBs with leaving their next_ORB field Null rather than intentionally linking the ORBs when the CPU 10 issues the command ORBs, thereby reducing the load on the CPU 10.
(Fourth Exemplary Operation)
An operation of the command issuing apparatus 20 when an additional command ORB is issued during the execution of a linked command ORB will be described below with reference to
Phases a and b in
The description of phase c in
In this way, the command issuing apparatus 20 allows, when the CPU 10 issues an additional command ORB during the execution of a plurality of linked command ORBs issued, the CPU 10 to buffer all the command ORBs with leaving their next_ORB field Null rather than intentionally linking the ORBs, thereby reducing the load on the CPU 10.
(Fifth Exemplary Operation)
An operation of the command issuing apparatus 20 in a case where a command error occurs will be described below with reference to FIGS. 16 and 17A–17B. Transition to the DEAD state and a return to the RESET state will be described herein.
Phases a and b in
Phases c and d in
As described above, the command issuing apparatus 20 eliminates the need for the CPU 10 to perform the action of changing the target 2 to the RESET state even if the target 2 makes transition to the DEAD state because of an abnormal end of an issued command ORB, thereby reducing the load on the CPU 10. In addition, if an error occurs while linked command ORBs are being executed, the command issuing apparatus 20 can continue to issue stored command ORBs by accessing the ORB_POINTER register once it accesses the AGENT_RESET register, therefore the CPU 10 can continue issuing command ORBs.
Ishimura, Isamu, Tabira, Yoshihiro
Patent | Priority | Assignee | Title |
7664893, | Mar 22 2004 | VIA Technologies Inc. | Media drive control system and method |
Patent | Priority | Assignee | Title |
6185632, | Oct 19 1998 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | High speed communication protocol for IEEE-1394 including transmission of request and reply writes to a datagram-FIFO-address to exchange commands to end a job |
6205494, | Dec 18 1998 | Western Digital Corporation | Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers |
6452693, | Sep 09 1997 | Canon Kabushiki Kaisha | Communication control method and apparatus, and communication system |
6553440, | Dec 24 1998 | RPX Corporation | Data transfer equipment for connecting a SCSI interface to an IEEE 1394 interface |
6647016, | Dec 11 1998 | Canon Kabushiki Kaisha | Communication control method, communication control apparatus, and storage medium |
6654380, | Feb 04 1999 | Matsushita Electric Industrial Co., Ltd. | Data exchange unit |
6701386, | May 15 1998 | Canon Kabushiki Kaisha | Identifier based data communication |
20010042141, | |||
20020059487, | |||
20020067697, | |||
20030212850, | |||
EP1008941, | |||
EP1014650, | |||
JP2000250846, | |||
JP59020030, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 15 2002 | ISHIMURA, ISAMU | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012827 | /0857 | |
Apr 15 2002 | TABIRA, YOSHIHIRO | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012827 | /0857 | |
Apr 18 2002 | Matsushita Electric Industrial Co., Ltd. | (assignment on the face of the patent) | / | |||
Oct 01 2008 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Panasonic Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 031947 | /0358 | |
Dec 12 2013 | Panasonic Corporation | COLLABO INNOVATIONS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 033021 | /0806 | |
Dec 13 2013 | COLLABO INNOVATIONS, INC | Panasonic Corporation | LIEN SEE DOCUMENT FOR DETAILS | 031997 | /0445 |
Date | Maintenance Fee Events |
Sep 19 2007 | ASPN: Payor Number Assigned. |
Apr 14 2010 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 04 2014 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jun 04 2014 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Jun 04 2018 | REM: Maintenance Fee Reminder Mailed. |
Nov 26 2018 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 24 2009 | 4 years fee payment window open |
Apr 24 2010 | 6 months grace period start (w surcharge) |
Oct 24 2010 | patent expiry (for year 4) |
Oct 24 2012 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 24 2013 | 8 years fee payment window open |
Apr 24 2014 | 6 months grace period start (w surcharge) |
Oct 24 2014 | patent expiry (for year 8) |
Oct 24 2016 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 24 2017 | 12 years fee payment window open |
Apr 24 2018 | 6 months grace period start (w surcharge) |
Oct 24 2018 | patent expiry (for year 12) |
Oct 24 2020 | 2 years to revive unintentionally abandoned end. (for year 12) |