500 views
6 votes
6 votes
Suppose the functions $A$ and $B$ can be computed in $6$ and $4$ nanoseconds by functional units $U_A$ and $U_B$, respectively. Given two instances of $U_A$ and three instances of $U_B$, it is required to implement the computation $A(B(X_i))$ for $1\leq i \leq 100$. Ignoring all other delays, the minimum time required to complete this computation (in nanoseconds) is _______

1 Answer

Best answer
10 votes
10 votes
$U_A$ is a greater value than $U_B$ so the pipeline will be bottle-necked by $U_A$
    
Since, we have two instances of $U_A$ and at least two instances of $U_B$ (third instance is not required here) they can operate in parallel and $100$ computations can be done in $50$ iterations.
    
For $50$ iterations $U_A$ will take = $50 \times 6 = 300$ ns
    
But as we can see in $A(B(X_i))$ for $U_A$ to start, it has to initially wait for output from $U_B$ which comes after $4$ ns. After this execution proceeds in a pipelined fashion. Therefore, minimum execution time $= 300 + 4 = 304$ ns
selected by
Answer:

Related questions