How do you move from it being a collection of transistors to it being a fully functional computer?

551 views

How do you move from it being a collection of transistors to it being a fully functional computer?

In: 20

12 Answers

Anonymous 0 Comments

Only if you collect the transistors in a specific way will it be a computer. Computers are not made by random processes. You have to arrange them in a specific way and the design/performance of the computer is strongly related to that specific configuration.

Anonymous 0 Comments

You can arrange transistors so that they can behave in the same manner as logical gates (interpreting High and Low voltage as True or False). And you can arrange logical gates to mimic mathematical operations (interpreting True and False as 1 or 0).

Anonymous 0 Comments

A transistor is just a switch. It can either be closed, allowing current to flow through, or open, not allowing current to flow through.

Switches can be used to process logical instructions.

For example, if I wanted a machine that could say “if the input is on, the output should be off” You could design [a small circuit](https://www.electronics-tutorials.ws/wp-content/uploads/2018/05/logic-log47.gif) using transistors to handle that.

A computer is, effectively, just a big, complicated bunch of circuits like that one that allow for a much more complex set of operations.

The difference between a pile of transistors and a computer is similar to the difference between a bunch of nails and planks of wood and a shed. The arrangement and structure connecting the individual pieces together is what separates them. The wood and nails become a shed when you combine them in a structure that allows it to function as a shed. Same with the transistors and the computer.

edit: for any aspiring programmers out there who want to really get a sense of the architecture of a computer and how it works, take a look at [nand2tetris](https://www.nand2tetris.org/). These guys wrote a textbook for intro to computer systems courses and then created this whole accompanying set of projects and software tools that are available for free. They walk you through creating most of the components of a simple, simulated 16-bit computer, writing an assembler and VM translator for it, and then writing a compiler for a simple Java-like language. You essentially build a fully functioning computer from the ground up. Even though I do data science and statistics for my career (so this is hardly ever actually useful for me in my work life), the course where we used nand2tetris was my favorite in my grad program.

Anonymous 0 Comments

You interconnect them in the correct configuration to perform the logical function that a computer is. Today the interconnection and transistors are all made at the same time in an integrated circuit but the first transistor-based computer used chips with a single transistor that was interconnected with wires.

To get how it works I would look at the videos on [https://eater.net/8bit/](https://eater.net/8bit/) where Ben Eater build a simple 8-bit computer from individual chips. He does not use individual transistors but from a simple logic chip. There are introduction videos that explain how semiconductors and transistors work and demonstrate how to build simple logical circuits with them.

It is simpler to get how it works from a video like those than any text on Reddit because you can do drawings the same way.

If you look at all videos you see a simple 8-bit computer being built and how every step work is explained. Computers today are a lot more complex but the basic idea of how they work is the same.

Anonymous 0 Comments

tl;dr, you organize those transistors into logic gates (AND, OR, NOT, etc) so that you can process data through them. The more circuits you have, basically, the more data and the more complex data you can generally process…

ETA, people have actually demonstrated this using redstone components in Minecraft. See: [Logic gates with redstone](https://www.youtube.com/watch?v=VEcmaXwjwuY). Some crazies have even built *working computers* inside the game. They’re huge and ridiculous, but they work. If you have a few hours, it’s fascinating stuff, and it’s pretty much exactly how computer hardware is developed. It might help you understand the real-world process.

Anonymous 0 Comments

A computer is basically a Rube Goldberg machine of transistors.

In the old days you pick up a newspaper and get dozens of bits of news.

Today to get news – it’s relayed from one device to another device – dozens of times around the world. It’s processed by multiple big companies, and goes through incredibly convoluted processes.

A typical Rube Goldberg machine might have hundreds, thousands, or tens of thousands of parts.

A modern computer chip takes that several orders of magnitudes higher by having billions, sometimes tens of billions of transistors.

Often these are insanely complicated – and there are glitches that come up. They can be difficult to solve because of all the steps involved. This can result in viruses, hacks, and more.

Anonymous 0 Comments

By arranging the transistors in the right patterns, you can use them to do logic on single-bit values (1s and 0s). These circuits are called **[logic gates](https://en.wikipedia.org/wiki/Logic_gate)**. For instance, an AND gate will output the value 1 only if *both* of its inputs are 1; whereas a NOR gate will output a 1 only if *neither* of its inputs are 1.

Once you have logic gates, you can arrange those in the right patterns and use them to do binary arithmetic. For instance, by combining an AND gate with an XOR gate, you can make a **half adder** that computes the sum of two bits. A half adder can only do a tiny amount of addition: it can only do 0+0, 0+1, 1+0, and 1+1.

To deal with numbers bigger than a single bit, adders and other logic are connected together in bigger patterns. When you have circuits to do a lot of different arithmetic and logic operations, they can be bundled together into an **arithmetic and logic unit (ALU)**. This lets you input two numbers (each made of many bits) but also has a third input that selects what operation you want to do on them — adding, subtracting, and so on.

With a simple ALU, a small memory circuit (a **register**), and some circuits to control the display, you can make an old-school pocket calculator. This isn’t quite a computer yet, because it doesn’t run code; it just responds to button presses by doing one arithmetic operation and displaying the result.

A computer has a few things a pocket calculator doesn’t. A pocket calculator can only remember one or two numbers at a time. A computer has a **memory** that allows it to store data in numbered locations. So instead of saying *”add 3 and 5 and show me the result”*, you can tell it to *”take the number in memory cell #1 and the number in memory cell #2, add them together, and store the sum in memory cell #3.”* This is where **variables** come from.

A computer can also have a list of instructions stored in its memory: a **stored program**. This is *code* in the simplest sense. These instructions are stored as numbers, and each instruction is in a numbered cell in memory. The computer also has a special memory register called the **program counter (PC)** to keep track of which instruction to do next. And it also has instructions to modify the PC, which allows it to skip around in the list of instructions — which makes it possible to do branches and loops in code.

Anonymous 0 Comments

It’s actually super interesting to see it recreated physically. Essentially you replace the electricity with something physical like a marble rolling down a track or water in a pipe and the transistors with physical gates or valves. If we fill one of these paths with water or a marble then that is a 1 and an empty path is a 0. We have now physically represented the electrical components of a computer. From there we form simple “if/then” logic statements.

For example “IF both paths are in the same state THEN this gate will read as 1 (filled) and pass it down the line” or “IF either path is filled THEN this gate will read as filled as well and pass it down the line”.

From there we just have to represent numbers and mathematical functions in 1s and 0s. And eventually we’ll get an output we can read as the result we intended. Place a ton of these gates together and you can form more complex functions like determining the color and brightness of a single pixel on a monitor. With the speed of electricity you can do that function hundreds of times a second.

Anonymous 0 Comments

A transistor is like a door. It lets stuff through or it doesn’t. One door can help you sort into two piles. Two doors sorts into three piles, you get the idea.

60 billion doors, arranged properly, lets you do a bunch of cool stuff.

Anonymous 0 Comments

Logic gates, is the short answer.

Im sure you can look them up on youtube, how they work. Now you just need to build a processor of them that handles data, that is very tricky.