From 3275493a6fc600bb27c3d2c32551d28eded8c6cf Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Fri, 8 May 2020 17:40:15 +0100 Subject: [PATCH] add notes on Function Units --- 3d_gpu/architecture/6600scoreboard.mdwn | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/3d_gpu/architecture/6600scoreboard.mdwn b/3d_gpu/architecture/6600scoreboard.mdwn index 35a2f58f2..7a940ec51 100644 --- a/3d_gpu/architecture/6600scoreboard.mdwn +++ b/3d_gpu/architecture/6600scoreboard.mdwn @@ -98,10 +98,12 @@ 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. +Thus, the inputs for a given FU absolutely have to cover all resources +that the ALU will need. In the case of POWER9, for the Integer Function +Units this is not just the Integer operands, it's the *Condition* operands +(CR0, XER carry bits etc.) that need to be inputs (and outputs) as well. +In the case of the Branch Function Unit, the input operands (and outputs) +will likewise be not just the Integer operands, but CTR, LR etc. as well. In the arrangement below (from the CDC 6600), it can be observed that there are actually separate Register Files (A, B and X). Also observe @@ -109,6 +111,12 @@ that whilst X goes to *all* Function Units as input, B only goes to Branch, Increment and LongAdd, where A goes to Branch and the two Increment Function Units. Thus, A was 3R3W, B was 4R3W, and X was 5R4W. +An augmentation of this arrangement, for a modern processor using pipelines, +is, rather than have separate FSMs and doubled-up (or greater) Function Units +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 -- 2.30.2