Jump to content

How do computer engineers design CPU cores and logic?

I understand the physical process of layering photoresists on silicon substrates, shining a UV light on what you want to get rid of, and then rinse and repeat until you have a CPU die.

 

But what I don’t understand is how engineers come up with the complicated and intricate designs of processor cores, cache, memory channels and PCIe lanes, etc.

 

It feels like since these things are many miles long I feel like it would take a lot of space on a computer and a genius to take a glance at it and say “oh, this does that!”

 

Whenever I look up “CPU die schematic” I only get gross oversimplifications that show blocks and lines, not all the individual logic gates and mosfets. The closest I can get to this is the Intel 4004 die schematic. Not even a Motorola 68000 schematic.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, Ionosphere said:

But what I don’t understand is how engineers come up with the complicated and intricate designs of processor cores, cache, memory channels and PCIe lanes, etc.

It's a lot of boot-strapping. First, you design an NAND/NOR gate, then you design a carry-lookahead adder or a memory cell or ... from those, then ... from those, then (after a lot of iterations and optimizations) you have a CPU from those. Every CPU component can be broken down into simpler and simpler parts that can be reused in other parts. It's not far from how complicated code is just a thoughtful combination of many simple bits of code.

 

The top level designer isn't thinking about the specifics of silicon-level transistors, and the electrodynamics engineer doesn't care about the instruction each transistor will be used for as long as his substrate is up to par.

 

20 minutes ago, Ionosphere said:

It feels like since these things are many miles long I feel like it would take a lot of space on a computer and a genius to take a glance at it and say “oh, this does that!”

There are existing patterns in the implementation that allow for better understanding, but I don't think anyone can look at bare silicon and tell you how everything works beyond the simplest divisions (cache, CPU, GPU, etc). Most CPU implementation is from the top down (working with existing designs), not the bottom up (starting from scratch every time).

 

20 minutes ago, Ionosphere said:

Whenever I look up “CPU die schematic” I only get gross oversimplifications that show blocks and lines, not all the individual logic gates and mosfets. The closest I can get to this is the Intel 4004 die schematic. Not even a Motorola 68000 schematic.

