IP Library › Granted Patent US 8,825,933
Granted Patent B2
US 8,825,933 · App. 13/307,007 · Granted Sep 2, 2014

Bus apparatus with default speculative transactions and non-speculative extension

Inventor: Chi-Chang Lai (Hsinchu County, TW)
Assignee: Andes Technology Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,825,933
App. No.
13/307,007
Granted
Sep 2, 2014
Kind
B2
Abstract

A bus apparatus is provided, which includes a bus master and a bus slave coupled to the bus master through a bus interface. When the bus master sends a bus transaction to the bus slave, the bus slave executes the bus transaction. The bus transaction is speculative by default. The command of the bus transaction indicates whether the bus transaction is a write transaction or a read transaction. When the bus transaction is a write transaction, the bus slave stores the write data of the bus transaction at the address of the bus transaction. When the bus transaction is a read transaction, the bus slave responds the bus transaction with a read data stored at the address of the bus transaction. The bus slave informs the bus master that the bus slave will not recognize further bus transactions in a specific period of time by asserting a bus wait signal.

Claims (66)

1. A bus apparatus, comprising:

a bus master; and

a bus slave coupled to the bus master through a bus interface, wherein

when the bus master sends a bus transaction to the bus slave, the bus slave executes the bus transaction, wherein the bus transaction is speculative by default and a command of the bus transaction indicates whether the bus transaction is a write transaction or a read transaction;

when the bus transaction is the write transaction, the bus slave stores a write data of the bus transaction at an address of the bus transaction;

when the bus transaction is the read transaction, the bus slave responds the bus transaction with a read data stored at the address of the bus transaction;

the bus slave informs the bus master that the bus slave will not recognize further bus transactions in a specific period of time by asserting a bus wait signal.

2. The bus apparatus of claim 1 , wherein the specific period of time begins at a next clock cycle after the bus slave asserts the bus wait signal and ends at a clock cycle in which the bus slave de-asserts the bus wait signal.

3. The bus apparatus of claim 1 , wherein

the bus master and the bus slave receive a static command/address wait state signal, a static write data wait state signal, and a static read data wait state signal;

none of the static command/address wait state signal, the static write data wait state signal, and the static read data wait state signal changes during the bus transaction;

the static command/address wait state signal determines a length of time the bus master holds the command and the address of the bus transaction unchanged for the bus slave to receive the command and the address;

the static write data wait state signal determines a length of time the bus master holds the write data of the bus transaction unchanged for the bus slave to receive the write data;

the static read data wait state signal determines a length of time the bus slave takes to respond the read transaction with the read data;

the static command/address wait state signal, the static write data wait state signal, and the static read data wait state signal are three separate signals or are unified into a single static wait state signal.

4. The bus apparatus of claim 1 , wherein

when the bus slave asserts the bus wait signal in a length of time the bus master holds the command and the address of the bus transaction unchanged for the bus slave to receive the command and the address, the length of time the bus master holds the command and the address of the bus transaction unchanged is extended according to a time when the bus slave de-asserts the bus wait signal;

when the bus slave asserts the bus wait signal in a length of time the bus master holds the write data of the bus transaction unchanged for the bus slave to receive the write data, the length of time the bus master holds the write data of the bus transaction unchanged is extended according to a time when the bus slave de-asserts the bus wait signal;

when the bus slave asserts the bus wait signal in a length of time the bus slave takes to respond the read transaction with the read data, the length of time the bus slave takes to respond the read transaction with the read data is extended according to a time when the bus slave de-asserts the bus wait signal.

5. The bus apparatus of claim 1 , wherein

the bus master and the bus slave receive a non-speculative space signal;

the bus master and the bus slave determine whether the bus transaction is speculative or non-speculative according to the non-speculative space signal and the address of the bus transaction;

when the bus transaction is non-speculative, the bus slave suspends the execution of the bus transaction until notified by the bus master to commit or abort the bus transaction.

6. The bus apparatus of claim 1 , wherein

the bus master and the bus slave receive a non-speculative space signal;

the bus master and the bus slave determine whether the bus transaction is speculative or non-speculative according to the non-speculative space signal and the address of the bus transaction;

when the bus transaction is non-speculative, the bus master suspends sending the bus transaction to the slave until an internal operation of the bus master which induces the bus transaction is to be committed.

7. The bus apparatus of claim 3 , wherein

the static command/address wait state signal extends the length of time the bus master holds the command and the address of the bus transaction unchanged by a number of cycles of a bus clock signal equal to a value of the static command/address wait state signal;

the static write data wait state signal extends the length of time the bus master holds the write data of the bus transaction unchanged by a number of cycles of the bus clock signal equal to a value of the static write data wait state signal;

the static read data wait state signal extends the length of time the bus slave takes to respond the read transaction with the read data by a number of cycles of the bus clock signal equal to a value of the static read data wait state signal.

8. The bus apparatus of claim 4 , wherein

