Hardware Reference
In-Depth Information
cycle
r
v
D
0
1
2
3
4
5
6
1
1
A
1
1
B
1
1
C
1
1
D
0
1
E
1
1
E
1
1
F
Write
Side
EB #0
*
A
*
C
C
*
E
EB #1
*
*
B
*
D
D
*
r
v
D
1
0
*
1
1
A
1
1
B
0
1
C
1
1
C
1
1
D
1
1
E
Read
Side
Fig. 2.7 Data transfer between two flow-control channels connected via a 2-slot elastic buffer that
consists of a parallel set of HBEBs
are pushed in the buffer they are written in the position indexed by the 1-bit tail
pointer; on the same cycle the tail pointer is inverted pointing to the next available
buffer. Equivalently, when new data are popped from the buffer, the selected HBEB
is indexed by the 1-bit head pointer. During the dequeue the head pointer is inverted.
The 2-slot EB has valid data when at least one of the HBEB holds valid data and it
is ready when at least one of the two HBEBs is ready. The incoming valid and ready
signals are transferred via de-multiplexers to the appropriate HBEB depending on
the position shown by the head and tail pointers.
In overall the 2-slot EB offers 100 % throughput of operation, fully isolates
the timing paths between the input and output handshake signals and constitutes
a primitive form of buffering for NoCs. A running example of the 2-slot EB
connecting two channels is shown in Fig. 2.7 .
2.1.3
Alternative Full-Throughput Elastic Buffers
Full throughput operation does not need necessarily 2-slot EBs and can be achieved
even with 1-slot buffers that introduce a throughput-timing scalability tradeoff. The
1-slot EBs presented in this section can be designed by extending the functionality
of the HBEB in order to enable higher read/write concurrency.
The first approach increases the concurrency on the write port (push) of the
HBEB. New data can be written when the buffer is empty (as in the HBEB) or if it
becomes empty in the same cycle (enqueue on full if dequeue in the same cycle).
Adding this additional condition in the write side of the HBEB results in a new
implementation shown in Fig. 2.8 and called pipelined EB (PEB) according to the
terminology used in Arvind ( 2013 ). The PEB is ready to load new data even when
at Full state, given that a pop (ready_in) is requested in the same cycle, thus offering
100 % of data-transfer throughput.
The second approach, called a bypass EB (BEB), offers more concurrency on the
read port. In this case, a pop from the EB can occur even if the EB does not have
 
Search WWH ::




Custom Search