add notes on example Function Unit allocation
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 8 May 2020 16:24:18 +0000 (17:24 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 8 May 2020 16:24:18 +0000 (17:24 +0100)
3d_gpu/architecture/6600scoreboard.mdwn

index 2b77777b7283b234355f73bd609710506c224fff..48cab33d43f8d330c676cd7d808c6889c217c390 100644 (file)
@@ -82,6 +82,27 @@ ultimately then, there is:
   *row* that knows, on a per-operand-number basis, what the actual register
   file number is.
 
+# Example allocation of Function Units
+
+This is the key diagram showing the relationship between Function Units
+and the Register File(s).
+
+The Dependency Matrices manage the DAG of read-write relationships:
+each Function Unit indicates which registers it requires for read
+and which it needs permission to write to.
+
+NOTE: **AT NO TIME** is **any** Function Unit permitted "direct" access to
+global resources by way of any form of "unmanaged" path.  Each Function
+Unit may **only** receive incoming data and may **only** pass that data
+out via the set determined path, as controlled by the Dependency Matrices.
+
+An augmentation of this arrangement, for a modern processor using pipelines,
+is to "double up" (or triple, or quadruple etc.) the number of Function
+Units, but to *share the same pipeline*.  See "Concurrent Computation Unit"
+section below for details.
+
+[[!img multiple_function_units.png size="600x"]]
+
 # Modifications needed to Computation Unit and Group Picker
 
 The scoreboard uses two big NOR gates respectively to determine when there
@@ -158,9 +179,6 @@ ways:
   anywhere in the pipeline from progressing further, thus saving power.
 
 
-[[!img multiple_function_units.png size="600x"]]
-
-
 # Multi-in cascading Priority Picker
 
 Using the Group Picker as a fundamental unit, a cascading chain is created,