# Cray-1 functional units

The Cray-1 has 12 segments arranged in a 270 degree arc. It also has 12 functional units, so is there one functional unit per segment?

There were 1,662 modules in 113 varieties, but what is a module? Was a functional unit composed of an order of around 100 modules?

Further, how does the functional completeness of NAND correspond to modules?

Additionally, where is the memory contained? Did each segment have one twelfth of total memory?

Here are the functional units:

scalar shift unit
scalar logical unit
vector shift unit
vector logical unit
floating-point multiply unit
reciprocal approximation unit

• how does the functional completeness of NAND correspond to modules? I don't know what this question means, but Wikipedia says the Cray-1 was built with ECL NOR gates. Mar 16 '20 at 22:20

is there one functional unit per segment?

You can find the chassis ("segment") layout on page 2-3 of the Cray 1 Hardware Reference.

As you can see, the middle sections contain the functional units, and the left and right sections contain storage.

but what is a module?

Module types are listed in Appendix B of the above reference manual. With names like "address adder", "program branch control", "floating add coefficient add (front half)" you can get some idea of the complexity of the functions that are implemented by a module.

how does the functional completeness of NAND correspond to modules?

I have no idea what you mean by this question. Edit:

If you are talking about the design choice to use mostly one type of logic circuit to implement everything: The reference manual says on page 2-5

With minor exceptions, one type of logic gate is used for the central processing unit. This is an ECL circuit with either four or five inputs and with both normal and inverted outputs available to drive loads. One four-input gate and one five-input gate are packaged in a 16-pin flat pack. All latches, adders, subtracters, etc., are made of this basic gate.

Wikipedia indicates that these are NOR (or rather, NOR+OR) gates.

So "the completeness of NAND" doesn't "correspond" to modules at all.

The fact that you can implement all logic either with NAND or NOR allows the design choice to use a single component in the majority of places, leveraging benefits of scale (easier to produce, easier to swap out). But this still has no connection to "modules"; you can build up everything out of such components, no matter if it's subdivided in "modules" or not.

where is the memory contained?

See above.

• I think the "functional completeness of NAND" is a reference to the theoretical ability to build all other kinds of logic out of NAND gates. It's obvious from your description of modules that they perform much more intricate logic than simple NANDs, and the OP is confused about the relationship between gate-level logic and the practical construction of a complex computer. Mar 16 '20 at 22:15
• FWIW, the only gate IC used was a NOR component, which is also functionally complete. Mar 16 '20 at 22:24
• @dirkt great reference. The quote on page 2-5, does seem to imply either NAND or NOR could be exclusively used, with the reasons for this as you note. What did the Cray-1 use, page 2-2 says 5/4 NAND gates? Mar 17 '20 at 8:55
• @JohnDallman correct. In particular the relationship from gate-level logic to what Cray calls modules. All of the functional units required more than one module. The size of the modules was probably due to other factors such as cooling and interconnection, rather than logic calculations. Mar 17 '20 at 8:58
• To elaborate on what @dirkt said, NAND using positive logic (0=F, 1=T) is functionally equivalent to NOR using negative logic (0=T, 1=F). This means that any logical function that can be implemented with NAND gates can also be implemented with NOR gates with the truth value/electrical values swapped. In some cases one may even see a mix of positive and negative logic within a single circuit (if it is convenient to do so). Mar 20 '20 at 17:18