[Cryptech-Commits] [core/platform/novena] 12/21: Comments noting the strange history of the addressing scheme.

git at cryptech.is git at cryptech.is
Tue Sep 29 05:24:36 UTC 2015


This is an automated email from the git hooks/post-receive script.

sra at hactrn.net pushed a commit to branch config_core_selector_sra
in repository core/platform/novena.

commit cf8167215459811f8047f7c6d4f5972d924f6689
Author: Rob Austein <sra at hactrn.net>
Date:   Sun Sep 27 13:17:55 2015 -0400

    Comments noting the strange history of the addressing scheme.
---
 config/config.py | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/config/config.py b/config/config.py
index 970b339..4648f9d 100755
--- a/config/config.py
+++ b/config/config.py
@@ -3,6 +3,44 @@
 Generate core_selector.v for a set of cores.
 """
 
+# History of cryptech bus addressing scheme, as best I understand it.
+#
+# The old old addressing scheme that Joachim and Paul came up with
+# was:
+#
+#  3 bits of segment  selector [16:14]
+#  6 bits of core     selector [13:8]
+#  8 bits of register selector [7:0]
+#
+# modexp6s needed more register bits than that, so Pavel changed
+# addressing within the math segment to:
+#
+#  3 bits of segment  selector [16:14]
+#  4 bits of core     selector [13:10]
+# 10 bits of register selector [9:0]
+#
+# Meanwhile, Paul eliminated segments entirely when writing the
+# ancestor of this script, resulting in:
+#
+#  9 bits of core     selector [16:8]
+#  8 bits of register selector [7:0]
+#
+# Taking Pavel's and Paul's changes together, we want:
+#
+#  7 bits of core     selector [16:10]
+# 10 bits of register selector [9:0]
+#
+# Open issue: what effect does all this have on the sub-core muxing
+# within trng cores?  trng core plus its (currently) four sub-cores
+# still takes up more than one new core slot even if trng uses the old
+# scheme internally.  How many slots should we allocate, and what
+# addressing scheme is the trng core expecting to see?
+
+# Unrelated: Timing delays.  Paul added extra registers to slow cores
+# other than modexps6 down by one clock cycle, to compensate for the
+# one cycle delay that seems to be built into the block memories that
+# modexps6 uses.  Templates will need to reflect that somehow.
+
 def main():
     """
     Parse arguments and config file, generate core list, generate output.



More information about the Commits mailing list