As of 2020 leading makers of the most important fab photolithography equipment.
ASML: TSMC's Critical Supplier by Asianometry (2021)
Source. How ASML Won Lithography by Asianometry (2021)
Source. First there were dominant Elmer and Geophysics Corporation of America dominating the market.
Then a Japanese government project managed to make Nikon and Canon Inc. catch up, and in 1989, when Ciro Santilli was born, they had 70% of the market.
youtu.be/SB8qIO6Ti_M?t=240 In 1995, ASML had reached 25% market share. Then it managed the folloging faster than the others:
- TwinScan, reached 50% market share in 2002
- Immersion litography
- EUV. There was a big split between EUV vs particle beams, and ASML bet on EUV and EUV won.
- youtu.be/SB8qIO6Ti_M?t=459 they have an insane number of software engineers working on software for the machine, which is insanely complex. They are big on UML.
- youtu.be/SB8qIO6Ti_M?t=634 they use ZEISS optics, don't develop their own. More precisely, the majority owned subsidiary Carl Zeiss SMT.
- youtu.be/SB8qIO6Ti_M?t=703 IMEC collaborations worked well. Notably the ASML/Philips/ZEISS trinity
- www.youtube.com/watch?v=XLNsYecX_2Q ASML: Chip making goes vacuum with EUV (2009) Self promotional video, some good shots of their buildings.
A computer is a highly layered system, and so you have to decide which layers you are the most interested in studying.
Although the layer are somewhat independent, they also sometimes interact, and when that happens it usually hurts your brain. E.g., if compilers were perfect, no one optimizing software would have to know anything about microarchitecture. But if you want to go hardcore enough, you might have to learn some lower layer.
It must also be said that like in any industry, certain layers are hidden in commercial secrecy mysteries making it harder to actually learn them. In computing, the lower level you go, the more closed source things tend to become.
But as you climb down into the abyss of low level hardcoreness, don't forget that making usefulness is more important than being hardcore: Figure 1. "xkcd 378: Real Programmers".
First, the most important thing you should know about this subject: cirosantilli.com/linux-kernel-module-cheat/should-you-waste-your-life-with-systems-programming
Here's a summary from low-level to high-level:
- semiconductor physical implementation this level is of course the most closed, but it is fun to try and peek into it from any openings given by commercials and academia:
- photolithography, and notably photomask design
- register transfer level
- interactive Verilator fun: Is it possible to do interactive user input and output simulation in VHDL or Verilog?
- more importantly, and much harder/maybe impossible with open source, would be to try and set up a open source standard cell library and supporting software to obtain power, performance and area estimates
- Are there good open source standard cell libraries to learn IC synthesis with EDA tools? on Quora
- the most open source ones are some initiatives targeting FPGAs, e.g. symbiflow.github.io/, www.clifford.at/icestorm/
- qflow is an initiative targeting actual integrated circuits
- microarchitecture: a good way to play with this is to try and run some minimal userland examples on gem5 userland simulation with logging, e.g. see on the Linux Kernel Module Cheat:This should be done at the same time as books/website/courses that explain the microarchitecture basics.This is the level of abstraction that Ciro Santilli finds the most interesting of the hardware stack. Learning it for actual CPUs (which as of 2020 is only partially documented by vendors) could actually be useful in hardcore software optimization use cases.
- instruction set architecture: a good approach to learn this is to manually write some userland assembly with assertions as done in the Linux Kernel Module Cheat e.g. at:
- github.com/cirosantilli/linux-kernel-module-cheat/blob/9b6552ab6c66cb14d531eff903c4e78f3561e9ca/userland/arch/x86_64/add.S
- cirosantilli.com/linux-kernel-module-cheat/x86-userland-assembly
- learn a bit about calling conventions, e.g. by calling C standard library functions from assembly:
- you can also try and understand what some simple C programs compile to. Things can get a bit hard though when
-O3
is used. Some cute examples:
- executable file format, notably executable and Linkable Format. Particularly important is to understand the basics of:
- address relocation: How do linkers and address relocation work?
- position independent code: What is the -fPIE option for position-independent executables in GCC and ld?
- how to observe which symbols are present in object files, e.g.:
- how C++ uses name mangling What is the effect of extern "C" in C++?
- how C++ template instantiation can help reduce link time and size: Explicit template instantiation - when is it used?
- operating system. There are two ways to approach this:
- learn about the Linux kernel Linux kernel. A good starting point is to learn about its main interfaces. This is well shown at Linux Kernel Module Cheat:
- system calls
- write some system calls in
- pure assembly:
- C GCC inline assembly:
- write some system calls in
- learn about kernel modules and their interfaces. Notably, learn about to demystify special files such
/dev/random
and so on: - learn how to do a minimal Linux kernel disk image/boot to userland hello world: What is the smallest possible Linux implementation?
- learn how to GDB Step debug the Linux kernel itself. Once you know this, you will feel that "given enough patience, I could understand anything that I wanted about the kernel", and you can then proceed to not learn almost anything about it and carry on with your life
- system calls
- write your own (mini-) OS, or study a minimal educational OS, e.g. as in:
- learn about the Linux kernel Linux kernel. A good starting point is to learn about its main interfaces. This is well shown at Linux Kernel Module Cheat:
- programming language
How low can you go video by Ciro Santilli (2017)
Source. In this infamous video Ciro has summarized the computer hierarchy.Quantum Computing with Trapped Ions by Christopher Monroe (2018)
Source. Co-founder of IonQ. Cool dude. Starts with basic background we already know now. Mentions that there is some relationship between atomic clocks and trapped ion quantum computers, which is interesting. Then he goes into turbo mode, and you get lost unless you're an expert! Video 1. "Quantum Simulation and Computation with Trapped Ions by Christopher Monroe (2021)" is perhaps a better watch.- youtu.be/9aOLwjUZLm0?t=1216 superconducting qubits are bad because it is harder to ensure that they are all the same
- youtu.be/9aOLwjUZLm0?t=1270 our wires are provided by lasers. Gives example of ytterbium, which has nice frequencies for practical laser choice. Ytterbium ends in 6s2 5d1, so they must remove the 5d1 electron? But then you are left with 2 electrons in 6s2, can you just change their spins at will without problem?
- youtu.be/9aOLwjUZLm0?t=1391 a single atom actually reflects 1% of the input laser, not bad!
- youtu.be/9aOLwjUZLm0?t=1475 a transition that they want to drive in Ytterbium has 355 nm, which is easy to generate TODO why.
- youtu.be/9aOLwjUZLm0?t=1520 mentions that 351 would be much harder, e.g. as used in inertially confied fusion, takes up a room
- youtu.be/9aOLwjUZLm0?t=1539 what they use: a pulsed laser. It is made primarily for photolithography, Coherent, Inc. makes 200 of them a year, so it is reliable stuff and easy to operate. At www.coherent.com/lasers/nanosecond/avia-nx we can see some of their 355 offers. archive.ph/wip/JKuHI shows a used system going for 4500 USD.
- youtu.be/9aOLwjUZLm0?t=1584 Cirac and Zoller proposed the idea of using entangled ions soon after they heard about Shor's algorithm in 1995
- youtu.be/9aOLwjUZLm0?t=1641 you use optical tweezers to move the pairs of ions you want to entangle. This means shining a laser on two ions at the same time. Their movement depends on their spin, which is already in a superposition. If both move up, their distance stats the same, so the Coulomb interaction is unchanged. But if they are different, then one goes up and the other down, distance increases due to the diagonal, and energy is lower.
- youtu.be/9aOLwjUZLm0?t=1939 S. Debnah 2016 Nature experiment with a pentagon. Well, it is not a pentagon, they are just in a linear chain, the pentagon is just to convey the full connectivity. Maybe also Satanism. Anyways. This point also mentions usage of an acousto-optic modulator to select which atoms we want to act on. On the other side, a simpler wide laser is used that hits all atoms (optical tweezers are literally like tweezers in the sense that you use two lasers). Later on mentions that the modulator is from Harris, later merged with L3, so: www.l3harris.com/all-capabilities/acousto-optic-solutions
- youtu.be/9aOLwjUZLm0?t=2119 Bernstein-Vazirani algorithm. This to illustrate better connectivity of their ion approach compared to an IBM quantum computer, which is a superconducting quantum computer
- youtu.be/9aOLwjUZLm0?t=2354 hidden shift algorithm
- youtu.be/9aOLwjUZLm0?t=2740 Zhang et al. Nature 2017 paper about a 53 ion system that calculates something that cannot be classically calculated. Not fully controllable though, so more of a continuous-variable quantum information operation.
- youtu.be/9aOLwjUZLm0?t=2923 usage of cooling to 4 K to get lower pressures on top of vacuum. Before this point all experiments were room temperature. Shows image of refrigerator labelled Janis cooler, presumably something like: qd-uki.co.uk/cryogenics/janis-recirculating-gas-coolers/
- youtu.be/9aOLwjUZLm0?t=2962 qubit vs gates plot by H. Neven
- youtu.be/9aOLwjUZLm0?t=3108 modular trapped ion quantum computer ideas. Mentions experiment with 2 separate systems with optical link. Miniaturization and their black box. Mentions again that their chip is from Sandia. Amazing how you pronounce that.
Specific type of Josephson junction. Probably can be made tiny and in huge numbers through photolithography.
Illustration of a thin-film superconducting tunnel junction (STJ)
Source. The superconducting material is light blue, the insulating tunnel barrier is black, and the substrate is green.Quantum Transport, Lecture 14: Josephson effects by Sergey Frolov (2013)
Source. youtu.be/-HUVGWTfaSI?t=878 mentions maskless electron beam lithography being used to produce STJs.The basic experiment for a photonic quantum computer.
Can be achieved in two ways it seems:
- macroscopic beam splitter and optical table
- photolithography
Animation of Hong-Ou-Mandel Effect on a silicon like structure by Quantum Light University of Sheffield (2014): www.youtube.com/watch?v=ld2r2IMt4vg No maths, but gives the result clear: the photons are always on the same side.
Quantum Computing with Light by Quantum Light University of Sheffield (2015)
Source. Animation of in-silicon single photon device with brief description of emitting and receiving elements. Mentions:- quantum dot source. TODO how do you produce identical photons from two separate quantum dots? See also: quantum dot single photon source.
- superconducting nanowire detector. So the device has to be cooled then? Video "Jeremy O'Brien: "Quantum Technologies" by GoogleTechTalks (2014)" youtube.com/watch?v=7wCBkAQYBZA&t=2497 however says that semiconducting devices can also be used
Quantum Optics - Beam splitter in quantum optics by Alain Aspect (2017)
Source. More theoretical approach.Building a Quantum Computer Out of Light by whentheappledrops (2014)
Source. Yada yada yada, then at youtu.be/ofg335d3BJ8?t=341 shows optical table and it starts being worth it. Jacques Carolan from the University of Bristol goes through their setup which injects 5 photons into a 21-way experiment.