summaryrefslogtreecommitdiffstats
path: root/content/zettel/1c6a2.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/zettel/1c6a2.md')
-rw-r--r--content/zettel/1c6a2.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/content/zettel/1c6a2.md b/content/zettel/1c6a2.md
new file mode 100644
index 0000000..18e3169
--- /dev/null
+++ b/content/zettel/1c6a2.md
@@ -0,0 +1,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