Probably because even a single logic gate or memory cell can be a dozen transistors when implemented. Even a few dozen gates would rapidly go beyond simultaneous human perception (that's why logic simulators exist), let alone billions.

Main System (Byarlant): Ryzen 7 5800X | Asus B550-Creator ProArt | EK 240mm Basic AIO | 16GB G.Skill DDR4 3200MT/s CAS-14 | XFX Speedster SWFT 210 RX 6600 | Samsung 990 PRO 2TB / Samsung 960 PRO 512GB / 4× Crucial MX500 2TB (RAID-0) | Corsair RM750X | a 10G NIC (pending) | Inateck USB 3.0 Card | Hyte Y60 Case | Dell U3415W Monitor | Keychron K4 Brown (white backlight)

 

Laptop (Narrative): Lenovo Flex 5 81X20005US | Ryzen 5 4500U | 16GB RAM (soldered) | Vega 6 Graphics | SKHynix P31 1TB NVMe SSD | Intel AX200 Wifi (all-around awesome machine)

 

Proxmox Server (Veda): Ryzen 7 3800XT | AsRock Rack X470D4U | Corsair H80i v2 | 64GB Micron DDR4 ECC 3200MT/s | 4x 10TB WD Whites / 4x 14TB Seagate Exos / 2× Samsung PM963a 960GB SSD | Seasonic Prime Fanless 500W | Intel X540-T2 10G NIC | LSI 9207-8i HBA | Fractal Design Node 804 Case (side panels swapped to show off drives) | VMs: TrueNAS Scale; Ubuntu Server (PiHole/PiVPN/NGINX?); Windows 10 Pro; Ubuntu Server (Apache/MySQL)


Media Center/Video Capture (Jesta Cannon): Ryzen 5 1600X | ASRock B450M Pro4 R2.0 | Noctua NH-L12S | 16GB Crucial DDR4 3200MT/s CAS-22 | EVGA GTX750Ti SC | UMIS NVMe SSD 256GB / TEAMGROUP MS30 1TB | Corsair CX450M | Viewcast Osprey 260e Video Capture | Mellanox ConnectX-2 10G NIC | LG UH12NS30 BD-ROM | Silverstone Sugo SG-11 Case | Sony XR65A80K

 

Camera: Sony ɑ7II w/ Meike Grip | Sony SEL24240 | Samyang 35mm ƒ/2.8 | Sony SEL50F18F | Sony SEL2870 (kit lens) | PNY Elite Perfomance 512GB SDXC card

 

Network:

Spoiler
                           ┌─────────────── Office/Rack ────────────────────────────────────────────────────────────────────────────┐
Google Fiber Webpass ────── UniFi Security Gateway ─── UniFi Switch 8-60W ─┬─ UniFi Switch Flex XG ═╦═ Veda (Proxmox Virtual Switch)
(500Mbps↑/500Mbps↓)                             UniFi CloudKey Gen2 (PoE) ─┴─ Veda (IPMI)           ╠═ Veda-NAS (HW Passthrough NIC)
╔═══════════════════════════════════════════════════════════════════════════════════════════════════╩═ Narrative (Asus USB 2.5G NIC)
║ ┌────── Closet ──────┐   ┌─────────────── Bedroom ──────────────────────────────────────────────────────┐
╚═ UniFi Switch Flex XG ═╤═ UniFi Switch Flex XG ═╦═ Byarlant
   (PoE)                 │                        ╠═ Narrative (Cable Matters USB-PD 2.5G Ethernet Dongle)
                         │                        ╚═ Jesta Cannon*
                         │ ┌─────────────── Media Center ──────────────────────────────────┐
Notes:                   └─ UniFi Switch 8 ─────────┬─ UniFi Access Point nanoHD (PoE)
═══ is Multi-Gigabit                                ├─ Sony Playstation 4 
─── is Gigabit                                      ├─ Pioneer VSX-S520
* = cable passed to Bedroom from Media Center       ├─ Sony XR65A80K (Google TV)
** = cable passed from Media Center to Bedroom      └─ Work Laptop** (Startech USB-PD Dock)

Retired/Other:

Spoiler

Laptop (Rozen-Zulu): Sony VAIO VPCF13WFX | Core i7-740QM | 8GB Patriot DDR3 | GT 425M | Samsung 850EVO 250GB SSD | Blu-ray Drive | Intel 7260 Wifi (lived a good life, retired with honor)

Testbed/Old Desktop (Kshatriya): Xeon X5470 @ 4.0GHz | ZALMAN CNPS9500 | Gigabyte EP45-UD3L | 8GB Nanya DDR2 400MHz | XFX HD6870 DD | OCZ Vertex 3 Max-IOPS 120GB | Corsair CX430M | HooToo USB 3.0 PCIe Card | Osprey 230 Video Capture | NZXT H230 Case

TrueNAS Server (La Vie en Rose): Xeon E3-1241v3 | Supermicro X10SLL-F | Corsair H60 | 32GB Micron DDR3L ECC 1600MHz | 1x Kingston 16GB SSD / Crucial MX500 500GB

Link to comment
Share on other sites

Link to post
Share on other sites

You also have to realise that people use software tools/languages for this stuff as well. 

 

For example in VHDL or something similar, you can type in something like "z = x AND y" and then the software internally designs a component with ports x,y and z which performs an AND operation on x and y with the output being z.

 

Link to comment
Share on other sites

Link to post
Share on other sites

I just trust that the magic elves got it right

Before you reply to my post, REFRESH. 99.99% chance I edited my post. 

 

My System: i7-13700KF // Corsair iCUE H150i Elite Capellix // MSI MPG Z690 Edge Wifi // 32GB DDR5 G. SKILL RIPJAWS S5 6000 CL32 // Nvidia RTX 4070 Super FE // Corsair 5000D Airflow // Corsair SP120 RGB Pro x7 // Seasonic Focus Plus Gold 850w //1TB ADATA XPG SX8200 Pro/1TB Teamgroup MP33/2TB Seagate 7200RPM Hard Drive // Displays: LG Ultragear 32GP83B x2 // Royal Kludge RK100 // Logitech G Pro X Superlight // Sennheiser DROP PC38x

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×