|
|  Get related patents on CD |
| United States Patent | 6594713 |
| Link to this page | http://www.wikipatents.com/6594713.html |
| Inventor(s) | Fuoco; Charles (Allen, TX);
Comisky; David A. (Plano, TX);
Agarwala; Sanjive (Richardson, TX);
Damodaran; Raguram (Plano, TX) |
| Abstract | An expanded direct memory access processor has ports which may be divided
into two sections. The first is an application specific design referred to
as the application unit, or application unit. Between the application unit
and the expanded direct memory access processor hub is a second module,
known as the hub interface unit hub interface unit which serves several
functions. It provides buffering for read and write data, it prioritizes
read and write commands from the source and destination pipelines such
that the port sees a single interface with both access types consolidated
and finally, it acts to decouple the port interface clock domain from the
core processor clock domain through synchronization. |
| |
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 6594713 |
|
|
Hub interface unit and application unit interfaces for expanded direct
memory access processor |
|
|
|
|
|
| Publication Date |
July 15, 2003 |
|
|
|
|
|
| Filing Date |
August 11, 2000 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims priority under 35 USC .sctn.119(e)(1) of
Provisional Application No. 60/153,192, filed Sep. 10, 1999.
This application is related to the following patent applications:
U.K. Patent Application No. 09/543,870, filed Apr. 16, 1999, entitled
TRANSFER CONTROLLER WITH HUB AND PORTS ARCHITECTURE;
U.S. patent application ser. No. 09/713,609, filed contemporaneously with
this application, entitled EXPANDED (Attorney Docket No. TI-28977); and
U.S. patent application Ser. No. 09/638,512, filed contemporaneously with
this application, entitled CONFIGURATION BUS RECONFIGURABLE/REPROGRAMMABLE
INTERFACE FOR EXPANDED DIRECT MEMORY ACCESS PROCESSOR. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
|
|
|
|
|
|
Public's "Guesstimation" of Royalty Value
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. A data transfer controller comprising:
a data transfer hub connected to dispatch data transfer requests specifying
a data source, a data destination and a data quantity to be transferred;
a plurality of ports each connected to said data transfer hub and including
an hub interface unit connected to said data transfer hub, said hub
interface unit for each port being identically configured, and
an application unit interface connected to said corresponding hub interface
unit and configured for an external memory/device expected to be connected
to said port, said hub interface unit and said application unit interface
operatively connected for data transfer therebetween by a predetermined
set of interface signal lines identical for all ports; and
said data transfer hub controlling data transfer from a source port
corresponding to said data source to a destination port corresponding to
said data destination in a quantity corresponding to said data quantity to
be transferred of a currently executing data transfer request.
2. The data transfer controller of claim 1, wherein:
said data transfer hub is clocked at first frequency;
said application unit interface of each of said plurality of ports is
clocked at second frequency corresponding to the external memory/device
expected to be connected to said port; and
said hub interface unit of each of said plurality ports includes
a first clock domain clocked at said first frequency,
a second clock domain clocked at said second frequency of said
corresponding application unit interface, and
a synchronizer connected to said first clock domain and said second clock
domain operative to synchronize signals passing between said first clock
domain and said second clock domain.
3. The data transfer controller of claim 2, wherein:
said hub interface unit further includes a write request queue disposed in
said first clock domain, said write request queue storing write requests
directed to the external memory/device expected to be connected to said
port, said write request queue transmitting write requests to the external
memory/device expected to be connected to said port via said application
unit interface following acknowledgement of receipt of a last previous
command.
4. The data transfer controller of claim 2, wherein:
said hub interface unit further includes a read request queue disposed in
said first clock domain, said read request queue storing read requests
directed to the external memory/device expected to be connected to said
port, said read request queue transmitting read requests to the external
memory/device expected to be connected to said port via said application
unit interface following acknowledgement of receipt of a last previous
command.
5. The data transfer controller of claim 1, wherein:
said predetermined set of interface signal lines includes
a command valid signal line driven by said hub interface unit indicating
that a valid command is being transmitted,
at least one command signal line driven by said bus interface unit
indicating at least one command,
a command acknowledge signal line driven by said application unit interface
indicating receipt of a command on said at least one command signal line.
6. The data transfer controller of claim 5, wherein:
said at least one command signal line includes a read command signal line
indicating a read request for reading data from the external memory/device
expected to be connected to said corresponding application unit interface.
7. The data transfer controller of claim 5, wherein:
said at least one command signal line includes a write command signal line
indicating a write request for writing data to the external memory/device
expected to be connected to said corresponding application unit interface.
8. The data transfer controller of claim 1, wherein:
said predetermined set of interface signal line s includes
at least one application unit data size line driven by said application
unit interface.indicating the maximum size of data words accepted by the
external memory/device expected to be connected to said port; and
wherein said data transfer hub transmits data to and from said
corresponding port in data words having a length not greater than said
indication of said at least one application unit data size line.
9. The data transfer controller of claim 8, wherein:
said predetermined set of interface signal lines further includes
a plurality of data lines divided into a plurality of data line groups,
at least one data strobe signal line equal in number to a number of data
line groups of said plurality of data lines, each data strobe indicating
whether a corresponding data line group is employed in a current data
transfer.
10. The data transfer controller of claim 9, wherein:
said plurality of data lines includes a plurality of read data lines driven
by said application unit interface upon transfer of data from the external
memory/device expected to be connected to said corresponding application
unit interface; and
said at least one data strobe signal line includes a plurality of read
strobe lines driven by said hub interface unit.
11. The data transfer controller of claim 10, wherein:
said plurality of read data lines consists of 32 data lines divided into
four groups of 8 data lines each; and
said plurality of read strobe lines consists of four read data strobe
lines.
12. The data transfer controller of claim 9, wherein:
said plurality of data lines includes a plurality of write data lines
driven by said hub interface unit upon transfer of data to the external
memory/device expected to be connected to said corresponding application
unit interface; and
said at least one data strobe signal line includes a plurality of write
strobe lines driven by said hub interface unit.
13. The data transfer controller of claim 12, wherein:
said plurality of write data lines consists of 32 data lines divided into
four groups of 8 data lines each; and
said plurality of write strobe lines consists of four read data strobe
lines.
14. A data processing system comprising:
a plurality of data processors, each data processor capable of generating a
data transfer request specifying a data source, a data destination and a
data quantity to be transferred;
a data transfer hub connected to said plurality of data processors to
dispatch data transfer requests;
a plurality of ports each connected to said data transfer hub and including
an hub interface unit connected to said data transfer hub, said hub
interface unlit for each port being identically configured, and
an application unit interface connected to said corresponding hub interface
unit and configured for an external memory/device expected to be connected
to said port, said hub interface unit and said application unit interface
operatively connected; for data transfer therebetween by a predetermined
set of interface signal lines identical for all ports; and
said data transfer hub controlling data transfer from a source port
corresponding to said data source to a destination port corresponding to
said data destination in a quantity corresponding to said data quantity to
be transferred of a currently executing data transfer request.
15. The data processing system of claim 14, wherein:
each of said data processors and said data transfer hub are clocked at
first frequency;
said application unit interface of each of said plurality of ports is
clocked at second frequency corresponding to the external memory/device
expected to be connected to said port; and
said hub interface unit of each of said plurality ports includes
a first clock domain clocked at said first frequency,
a second clock domain clocked at said second frequency of said
corresponding application unit interface, and
a synchronizer connected to said first clock domain and said second clock
domain operative to synchronize signals passing between said first clock
domain and said second clock domain.
16. The data processing system of claim 15, wherein:
said hub interface unit further includes a write request queue disposed in
said first clock domain, said write request queue storing write requests
directed to the external memory/device expected to be connected to said
port, said write request queue transmitting write requests to the external
memory/device expected to be connected to said port via said application
unit interface following acknowledgement of receipt of a last previous
command.
17. The data processing system of claim 15, wherein:
said hub interface unit further includes a read request queue disposed in
said first clock domain, said read request queue storing read requests
directed to the external memory/device expected to be connected to said
port, said read request queue transmitting read requests to the external
memory/device expected to be connected, to said port via said application
unit interface following acknowledgement of receipt of a last previous
command.
18. The data processing system of claim 14, wherein:
said predetermined set of interface signal lines includes
a command valid signal line driven by said hub interface unit indicating
that a valid command is being transmitted,
at least one command signal line driven by said bus interface unit
indicating at least one command,
a command acknowledge signal line driven by said application unit interface
indicating receipt of a command on said at least one command signal line.
19. The data processing system of claim 18, wherein:
said at least one command signal line includes a read command signal line
indicating a read request for reading data from the external memory/device
expected to be connected to said corresponding application unit interface.
20. The data processing system of claim 18, wherein:
said at least one command signal line includes a write command signal line
indicating a write request for writing data to the external memory/device
expected to be connected to said corresponding application unit interface.
21. The data processing system of claim 14, wherein:
said predetermined set of interface signal lines includes
at least one application unit-data size line driven by said application
unit interface indicating the maximum size of data words accepted by the
external memory/device expected to be connected to said port; and
wherein said data transfer hub transmits data to and from said
corresponding port in data words having a length not greater than said
indication of said at least one application unit data size line.
22. The data processing system of claim 21, wherein:
said predetermined set of interface signal lines further includes
a plurality of data lines divided into a plurality of data line groups,
at least one data strobe signal line equal in number to a number of data
line groups of said plurality of data lines, each data strobe indicating
whether a corresponding data line group is employed in a current data
transfer.
23. The data processing system of claim 22, wherein:
said plurality of data lines includes a plurality of read data lines driven
by said application unit interface upon transfer of data from the external
memory/device expected to be connected to said corresponding application
unit interface; and
said at least one data strobe signal line includes a plurality of read
strobe lines driven by said hub interface unit.
24. The data processing system of claim 23, wherein:
said plurality of read data lines consists of 32 data lines divided into
four groups of 8 data lines each; and
said plurality of read strobe lines consists of four read data strobe
lines.
25. The data processing system of claim 22, wherein:
said plurality of data lines includes a plurality of write data lines
driven by said hub interface unit upon transfer of data to the external
memory/device expected to be connected to said corresponding application
unit interface; and
said at least one data strobe signal line includes a plurality of write
strobe lines driven by said hub interface unit.
26. The data processing system of claim 25, wherein:
said plurality of write data lines consists of 32 data lines divided into
four groups of 8 data lines each; and
said plurality of write strobe lines consists of four read data strobe
lines.
27. The data processing system of claim 14 wherein:
said plurality of data processors, said data transfer hub and each of said
plurality of ports are disposed on a single integrated circuit. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
TECHNICAL FIELD OF THE INVENTION
The technical field of this invention is digital device functional blocks,
used in microprocessors and more specifically used in digital signal
processors.
BACKGROUND OF THE INVENTION
The expanded direct memory access processor is the subject of U.S. patent
application Ser. No. 09/713,609 filed contemporaneously with this
application, entitled EXPANDED DIRECT MEMORY ACCESS PROCESSOR WITH HUB AND
PORTS ARCHITECTURE. The expanded direct memory access processor provides a
significant basic improvement in data transfer techniques in complex
digital systems and allows, along with many other features, for uniform
implementation of port interfaces at the periphery of such systems. The
expanded direct memory access processor is an interconnection network
which performs the task of communication throughout the processor system
and its peripherals in a centralized function. Within the expanded direct
memory access processor, a system comprised of a main hub and ports tied
together by multiple pipelines is the medium for all data communications
among processors and peripherals.
While the main hub controls the data transfers between the ports,
processors or peripherals, the ports themselves control the actual device
access. There are two types of ports, internal and external.
Internal-ports connect to the local memory elements of processors located
on the same chip as the expanded direct memory access processor. These
internal ports communicate to the processor and/or on-chip memory.
External ports connect to all the remaining peripherals through the
external ports interface.
The external ports interface preferably used in a digital signal processor
employing an expanded direct memory access processor is partitioned into
two sections. These are the hub interface unit and the application unit.
The interface between the hub interface unit and the application unit is
the subject of this invention.
SUMMARY OF THE INVENTION
This invention relates to the operations and interconnections which are
required for communication between the hub interface unit (HIU) and the
application unit (AU) of the external ports of an expanded direct memory
access processor. The hub interface unit handles this task, performing
data buffering and frequency synchronization. This provides for the
creation of very simple external peripherals, which do not require
extensive buffers and buffer management. This also provides for these
external peripherals to run at their own natural frequency, without need
for their own synchronization to the internal interface.
The hub interface unit performs this synchronization by using the core
clock frequency for the majority of its logic. The application unit clock
frequency is used for the remaining application unit interface logic. The
application unit performs all the peripheral access commands requested by
the expanded direct memory access processor on behalf of the processors.
The application unit receives commands from the hub interface unit and
performs the required data read/write to the peripheral. This may require
physically passing requests through I/O pins to an external device. The
application unit may run at a single frequency since the hub interface
unit handles synchronizing the commands and data to the expanded direct
memory access processor frequency. Because the hub interface unit provides
buffering, the application unit need not contain large buffers. This
allows the application unit to simply retrieve requested data and deliver
it to the hub interface unit immediately.
One aspect of this invention is the interface between the hub interface
unit and application unit. The application units are designed to provide
configurable peripherals to be connected to the expanded direct memory
access processor without alteration to the extended direct memory access
processor design. Any hub interface unit and any application unit
communicate with each other in the same manner with the same interface of
hardware and signal connections. In addition, configuration signals are
passed from the application unit to the expanded direct memory access
processor to define the configuration to which the expanded direct memory
access processor must conform. This allows a single expanded direct memory
access processor design to be re-used in a multitude of products which
have separate and different peripheral sets.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other aspects of this invention are illustrated in the drawings,
in which:
FIG. 1 illustrates a block diagram of the basic principal features of an
expanded direct memory access processor with hub and ports architecture
(EDMA) processor;
FIG. 2 illustrates a high-level block diagram of the hub interface unit
(HIU);
FIG. 3 illustrates a high level block diagram of the data path of a host
port interface (HPI);
FIG. 4 illustrates a high level block diagram of the data path of an
external memory interface (EMIF);
FIG. 5 illustrates a high level diagram of the signal flow between the hub
interface unit, application unit and expanded direct memory access
processor;
FIG. 6 illustrates the signal timing for an hub interface unit read command
cycle;
FIG. 7 illustrates the signal timing for an hub interface unit write
command cycle;
FIG. 8 illustrates the signal timing for an hub interface unit pipelined
read command cycle;
FIG. 9 illustrates the signal timing for an hub interface unit pipelined
write command cycle;
FIG. 10 illustrates a single integrated circuit including multiple
processors and the transfer controller of this invention;
FIG. 11 illustrates a block diagram form an example of one of the multiple
processors illustrated in FIG. 10;
FIG. 12 illustrates further details of the very long instruction word
digital signal processor core illustrated in FIG. 11;
FIG. 13 illustrates further details of another very long instruction word
digital signal processor core suitable for use in FIG. 11; and
FIG. 14 illustrates additional details of the digital signal processor of
FIG. 13.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
FIG. 1 illustrates a block diagram of the basic principal features of the
expanded direct memory access processor. The extended direct memory access
processor is basically a data transfer controller which has at its front
end portion, a request queue controller 100 receiving, prioritizing, and
dispatching data in the form of transfer request packets 101. The request
queue controller 100 connects within the hub unit 110 to the channel
registers 120 which receive the data transfer request packets and process
them first by prioritizing them and assigning them to one of the N
channels each of which represent a priority level. These channel registers
interface with the source pipeline 130 and destination pipeline 140. These
pipelines are address calculation units for source (read) and destination
(write) operations.
Outputs from these pipelines are broadcast to M Ports 111. FIG. 1
illustrates six ports 150 to 155. Ports 150 to 155 are clocked either at
the main processor clock frequency or at a lower (or higher) external
device clock frequency. Read data from one port, for example port 150,
having a destination write address of port 153 is returned to the hub
destination control pipeline through the data router unit 160.
The ports 150 to 155 are divided into two sections. The application
specific design (for example host port interface HPI or external memory
interface EMIF) is referred to as the application unit (AU). A hub
interface unit (HIU) connects the application unit and other parts of the
expanded direct memory access processor.
The hub interface unit serves several functions. The hub interface unit
provides buffering for read and write data to support the write driven
processing. The hub interface unit prioritizes read and write commands
from the source pipeline 130 and the destination pipeline 140 of the
expanded direct memory access processor. The port sees a single interface
with both access types consolidated. The hub interface unit decouples the
external port interface clock domain from the core processor clock domain.
FIG. 2 illustrates a high-level block diagram one of the ports 150 to 155
including a hub interface unit separated into clock domain A 208 and clock
domain B 209. Clock domain A 208 operates at the rate of core processor
clock 214 (Domain A). Clock domain B 209 operates at the rate of
application unit clock 221 (Domain B). FIG. 2 also shows configuration
signals 201 which originate from a configuration control bus which
supplies configuration control data to all configurable devices including
the application unit 230. Configuration operations are done prior to the
actual application usage of the device. Configuration control hardware is
normally dormant during normal application usage. The core functional
blocks of the hub interface unit include in clock domain A: hub interface
unit control logic block 204; hub interface unit read queue 205; hub
interface unit write request queue 206; and include in clock domain B: hub
interface unit control block 214; hub interface unit output multiplexers
207; and hub interface unit response queue 203. These core functional
blocks of the hub interface unit pass data, commands, and status signals
(e.g. valid, ack) between the hub on the expanded direct memory access
processor side and the application unit on the port side.
Commands, address, and data information are sent from the hub to the read
queue and write request queue of the hub interface unit. The hub interface
unit control logic block 204 and hub interface control logic block 214
process this set of information and generate command, valid, and
acknowledge signals which are sent to the application unit along with data
in normal operation and configuration data during configuration cycles. In
read operations the application unit 230 passes its read data, valid, and
acknowledge signals to the hub interface unit.
The application unit interface is a custom designed functional block which
has considerable variation in its construction between units designed for
different external peripheral interfaces. This means that the control
logic of an application unit may vary widely but the control signals and
the interface provided by the hub interface unit is compatible with a wide
variety of custom application unit requirements. The application unit data
path structures also vary from one kind of peripheral interface to
another.
FIGS. 3 and 4 show the data path portion of two specific peripheral
interface examples. FIG. 3 illustrates a first application unit for a host
port interface (HPI) 330. FIG. 4 illustrates a second application unit for
an external memory interface (EMIF) 331. In these figures corresponding
signals have been given identical reference numbers while the signal names
may differ.
FIG. 3 illustrates application unit 330 for a host port interface. The host
port interface is an application unit which typically interfaces the hub
interface unit to an external microcontroller function. The full
complement of control signals provided for by the hub interface unit/host
port interface combination is shown. These are: hpi_clock 302;
hiu_cmd_valid 303; hpi_cmd_ack 304; hui_cmd_rd 305; hui_cmd_wr 306;
hui_cmd_size 307; hui_cmd_addr 308; hui_cmd_rs 309; and hui_cmd_ws 310.
The use of these signals will be described below in conjunction with a
description of a generic application unit illustrated in FIG. 5. The host
port interface type of application unit requires FIFO's 332 and 334 in its
data path. Write data hiu_wr_data 313 flows to the host port interface via
the write FIFO 332 during writes. Application unit 330 produces a write
acknowledge signal hpi_wr_data_ack 314 indicating receipt of write data at
the host port interface. Read data hpi_rd_data 312 flows from the host
port interface via read FIFO 334 during reads. Application unit 330
produces a read data valid signal hpi_rd_data_valid 311 indicating receipt
of valid data from the host port interface.
FIG. 4 illustrates application unit 331 for an external memory interface
331. The external memory interface is a type of application unit which
typically provides support for several types of external memory and a wide
variety of memory organizations. The full complement of control signals
provided for by the hub interface unit/host port interface combination
are: emif_clock 302; hiu_cmd_valid 303; emif_cmd_ack 304; hui_cmd_rd 305;
hui_cmd_wr 306; hui_cmd_size 307; hui_cmd_addr 308; hui_cmd_rs 309; and
hui_cmd_ws 310. The use of these signals will also be described below in
conjunction with a description of a generic application unit illustrated
in FIG. 5. The external memory interface type of application unit requires
buffers 333 and 335 in its data path. Write data hiu_wr_data 313 flows to
the external memory interface via the write buffers 335 during writes.
Application unit 331 produces a write acknowledge signal emif_wr_data_ack
314 indicating receipt of write data at the external memory interface.
Read data emif_rd_data 312 flows from the external memory interface via
read buffers 334 during reads. Application unit 331 produces a read data
valid signal emif_rd_data_valid 311 indicating receipt of valid data from
the external memory interface. Write buffers 335 and read buffers 333
provide for a range of requirements on data path transfers on different
memory types and structures.
FIG. 5 illustrates a generic interface including expanded direct memory
access processor 410, hub interface unit 422 and application unit 423.
FIG. 5 illustrates a full set of signals which interface the extended
direct memory access processor 421, hub interface unit 422 and application
unit 423. In all types of external peripheral interfaces the application
unit 423 must drive two specific configuration control signals to the
expanded direct memory access processor 421 so that the extended direct
memory access processor 421 knows what range of commands that peripheral
can natively support.
The first of these is the signal au_bsize[7:0] 400. This is an 8-bit
integer which determines the maximum number of data words (1 word=32 bits)
the peripheral can successively transfer for a single expanded direct
memory access processor command. This signal au_bsize 400 is the maximum
data transfer size for the application unit 423 and peripheral. This
signal au_bsize 400 may indicate a range from 1 to 255 words. Expanded
direct memory access processor 421 uses this configuration signal to limit
all of its commands to that application unit 423 to at most au_bsize 400
words. If the expanded direct memory access processor 421 requires a
transfer larger than the au_bsize 400 allows, then it must break up the
transfer into smaller transfers. Each of these smaller transfers is no
larger than au_bsize 400 words.
The signal au_bsize 400, in addition to limiting the command size of
commands from expanded direct memory access processor 421 to application
unit 423, it also defines the natural transfer size for that application
unit 423. This natural burst size can vary greatly, depending on the type
of device/peripheral to which the application unit is connected. Serial
ports that transfer one bit at a time would naturally use only one word at
a time, while large latency memories would require bursts up to 32 words
at a time while the memory row is accessed. The natural burst size allows
the expanded direct memory access processor 421 to utilize the peripheral
at its full rate, and not break up transfers into smaller numbers of
words, which would underutilize application unit 423.
An additional signal au_bmask[7:0] 401 is a simple mask used inside the
expanded direct memory access processor to assist in evaluating the
maximum burst size (au_bsize 400) and in limiting command sizes. This
8-bit signal au_bmask 401 is derived from the signal au_bsize 400. The
value of au_bmask 401 is simply one less than the value of au_bsize 400.
The hub interface unit/application unit interface always runs at the
frequency defined by the application unit. The application unit 423 drives
a clock signal au_clock 402 to the hub interface unit 422 to use as a
reference clock for the entire interface. All other signals change with
respect to the rising edge of the au_clock 402. All of the interface
between application unit 423 and hub interface unit 422 must use this
clock. If there are any other clocks, such as expanded direct memory
access processor hub core clock 424 used in the hub interface unit or
separate peripheral clocks used in application unit 423, then
synchronization must be carried out in the respective block to convert the
signals to the frequency of au_clock 402. This au_clock 402 allows any
application unit 423 to be connected to hub interface unit 422, since hub
interface unit 422 makes no assumption about the application unit
frequency by using just the au_clock 402 signal.
Interface Commands
Hub interface unit 422 requests access to application unit 423 through
commands based on commands received from expanded direct memory access
processor 421. The sequence is as follows:
(1) A new command is sent to application unit 423 together with the
hiu_cmd_valid signal 403. When hiu_cmd_valid signal 403 is high, a new
command is ready for application unit 423 on the next occurrence of
au_clock 402.
(2) Hub interface unit 422 will keep the command on the interface until the
cycle after application unit 423 acknowledges receipt via a high on
au_cmd_ack signal 404. When application unit 423 has evaluated the current
command and no longer needs hub interface unit 422 to hold it, it asserts
au_cmd_ack signal 404 high. Hub interface unit 422 will switch to the next
command the next cycle of au_clock 402.
(3) The next cycle after receipt of the acknowledge signal au_cmd_ack 404,
hub interface unit 422 can send a next command and keep hiu_cmd_valid 403
high, or drop hiu_cmd_valid 403 low if there are no more commands ready
for application unit 423.
This sequence allows the application unit to accept commands quickly if the
application unit is idle, or stall the hub interface unit by not returning
au_cmd_ack 404 if the application unit is busy.
There are two types of commands hub interface unit 422 can request of
application unit 423: a read command; or a write command. If hub interface
unit 422 requires a read.from application unit 423, then it sets
hiu_cmd_rd 405 high and hiu_cmd_wr 406 low while the command is on the
interface. If hub interface unit 422 requires a write from application
unit 423, then it sets hiu_cmd_wr 406 high and hiu_cmd_rd 405 low while
the command is on the interface.
Each command from hub interface unit 422 can be for any number of words up
to the limit set by au_bsize 400. This limit is enforced by expanded
direct memory access processor 421. Another control signal
hiu_cmd_size[7:0] 407 determines how many words the command involves. This
can be from one word up to the limit set by au_bsize 400. Application unit
423 is then expects to either read the number of words indicated by
hiu_cmd_size 407 or to write the number of words indicated by hiu_cmd_size
407 in succession.
In addition, there are the four-bit byte strobe signals hiu_cmd_rs[3:0] 409
and hiu_cmd_ws[3:0] 410. Hub interface unit 422 must drive these signals
to application unit 423 to declare which bytes are involved in the
command. If the command is for one byte, then hub interface unit 422
drives one bit of the four-bit byte strobes signals active (high). This
bit is the bit which corresponds to the requested byte. For reads, hub
interface unit 422 drives the hiu_cmd_rs 409 and for writes hub interface
unit 422 drives the hiu_cmd_ws 410 with the byte strobe value. If the
request is for a halfword (2 bytes), then hub interface unit 422 drives
the corresponding byte strobe signal with either the upper 2 bits or lower
2 bits high. When hub interface unit 422 is requesting a full word or
multiple words, then it drives all the corresponding byte strobe signal
bits all active (high) indicating that all bytes are being requested.
Interface Data
FIG. 6 illustrates the signal timing for an hub interface unit read command
cycle. Hub interface unit 422 signals the presence of a new command by
driving the signal hiu_cmd_valid 403 active (high) at time cycle T1.
Application unit 423 must first accept the command by asserting the signal
au_cmd_ack 404 active (high). This is illustrated in FIG. 6 at time cycle
T2. Once application unit 423 accepts the command from hub interface unit
422, it must return the requested read data back to hub interface unit
422. This is done by asserting the signal au_rd_data_valid 411 active
(high) when the read data is ready. This is illustrated in FIG. 6 at time
cycle T4. Also during time cycle T4, application unit 423 places the read
data on the 32 bits of signal au_rd_data 412. Hub interface unit 422 will
already be waiting for the read data, and will accept the read data in the
same time cycle T4 that au_rd_data_valid 411 goes active (high).
If application unit 423 can transmit successive read data to hub interface
unit 422 for a read burst, then it may leave a_rd_data_valid 411 high for
the successive cycles (such as time cycle T5 illustrated in FIG. 6).
Application unit 423 will change au_rd_data 412 each cycle to the current
read word within the burst. After the number of requested data words
(equal to hiu_cmd_size 407) has been returned to hub interface unit 422,
application unit 423 is finished with that read command. Application unit
423 may use au_rd_data 412 for the next read command if that command is
ready.
FIG. 7 illustrates the signal timing for an hub interface unit write
command cycle. Hub interface unit 422 signals the presence of a new
command by driving the signal hiu_cmd_valid 403 active (high) in time
cycle T1. Application unit 423 must first accept the command by asserting
the signal au_cmd_ack 404 active (high). This is illustrated in FIG. 7 in
time cycle T2. For hub interface unit 422 write commands, hub interface
unit 422 places the first word of write data on the bus hiu_wr_data 413
during time cycle T2. This is the cycle after the write command is placed
on the interface. This delay cycle allows hub interface unit 422 to
retrieve the first data for that specific write when the write command
finally proceeds to application unit 423.
Application unit 423 will not assume any write data is available the first
cycle of a new write command from the hub interface unit as well. Once
write data is placed on the hiu_wr_data[31:0] 413 bus by the hub interface
unit, the application unit can accept the write data by asse | | |