Coprocessor Interface
ARM DDI 0301H
Copyright © 2004-2009 ARM Limited. All rights reserved.
11-18
ID012310
Non-Confidential, Unrestricted Access
The following signals control the transfer of store data across the coprocessor interface:
CPASTDATAV
This signal is asserted when valid data is available from the coprocessor.
CPASTDATAT[3:0]
This is the tag associated with the data being passed to the core.
CPASTDATA[63:0]
This is the information passed from the coprocessor to the core.
ACPSTSTOP
This signal from the core prevents additional transfers from the coprocessor to the
core, and is raised when the store queue, maintained by the core, can no longer
accept any more data. When the signal is deasserted, data transfers can resume.
When
ACPSTSTOP
is asserted, the data previously placed onto
CPASTDATA
must be left there, until new data can be transferred. This enables the core to leave
data on
CPASTDATA
until there is sufficient space in the store data queue.
Store data queue
Because the store data transfer can be stopped at any time by the LSU, a store data queue is
required. Additionally, because store data vectors can be of arbitrary length, flow control is
required. A queue length of three slots is sufficient to enable flow control to be used without loss
of data.
Stores and flushes
When a store instruction is involved in a flush, the store data queue must be flushed by the core.
Because the queue continues to fill for two cycles after the core notifies the coprocessor of the
flush, because of the signal propagation delay, the core must delay for two cycles before
carrying out the store data queue flush. The dead period after the flush extends sufficiently far
to enable this to be done.
Stores and cancels
If the core cancels a store instruction, the coprocessor must ensure that it sends no store data for
that instruction. It can achieve this by either:
•
delaying the start of the store data until the corresponding cancel token has been received
in the Ex1 stage
•
looking ahead into the cancel queue and start the store data transfer when the correct token
is seen.
Stores and retirement
Because store instructions do not use the finish token queue they are retired as soon as they leave
the Ex1 stage of the pipeline.