the length of time the bus master holds the command and the address of the bus transaction unchanged, the length of time the bus master holds the write data of the bus transaction unchanged, and the length of time the bus slave takes to respond the read transaction with the read data are extended until a cycle of the bus clock signal in which the bus slave de-asserts the bus wait signal.

9. The bus apparatus of claim 5 , wherein

when the bus transaction is non-speculative, the bus master notifies the bus slave to commit the bus transaction by asserting a non-speculative request signal;

when the bus transaction is non-speculative, the bus master notifies the bus slave to abort the bus transaction by sending another bus transaction to the bus slave without notifying the bus slave to commit the bus transaction.

10. The bus apparatus of claim 7 , wherein

the bus slave further transmits at least one of a dynamic command/address wait state signal, a dynamic write data wait state signal, and a dynamic read data wait state signal through the bus interface to the bus master;

when the bus slave asserts the dynamic command/address wait state signal in the length of time the bus master holds the command and the address of the bus transaction unchanged, the length of time the bus master holds the command and the address of the bus transaction unchanged is further extended according to a time when the bus slave de-asserts the dynamic command/address wait state signal;

when the bus slave asserts the dynamic write data wait state signal in the length of time the bus master holds the write data of the bus transaction unchanged, the length of time the bus master holds the write data of the bus transaction unchanged is further extended according to a time when the bus slave de-asserts the dynamic write data wait state signal;

when the bus slave asserts the dynamic read data wait state signal in the length of time the bus slave takes to respond the read transaction with the read data, the length of time the bus slave takes to respond the read transaction with the read data is further extended according to a time when the bus slave de-asserts the dynamic read data wait state signal.

11. The bus apparatus of claim 9 , wherein when the bus slave determines that the bus transaction is non-speculative initially and then finds out that the bus transaction is speculative, the bus slave commits the bus transaction and notifies the bus master that the bus transaction is committed.

12. The bus apparatus of claim 10 , wherein

the length of time the bus master holds the command and the address of the bus transaction unchanged is further extended until a cycle of the bus clock signal in which the bus slave de-asserts the dynamic command/address wait state signal;

the length of time the bus master holds the write data of the bus transaction unchanged is further extended until a cycle of the bus clock signal in which the bus slave de-asserts the dynamic write data wait state signal;

the length of time the bus slave takes to respond the read transaction with the read data is further extended until a cycle of the bus clock signal in which the bus slave de-asserts the dynamic read data wait state signal.

13. A bus apparatus, comprising:

an arbiter;

a first bus master coupled to the arbiter through a first bus interface;

a second bus master coupled to the arbiter through a second bus interface; and

a bus slave coupled to the arbiter through a third bus interface, wherein

for each bus master of the first and the second bus masters, when the bus master issues a bus transaction, the arbiter forwards the bus transaction to the bus slave and the bus slave executes the bus transaction, wherein the bus transaction is speculative by default and a command of the bus transaction indicates whether the bus transaction is a write transaction or a read transaction;

when the bus transaction is the write transaction, the bus slave stores a write data of the bus transaction at an address of the bus transaction;

when the bus transaction is the read transaction, the bus slave responds the bus transaction with a read data stored at the address of the bus transaction and the arbiter forwards the read data to the bus master;

the arbiter transmits a static wait state signal to the bus master, wherein the static wait state signal determines a length of time the bus master holds the command and the address of the bus transaction unchanged for the bus slave to receive the command and the address;

when the bus transaction is the write transaction, the bus master also holds the write data of the bus transaction unchanged for the bus slave to receive the write data according to the length of time;

the length of time determined by the static wait state signal of the second bus master is longer than the length of time determined by the static wait state signal of the first bus master by default;

the arbiter forwards the bus transaction of the first bus master to the bus slave immediately without delay, while the arbiter forwards the bus transaction of the second bus master to the bus slave with a predetermined delay.

14. The bus apparatus of claim 13 , wherein

the arbiter informs the bus master that the arbiter will not recognize further bus transactions in a specific period of time by asserting a bus wait signal;

when the second bus master issues the bus transaction, the arbiter asserts the bus wait signal of the first bus master.

15. The bus apparatus of claim 13 , wherein

for each bus master of the first and the second bus masters, the arbiter further transmits a bus wait signal to the bus master;

when the arbiter asserts the bus wait signal in the length of time determined by the static wait state signal, the length of time is extended according to a time when the arbiter de-asserts the bus wait signal;

when the first bus master issues the bus transaction in the length of time determined by the static wait state signal of the second bus master, the arbiter asserts the bus wait signal of the second bus master.

16. The bus apparatus of claim 15 , wherein the arbiter asserts the bus wait signals of the first and the second bus masters and then adjust the static wait state signals of the first and the second bus masters to adjust the lengths of time determined by the static wait state signals of the first and the second bus masters.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2011
From: LAI, CHI-CHANG
To: ANDES TECHNOLOGY CORPORATION
Reel/Frame 027319/0446 →
Continuity (1)
Related Publication 20130138847A1 · May 30, 2013