#[1]Tim's Blog » Feed [2]Tim's Blog » Comments Feed [3]Tim's Blog » What made the 1960s CDC6600 supercomputer fast? Comments Feed [4]A LED-Candle based on the 3 cent MCU [5]alternate [6]alternate [7]Tim's Blog [8]WordPress.com [9]Skip to content [10]Tim's Blog What made the 1960s CDC6600 supercomputer fast? Anybody who has ever taken an advanced computer architecture class has heard of the[11] CDC6600, which was the world’s fastest computer from 1964 to 1969. It was the machine that put [12]Seymour Cray on the map as a supercomputer architect. The design of the machine is well documented in [13]a book by James Thornton, the lead designer, and is therefore publically accessible. Among several architectural concepts that later found use in RISC, the CDC6600 is known for introducing the [14]Scoreboard. Which is, along with [15]Tomasulo’s algorithm, one of the earliest concepts for out-of-order processing. Besides the architectural progress, the CDC6600 was impressive for its clock speed of 10 MHz. This may not sound much, but consider that this was a physically very large machine entirely built from discrete resistors and transistors in the early 60ies. Not a single integrated circuit was involved. For comparison, the PDP-8, released in 1965 and also based on discrete logic, had a clock speed of 1.5 MHz. The first IBM PC, released 20 years later, was clocked at less than half the speed of the CDC6600 despite being based on integrated circuits. The high clockrate is even more impressive when comparing it to more recent (hobbyist) attempts to design CPUs with discrete components such as the [16]MT15, the [17]Megaprocessor or the [18]Monster6502. Although these are comparatively small designs based on modern components, none of them get to even a tenth of the CDC6600 clock speed. How did they do it? The logic circuitry of the CDC6600 is based on resistor-transistor-logic (RTL). The Thornton book calls it DCTL (Directly Coupled Transistor Logic), but due to the presence of the base resistor it is obviosuly the same as RTL. Thornton himself refers to RTL in a[19] later publication. The image above shows the basic logic element of the CDC6600, an inverter The outputs of two or or more inverters can be connected to form a wired AND, as shown on the left. Two inversions plus and AND implement a NOR2 function in positive boolean logic. Thornton uses an unusual notation for logic circuits as shown above on the right. Each arrow corresponds to an inverter (base resistor plus transistor), each square or circle correspond to a collector resistor. The circles and squares indicate whether the current node is to be interpreted in positive (circle) or inverted (square) logic. The circuit is exactly the same for both. This “mental gyration” takes a while to get used to, but help to consider the issue that every connection is inverting. Every module in the CDC6600 is constructed from a multitude of basic inverters with a single transitor each. This does also include latches and registers which are fully static. There are no stacked transistors, no floating nodes, no diode logic, no dynamic latches or other specialties. As an example, one slice of the boolean units from the book is shown above. This approach is quite genius in its simplicity and should be the base of every clean architecture: Optimize one basic thing very well, replicate it, and use it as a hierarchical building block. This is in stark contrast to other contemporay designs like the [20]PDP8, which tried to use [21]every circuit trick there is to reduce the number of (expensive) transistors. So, why is it fast? The table above lists the operating point of one inverter. Voltage levels are adjusted by picking the right values for base and collector resistors. The switching level is probably around 0.6V, so the hi and low levels are adjusted for symmetry around this point. Besides from this, there is really nothing special in the circuit. However, the switching time is still 5 ns, compared to 50 ns of the MT-15. Clearly, as the book states: [the logic] “…is heavily dependent on the transistor characteristics for its operation”. The transistor is key While there is not too much specific information about the CDC6600 transistors in Thorntons book, there is an [22]interesting article about the development of a special silicon transistor for the CDC6600 in 1961 on the computer history museum website. The transistor in question is the 2N709 and was developed by [23]Jean Hoerni at [24]Fairchild. Fairchild was the company that put “Silicon” into “Silicon Valley” and was a fairly recent startup in 1961. Jean Hoernis claim to fame is the invention of the[25] planar process, which is was the key enabler for integrated circuits. The key to the high speed transistor he developed was to introduce a tiny amount of gold doping into the base area of the transistor (See [26]patent and also [27]patent notebook). Gold is usually a highly undesirable contaminant in semiconductors because it leads to rapid minority carrier recombination. In this case, this is done on purpose is to avoid build up of charge in the transistor while it is in saturation. This so called saturation charge is what makes turning off bipolar transistors slow, because the charge needs to diffuse out of the base, which is a slow process. There are numerous circuit tricks to reduce buildup of saturation charge, the most famous being the [28]baker clamp. However, by using a transistor that does intrinsically not build up a high saturation charge, all of these complexities can be omitted at an even better performance. Curiously there do not seem to be many fast bipolar switching transistors around anymore. The 2N709 is, of course, long out of production. Some old reference tables list the AF66, BSX19, BSY18 and the 2N2369 as replacements. All of these are out of production as well, however the 2N2369 lives on as an SMD version in form of the [29]PMBT2369 (Nexperia) or [30]MMBT2369 (Onsemi). Nexperia seems to be the only company that lists switching times for bipolar transistors in their product selector. Their [31]product selector lists one additional fast switching transistor, the BSV52. However, the characteristics are very similar to the PMBT2369. Putting things to practice Can the CDC6600 logic style be replicated with modern components? It’s best to start a new design with a simulation. You can find the design of an RTL inverter based around the PMBT2369 above. It uses Nexperias transistor model. I tested the propagation delay of the inverter by simulating a [32]ring oscillator consisting of five inverters in LTSpice. As you can see, a propagation delay of 6.1 ns was observed despite a relatively moderate collector current setting of 2mA, a fifth of that used in the CDC6600. I built up the same circuit on a PCB to test the ring oscillators in real world conditions. I tested a total number of three different transistor types: The BC847C, the MMBTH10-4 and the PMBT2369. The BC847C was used as a reference. Using the lower gain A or B versions would have increased switching speed by reducing the miller effect, however the improvement would most likely not have changed the outcome. The MMBTH10-4 is a common high-frequency transistor with ft=800 MHz and a low collector capacitance. At a first glance it looks like it should beat the PMBT2369 in switching speed, but keep in mind that “high-frequency” only refers to small signal excitation around an operating point. To optimize for this, it is necessary to reduce capacitances and base transit time, not saturation charge. Finally, the PMBT2369 is a device optimized for high switching speeds which employs techniques to eliminate buildup of saturation charge. (I don’t know if it also uses gold diffusion or a more modern approach based on ion implantation.) The 2N709 used in the CDC6600 has slightly lower collector capacitance than the PMBT2369 and may be even faster. It is debatable whether the higher parasitics of the ancient 2N709 TO-can package compared to a modern SMD package would have compensated some of this benefit. The diagrams above show the variation of oscillator frequency with supply voltage and the gate propagation delay calculated from the frequency. The high frequency transistor is the fastest device at the lowest end of operating voltages. This is probably owed to low terminal capacitances. Increasing the supply increases oscillator frequency for all devices. However, the MMBTH10 and BC847C exhibit a maximum at around 2 V. For higher supply voltages, the frequency starts to decrease again. This is most likely owed to an increase of base current and hence increase of saturation charge, which makes turning the transistor off slow. The PMTB2369 based ring oscillator shows a continuous increase in frequency, suggesting that the saturation charge does not dominate switching frequencies. The measured frequency at 5V is 17.7 MHz, which is surprisingly close to the simulated 16.5 MHz from the spice simulation. Kudos to Nexperia for providing proper large signal spice models! Summary What do we learn from this? Choosing the right transistor is key to building 60ies style high speed discrete RTL circuits. Forget all the “clever” tricks like baker clamp, feedthrough capacitor or bleeding resistor. They just add to component count without addressing the root cause. Unfortunately, true bipolar high-speed switching transistors seem to be a dying breed, with the MMBT/PMBT2369 being (almost) the last of its kind. Let me know if you find similar devices. I also started looking into “digital” or “pre-biased” switching transistors, but it seems they are not close to the PMBT2369. It is also possible that more modern high-frequency transistors also show a better switching time than MMBTH10 due to thinner base region. Share this: * [33]Twitter * [34]Facebook * Like this: Like Loading... Related Author [35]cpldcpuPosted on [36]February 14, 2020February 15, 2020Categories [37]Discrete LogicTags [38]CDC6600, [39]Discrete Logic, [40]PMBT2369, [41]RTL One thought on “What made the 1960s CDC6600 supercomputer fast?” 1. Dana says: [42]February 15, 2020 at 10:48 am Great article. I used the cyber 205, cdc 6600 and cdc 6700, vps32, then went on to the cray 1, 2, xmp, and ymp. But it was the 6600 that cemented the success of scientific computing. In addition to the circuit innovations, the OS and documentation was 2nd to none. Went I left, we were approaching exascale, but it was crays fma and later vector processing combined with parallel computing that inspired carried compute forward. [43]Reply Leave a Reply [44]Cancel reply Enter your comment here... ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ Fill in your details below or click an icon to log in: * * * IFRAME: [45]googleplus-sign-in * * [46]Gravatar Email (required) (Address never made public) ____________________ Name (required) ____________________ Website ____________________ WordPress.com Logo You are commenting using your WordPress.com account. ( [47]Log Out / [48]Change ) Google photo You are commenting using your Google account. ( [49]Log Out / [50]Change ) Twitter picture You are commenting using your Twitter account. ( [51]Log Out / [52]Change ) Facebook photo You are commenting using your Facebook account. ( [53]Log Out / [54]Change ) [55]Cancel Connecting to %s [ ] Notify me of new comments via email. [ ] Notify me of new posts via email. Post Comment Post navigation [56]Previous Previous post: A LED-Candle based on the 3 cent MCU Top Posts & Pages * [57]What made the 1960s CDC6600 supercomputer fast? * [58]The "terrible" 3 cent MCU - a short survey of sub $0.10 microcontrollers. * [59]Light_WS2812 library V2.0 - Part I: Understanding the WS2812 * [60]The SK6812 - another intelligent RGB LED * [61]APA102 aka "Superled" Categories * [62]ARM (1) * [63]AVR (7) * [64]candle (1) * [65]Discrete Logic (1) * [66]Hack (7) * [67]Hardware (13) * [68]Intelligent LED (1) * [69]LED (15) * [70]Micronucleus (2) * [71]Multiplexing (2) * [72]Padauk (2) * [73]PFS154 (2) * [74]PMS150C (1) * [75]Reverse engineering (7) * [76]Uncategorized (9) * [77]USB (3) Pages * [78]About Search for: ____________________ (BUTTON) Search [79]Tim's Blog [80]Blog at WordPress.com. ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ ____________________________________________________________ Post to [81]Cancel Reblog Post IFRAME: [82]likes-master %d bloggers like this: References Visible links 1. https://cpldcpu.wordpress.com/feed/ 2. https://cpldcpu.wordpress.com/comments/feed/ 3. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/feed/ 4. https://cpldcpu.wordpress.com/2019/09/28/a-led-candle-based-on-the-3-cent-mcu/ 5. https://public-api.wordpress.com/oembed/?format=json&url=https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/&for=wpcom-auto-discovery 6. https://public-api.wordpress.com/oembed/?format=xml&url=https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/&for=wpcom-auto-discovery 7. https://cpldcpu.wordpress.com/osd.xml 8. https://s1.wp.com/opensearch.xml 9. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/#content 10. https://cpldcpu.wordpress.com/ 11. https://en.wikipedia.org/wiki/CDC_6600 12. https://en.wikipedia.org/wiki/Seymour_Cray 13. https://archive.computerhistory.org/resources/text/CDC/cdc.6600.thornton.design_of_a_computer_the_control_data_6600.1970.102630394.pdf 14. https://en.wikipedia.org/wiki/Scoreboarding 15. https://en.wikipedia.org/wiki/Tomasulo_algorithm 16. http://www.6502.org/users/dieter/mt15/mt15.htm 17. http://www.megaprocessor.com/ 18. https://monster6502.com/ 19. https://ieeexplore.ieee.org/document/4639400 20. http://pdp8online.org/ 21. https://hackaday.io/project/8449-hackaday-ttlers/log/130460-bizarre-dtl-logic-levels-the-discrete-component-pdp-8 22. https://www.computerhistory.org/siliconengine/silicon-transistor-exceeds-germanium-speed/ 23. https://en.wikipedia.org/wiki/Jean_Hoerni 24. https://en.wikipedia.org/wiki/Fairchild_Semiconductor 25. https://en.wikipedia.org/wiki/Planar_process 26. https://patents.google.com/patent/US3184347 27. https://archive.computerhistory.org/resources/access/text/2013/03/102722910-05-01-acc.pdf 28. https://en.wikipedia.org/wiki/Baker_clamp 29. https://www.nexperia.com/products/automotive-qualified-products-aec-q100-q101/automotive-bipolar-transistors/general-purpose-bipolar-transistors/switching-transistors-single-double/PMBT2369.html 30. https://www.onsemi.com/pub/Collateral/MMBT2369LT1-D.PDF 31. https://www.nexperia.com/products/bipolar-transistors/general-purpose-bipolar-transistors/switching-transistors-single-double/#/p=1,s=0,f=c3f7f2:20;240,c=,rpp=,fs=0,sc=,so=,es= 32. https://en.wikipedia.org/wiki/Ring_oscillator 33. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/?share=twitter 34. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/?share=facebook 35. https://cpldcpu.wordpress.com/author/cpldcpu/ 36. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 37. https://cpldcpu.wordpress.com/category/discrete-logic/ 38. https://cpldcpu.wordpress.com/tag/cdc6600/ 39. https://cpldcpu.wordpress.com/tag/discrete-logic/ 40. https://cpldcpu.wordpress.com/tag/pmbt2369/ 41. https://cpldcpu.wordpress.com/tag/rtl/ 42. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/#comment-11295 43. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/?replytocom=11295#respond 44. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/#respond 45. https://public-api.wordpress.com/connect/?googleplus-sign-in=https://cpldcpu.wordpress.com&color_scheme=light 46. https://gravatar.com/site/signup/ 47. javascript:HighlanderComments.doExternalLogout( 'wordpress' ); 48. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 49. javascript:HighlanderComments.doExternalLogout( 'googleplus' ); 50. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 51. javascript:HighlanderComments.doExternalLogout( 'twitter' ); 52. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 53. javascript:HighlanderComments.doExternalLogout( 'facebook' ); 54. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 55. javascript:HighlanderComments.cancelExternalWindow(); 56. https://cpldcpu.wordpress.com/2019/09/28/a-led-candle-based-on-the-3-cent-mcu/ 57. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 58. https://cpldcpu.wordpress.com/2019/08/12/the-terrible-3-cent-mcu/ 59. https://cpldcpu.wordpress.com/2014/01/14/light_ws2812-library-v2-0-part-i-understanding-the-ws2812/ 60. https://cpldcpu.wordpress.com/2016/03/09/the-sk6812-another-intelligent-rgb-led/ 61. https://cpldcpu.wordpress.com/2014/08/27/apa102/ 62. https://cpldcpu.wordpress.com/category/arm/ 63. https://cpldcpu.wordpress.com/category/avr/ 64. https://cpldcpu.wordpress.com/category/candle/ 65. https://cpldcpu.wordpress.com/category/discrete-logic/ 66. https://cpldcpu.wordpress.com/category/hack/ 67. https://cpldcpu.wordpress.com/category/hardware/ 68. https://cpldcpu.wordpress.com/category/intelligent-led/ 69. https://cpldcpu.wordpress.com/category/led/ 70. https://cpldcpu.wordpress.com/category/micronucleus/ 71. https://cpldcpu.wordpress.com/category/multiplexing/ 72. https://cpldcpu.wordpress.com/category/padauk/ 73. https://cpldcpu.wordpress.com/category/pfs154/ 74. https://cpldcpu.wordpress.com/category/pms150c/ 75. https://cpldcpu.wordpress.com/category/reverse-engineering/ 76. https://cpldcpu.wordpress.com/category/uncategorized/ 77. https://cpldcpu.wordpress.com/category/usb/ 78. https://cpldcpu.wordpress.com/about/ 79. https://cpldcpu.wordpress.com/ 80. https://wordpress.com/?ref=footer_blog 81. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 82. https://widgets.wp.com/likes/master.html?ver=20190321#ver=20190321 Hidden links: 84. https://cpldcpu.files.wordpress.com/2020/02/rtl_inverter_pmbt2369.png 85. https://cpldcpu.files.wordpress.com/2020/02/ringo5.jpg 86. https://cpldcpu.files.wordpress.com/2020/02/transistortable.png 87. https://cpldcpu.files.wordpress.com/2020/02/ringo5-2.png 88. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/#comment-form-guest 89. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/#comment-form-load-service:WordPress.com 90. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/#comment-form-load-service:Twitter 91. https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/#comment-form-load-service:Facebook