Skip to content

TileLink Introduction

Muhammad Hadir Khan edited this page Mar 18, 2020 · 4 revisions

TileLink is a chip-scale interconnect providing multiple masters with access to memory and other slave devices.

A TileLink network may support a mix communicating agents, each supporting different subsets of the protocol.

The TileLink specification includes three conformance levels for attached agents, which indicates which subset of the protocol they must support. These are:

  1. TileLink Uncached Lightweight (TL-UL)
  2. TileLink Uncached Heavyweight (TL-UH)
  3. TileLink Cached (TL-C)

Agent: An active participant in the protocol that sends and receives messages in order to complete operations.

Channel: A one-way communication connection between a master interface and a slave interface carrying messages.

Message: A set of control and data values sent over a particular channel

Link: The set of channels required to complete operations between two agents.

Basic TileLink network operation

This figure shows a TileLink network consisting of a single link between a master interface and a slave interface, with two channels. To perform operation on a memory, the master sends a request message on the request channel to the slave and awaits an acknowledgement message on the response channel.

Pairs of agents are connected by links. One end of each link connects to a master interface in one agent, and the other end connects to a slave interface in the other agent.

The agent with the master interface can request the agent with the slave interface to perform memory operations.

The five channels that comprise a TileLink link
Fig2.2: The five channels that comprise a TileLink link between any pairs of agents.

Within each network link, there are five independent channels over which messages can be sent by the agents.

Channels are directional, in that each passes messages either from the slave interface to the master interface or from the master interface to the slave interface.

The fig2.2 illustrates the directionality of the channels.

The two basic channels required to perform memory operations are:

Channel A: Transmits a request that an operation be performed on a specified address, accessing or writing the data.

Channel D: Transmits a data response or acknowledgement message to the original requestor.

For TileLink-UL we need only these two channels so we will not be discussing the other channels here.

For more information about other channels read the complete spec here: (https://sifive.cdn.prismic.io/sifive%2Fcab05224-2df1-4af8-adee-8d9cba3378cd_tilelink-spec-1.8.0.pdf)

Clone this wiki locally