summaryrefslogtreecommitdiffstats
path: root/content/zettel/1c6a2.md
blob: 18e31697697c93b734194cad79238ddbfd14f03f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
+++
title = "Resource usage differences"
author = "Yann Herklotz"
tags = []
categories = []
backlinks = ["1c6a1"]
forwardlinks = ["1b8", "1c5e"]
zettelid = "1c6a2"
+++

In terms of resources it seems like by default, even though the final
pipelines will be the same between software and hardware pipelining, the
resources of software pipelining will be significantly higher than
hardware pipelining. This is mainly due to the fact that many hacks are
needed to support the arbitrary pipelines. The first is duplication of
the loop body due to register allocation, and the second is generating
the epilogue and the prologue to start the pipeline.

However, these can both be eliminated by using predicated instructions
([\#1b8]) and rotating registers ([\#1c5e]). You could then just
implement the body directly using the rotating register files, and
control the execution of the loop by using the predicated instructions.

  [\#1b8]: /zettel/1b8
  [\#1c5e]: /zettel/1c5e