How do they build a processor with billions of transistors?

677 views

How are scientists able design processors with such large amounts of transistors? Do they do it with automation? How is it possible to do something like this at that scale?

In: Physics

6 Answers

Anonymous 0 Comments

The design of CPUs and other integrated circuit are done by engineers not scientists..

First lest look at what a CPU die to contain. Let’s take a Ryzen 1000 series CPU that contains 4.8 billion transistors and 8 cores.

There is a lot of cache memory that is SRAM with 8 transistors per bit. There is 64kb instruction L1 +32kB Data L1 cache and 512kB L2 cache per core for a total of 606kB per core. The chip also has 16 MB L3 cha chase that is shard so the total is 8*606/1024+16= 20.7MB or cache, 1 byte is 8 bits so you need 8*8*20,7= 1324 = 1.3 billion transistors. This number does not include storage for the address of the data and other gates used so est say 1.5 billion transistors.

This is 1/3 of the total number of transistors of the CPU and the SRAM will just be copies side by side of the same design, Because of the repeating structure of RAM it is very space-efficient so it will not take 1/3 of the chip area but it still contains 1/3 of all transistors,

Then we have 8 cores and each of them is identical so design one and make a copy. So lest look at [an image of the chip](https://qph.fs.quoracdn.net/main-qimg-c31dcc2845979d508b5bd6e9ccd9d3cd) where you can see the 8 cores and the cache memory in between.

Let’s look at that single-core and the [and the general functional design](https://cdn.wccftech.com/wp-content/uploads/2016/08/AMD-Zen-CPU-Architecture-7.png) The important part here is that you see multiple schedulers, ALU, AGU, ADD, and MUL blocks. So a core in itself contains copies of the same functional block. Even inside them, the is lost of preparing the structure, you can make a 64-bit integer adder by making a full adder that adds bits and has 64 identical side by side,

Around the core and cache, it is transistors for power management and to communicate with the rest of the computer so you find memory controllers, PCIe interfaces etc. The memory controllers are the long structure to the bottom left and you see two identical but mirrored parts because you have two memory channels. If you look around you see a lot of repeating patterns and that is not by chance. For example, 24 PICe lanes out will result in a lot of identical parts.

So a CPU contains a lot of copies of the same thing that you need to design once.

If you look at how the part you need to design is done you will find that there are fundamental logical gates and other structures that need to be made with individual transistors but then when you make the more complex function you can reuse the design on the logical gate level, So just like on the large scale you make fundamental building blocks and reuse them to do what you like

The result is often that humans design the logical gates with aid of software to make them fast and energy-efficient. You then create the function on a higher level with code in a programming language that is relatively similar to the programming language that the software on a computer. Look at [Verilog](https://en.wikipedia.org/wiki/Verilog) which is a hardware description language, if you have done any programming the code example is quite understandable and that is code that a compiler can use appreciated gates to create a layout that can be made in silicon.

It is on this code level the function of the CPU is tested. So you have a software description of the CPU that you can use it a test so it functions correctly.

You then let the software create what you wrote in the high-level code with the low-level structures that is designed, it can also lay them out on a die, So relatively simple test code can result in lots of transistors.

Depending on what part you look at there will be more or less human interaction. You spend time making the parts that limit the speed of the CPU and try to optimize them to keep the speed up, you den might make a completely custom design. But there will be another part that the computer-generated variants are good enough

So chip design is copies of the same part both at the top level and at the lowest level where the middle part is made in code that a computer makes of the lower level part or customer design if required for speed, efficiency etc.

You are viewing 1 out of 6 answers, click here to view all answers.