cdc 6600
play

CDC 6600 The Worlds First Supercomputer Control Data Corporation - PowerPoint PPT Presentation

CDC 6600 The Worlds First Supercomputer Control Data Corporation 1957 - Disgruntled employees of Sperry Rand found CDC 1958 - Seymour Cray joins 1959 - Seymour builds little character -- transistor-only machine 1960 -


  1. CDC 6600 The Worlds First Supercomputer

  2. Control Data Corporation • 1957 - Disgruntled employees of Sperry Rand found CDC • 1958 - Seymour Cray joins • 1959 - Seymour builds “little character” -- transistor-only machine • 1960 - Delivers first commercial xtr-based machine to the US Navy.

  3. Control Data Corporation • 1960 - Cray begins work on 50x faster machine, realized germanium is too slow. Switches to silicon xtrs from Fairchild. • 5 year plan: “to produce the largest machine in the world” • 1 year plan: “be one-fifth of the way” • 1962 - Cray demands his own lab and complete artistic freedom.

  4. Guiding Principles: Simplicity and Speed • Machines of the day had one CPU for everything • It was big and slow. • The ISA was complex -- it did everything.

  5. The Case for Simplicity • The CDC6600 is after parallel execution of instructions • Complex ISAs are hard to decode • This slows down every instruction. • Decode can be as complex as execution! • If the machine issues instructions in parallel, decode must be faster than

  6. The Case for Simplicity • Complex ISAs mean long instructions • Lower code density • Poor fetch bandwidth would also impede parallelism • Complex ISAs mean big, slow, expensive ALUs

  7. Implementing simplicity • Simplify the ISA • Eliminate I/O and other ops from ISA • Just loads, stores, math, logic, and control. • Use a load/store ISA with (mostly) GP registers • Relegate other operations to peripheral processors.

  8. Instruction Encoding

  9. Implementing Speed: Parallelism • 10Mhz clock (minor cycles) • Build 10 functional units • add, multiply (x2), divide, long add, shift, boolean, increment (x2), branch. • They are specialized, so they are small and cheap • Centralized scoreboard issues instructions as possible, up to 1 per minor cycle • No renaming -- dst names limit parallelism

  10. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  11. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  12. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  13. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  14. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  15. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  16. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 t5 I 4 f0 f8 f0, f8 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  17. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 t5 I 4 f0 f8 f0, f8 t6 f8 f0 f0, f8 I 3 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  18. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 t5 I 4 f0 f8 f0, f8 t6 f8 f0 f0, f8 I 3 t7 I 5 f10 f8 f8, f10 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  19. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 t5 I 4 f0 f8 f0, f8 t6 f8 f0 f0, f8 I 3 t7 I 5 f10 f8 f8, f10 t8 f8 f10 f8, f10 I 5 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  20. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 t5 I 4 f0 f8 f0, f8 t6 f8 f0 f0, f8 I 3 t7 I 5 f10 f8 f8, f10 t8 f8 f10 f8, f10 I 5 t9 f8 f8 I 4 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  21. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 t5 I 4 f0 f8 f0, f8 t6 f8 f0 f0, f8 I 3 t7 I 5 f10 f8 f8, f10 t8 f8 f10 f8, f10 I 5 t9 f8 f8 I 4 t10 I 6 f6 f6 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  22. Functional Unit Status Registers Reserved for Writes Int(1) Add(1) Mult(3) Div(4) WB t0 I 1 f6 f6 t1 I 2 f2 f6 f6, f2 t2 f6 f2 f6, f2 I 2 t3 I 3 f0 f6 f6, f0 t4 f0 f6 f6, f0 I 1 t5 I 4 f0 f8 f0, f8 t6 f8 f0 f0, f8 I 3 t7 I 5 f10 f8 f8, f10 t8 f8 f10 f8, f10 I 5 t9 f8 f8 I 4 t10 I 6 f6 f6 t11 f6 f6 I 6 I 1 DIVD f6, f6, f4 I 2 LD f2, 45(r3) I 3 MULTD f0, f2, f4 I 4 DIVD f8, f6, f2 I 5 SUBD f10, f0, f6 I 6 ADDD f6, f8, f2 Adapted from Arvind and Asanovic’s MIT Course 6.823

  23. Implementing Speed: Instruction Fetch • Keep 32 recently executed instructions around in a “stack” • Primitive I-Cache or trace cache. • Fetch from there inside tight loops. • This is a response in shift the balance point between CPU and memory. • CPU is now faster.

  24. CDC6600 CPU

  25. Memory System • Main memory • 32 banks for 4096, 60-bit words = 960KB • 5 memory busses (“trunks”) • Bound tightly to address registers • 41MB/s of bandwidth • Simple segment-based memory translation • Support for relocation

  26. The Peripheral Processor(s) • Effectively OS co-processors -- They handle IO • They do all the complex stuff that the CDC banished from the CPU • They can be slow

  27. Fine-grain threading • There are 10 virtual peripheral processors • There is only one physical peripheral processor • A “barrel and slot” system provides virtualization • The barrel holds 10 sets of registers • It rotates one step each minor cycle (10Mhz) • Each VPP advances 1 step each major cycle (1Mhz). • This is “vertical” multithreading.

  28. Specs • >400,000 transistors (compare to 8008) • 750 sq. ft. (my first house in SD was smaller) • 5 tons • 150 kW

  29. CDC 6600 card readers Wrong chair! Cooling Line printers It came with its own chair: “The standard chair that came with the machine had orange vinyl covering and wooden armrests”

  30. Memory module 6in? (the paper is unclear)

  31. Logic Module main connector Test ports Heat spreader freon

Recommend


More recommend