博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

AMBA FAQs and NOTEs

Posted on 2009-02-03 20:56  Sigma  阅读(634)  评论(0编辑  收藏  举报

General: Is HREADY an input or an output from slaves?

Applies to: AHB

An AHB slave must have the HREADY signal as both an input and an output.

HREADY is required as an output from a slave so that the slave can extend the data phase of a transfer.

HREADY is also required as an input so that the slave can determine when the previously selected slave has completed its final transfer and the first data phase transfer for this slave is about to commence.

Each AHB Slave should have an HREADY output signal (conventionally named HREADYOUT) which is connected to the Slave-to-Master Multiplexer. The output of this multiplexer is the global HREADY signal which is routed to all masters on the AHB and is also fed back to all slaves as the HREADY input.

FROM: http://infocenter.arm.com/help/topic/com.arm.doc.faqs/482.html

How does the AHB handle LOCKed SPLITs?

Applies to: AHB

When a transfer is SPLIT the arbiter degrants and removes the SPLIT master out of the arbitration until the slave indicates that the transfer can complete. When an access is LOCKed the access cannot be interrupted by an access from another master.

The only possible way that an AHB system can handle these two requirements simultaneously is to grant a "dummy master" when the LOCKed access is SPLIT. The dummy master will only perform IDLE transactions, which are allowable during a locked transfer. To grant any other master would violate the LOCK protocol, for the arbiter to ignore the SPLIT would violate the SPLIT protocol - the dummy master is the only option.

The dummy master is also used when all masters are have received a SPLIT response (the dummy master cannot receive a SPLIT response).

It is recommended that the designer of the split-capable slave(s) makes sure that the slave monitors its HMASTLOCK input so that it doesn't return a SPLIT on a LOCKed transfer, as this serves no purpose.

 FROM: http://infocenter.arm.com/help/topic/com.arm.doc.faqs/14307.html

Split/Retry: Can a slave assert HSPLITx in the same cycle that it gives a SPLIT response?

Applies to: AHB

No. The specification requires that HSPLITx can only be asserted after the slave has given a SPLIT response.

FROM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/616.html

Split/Retry: Can a SPLIT or RETRY response be given at any point during a burst?

Applies to: AHB

Yes. A SPLIT, RETRY or ERROR response can be given by a slave to any transfer during a burst. The slave is not restricted to only giving these responses to the first transfer.

FROM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/616.html

When should a master assert and deassert the HLOCK signal for a locked transfer?

Applies to: AHB

The HLOCK signal must be asserted at least one cycle before the start of the address phase of a locked transfer. This is required so that the arbiter can sample the HLOCK signal as high at the start of the address phase.

The master should deassert the HLOCK signal when the address phase of the last transfer in the locked sequence has started.

FROM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/588.html

Arbitration: What is the relationship between the HLOCK signal and the HMASTLOCK signal?

Applies to: AHB

At the start of the address phase of every transfer the arbiter will sample the HLOCK signal of the master that is about to start driving the address bus and if HLOCK is asserted at this point then HMASTLOCK will be asserted by the arbiter for the duration of the address phase of the transfer.

FROM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/583.html

When will the arbiter grant another master after a locked transfer?

Applies to: AHB

The arbiter will always grant the master an extra transfer at the end of a locked sequence, so the master is guaranteed to perform one transfer with the HMASTLOCK signal low at the end of the locked sequence. This coincides with the data phase of the last transfer in the locked sequence.

During this time the arbiter can change the HGRANT signals to a new bus master, but if the data phase of the last locked transfer receives either a SPLIT or RETRY response then the arbiter will drive the HGRANT signals to ensure that either the master performing the locked sequence remains granted on the bus for a RETRY response, or the Dummy master is granted the bus for the SPLIT response.

FROM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/594.html

Arbitration: Can a master deassert HLOCK during a burst?

Applies to: AHB

The AHB specification requires that all address phase timed control signals (other than HADDR and HTRANS) remain constant for the duration of a burst.

Although HLOCK is not an address phase timed signal, it does directly control the HMASTLOCK signal which is address phase timed.

Therefore HLOCK must remain high for the duration of a burst, and can only be deasserted such that the following HMASTLOCK signal changes after the final address phase of the burst.

 FROM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/597.html

Split/Retry: What is the difference between SPLIT and RETRY responses?

Applies to: AHB

Both the Split and Retry responses are used by slaves which require a large number of cycles to complete a transfer. These responses allow a data phase transfer to appear completed to avoid stalling the bus, but at the same time indicate that the transfer should be re-attempted when the master is next granted the bus.

The difference between them is that a SPLIT response tells the Arbiter to give priority to all other masters until the SPLIT transfer can be completed (effectively ignoring all further requests from this master until the SPLIT slave indicates it can complete the SPLIT transfer), whereas the RETRY response only tells the Arbiter to give priority to higher priority masters.

A SPLIT response is more complicated to implement than a RETRY, but has the advantage that it allows the maximum efficiency to be made of the bus bandwidth.

The master behaviour is identical to both SPLIT and RETRY responses, the master has to cancel the next access and re-attempt the current failed access.

FROM: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/603.html