Jump to content

From bits to.. this..

Maximation

Everyone likes to say everything computer related (they probably mean the software and firmware, even though everything (in my understanding) was made out of 1's and 0's, even hardware is based off of it, right?) was build out of 1's and 0's.

But what I still don't really understand is:

HOW CAN BITS MAKE.. THIS? .. ?

 

I am sorry for my dramatic way of questioning.

 

-- Mae B

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Aliens.

 

Well, that still doesn't explain the way aliens did it. How would you assume the aliens created this without us noticing?

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Well, that still doesn't explain the way aliens did it. How would you assume the aliens created this without us noticing?

Idk. You can go on the conspiracy train...

 

I have no clue but this is amazing.

Link to comment
Share on other sites

Link to post
Share on other sites

I'm confused in so many ways. 

Explain what you mean. By "This?" do you mean, the text on the page? The website? The internet? Your OS itself? What?

† Christian Member †

For my pertinent links to guides, reviews, and anything similar, go here, and look under the spoiler labeled such. A brief history of Unix and it's relation to OS X by Builder.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

This is a pretty decent video of how the most basic parts of a computer work, all demonstrated with dominos...

 

Once you can do math, everything else is the complicated task of agreeing upon numerical values for certain things (ie: the letter A is 01000001), and then writing code that can make calculations based of the encoding that everyone agreed on.... And, like Glenwing said, we've had a lot of decades with a lot of very smart people doing very complicated stuff..

i7 not perfectly stable at 4.4.. #firstworldproblems

Link to comment
Share on other sites

Link to post
Share on other sites

A lot of very smart people alien wizards got together, and many decades later... here we are.

The stone cannot know why the chisel cleaves it; the iron cannot know why the fire scorches it. When thy life is cleft and scorched, when death and despair leap at thee, beat not thy breast and curse thy evil fate, but thank the Builder for the trials that shape thee.
Link to comment
Share on other sites

Link to post
Share on other sites

Everyone likes to say everything computer related (they probably mean the software and firmware, even though everything (in my understanding) was made out of 1's and 0's, even hardware is based off of it, right?) was build out of 1's and 0's.

But what I still don't really understand is:

HOW CAN BITS MAKE.. THIS? .. ?

 

I am sorry for my dramatic way of questioning.

 

-- Mae B

 

Basically all the logic in a computer is based off of boolean algrebra ( With boolean algebra, you are basically working with true or false statements (1's and 0's).  Now it seems it is convention that a "1" is true and "0" is false (there are some limited cases where the base "1" is considered false, but I am just ignoring that because it is easier to explain).

 

So with a 1, it means currents are turned on, and a 0 means currents are turned off.  Now if you build materials right, you can implement things called gates (OR, AND, XOR, NOT, etc).  Each of these gates does different things...or gates take in two values and return 1 value....now stick all these gates together and you are able to to binary math....now boolean algebra is quite powerful (you are basically able to do all the math needed for computers).  From the boolean algebra, and implementing the gates you are able to build up concepts like memory and such.  Now you have memory and math you can implement instructions (like add 10 and 10)....from there you can just send the "results" to things such as a screen.

 

To an extend imagine this

 

It is very similar to that, instead of output being a domino falling imagine electricity traveling through and turning on an led screen.

 

So everything is built up off of the concept of boolean algebra, and it takes a bit of thinking to piece together the concepts, but when it all fits together you get a computer.

 

Inhereitly though there isn't "1" and "0" going through the system, but rather just on and off states which we represent as 1 and 0 as it is based off again boolean

 

*edit* Someone beat me in posting the video :P

0b10111010 10101101 11110000 00001101

Link to comment
Share on other sites

Link to post
Share on other sites

I'm confused in so many ways. 

Explain what you mean. By "This?" do you mean, the text on the page? The website? The internet? Your OS itself? What?

 

By "this" I refer to the digital components which make up a computer and which are made by the computer. 

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Basically all the logic in a computer is based off of boolean algrebra ( With boolean algebra, you are basically working with true or false statements (1's and 0's).  Now it seems it is convention that a "1" is true and "0" is false (there are some limited cases where the base "1" is considered false, but I am just ignoring that because it is easier to explain).

 

So with a 1, it means currents are turned on, and a 0 means currents are turned off.  Now if you build materials right, you can implement things called gates (OR, AND, XOR, NOT, etc).  Each of these gates does different things...or gates take in two values and return 1 value....now stick all these gates together and you are able to to binary math....now boolean algebra is quite powerful (you are basically able to do all the math needed for computers).  From the boolean algebra, and implementing the gates you are able to build up concepts like memory and such.  Now you have memory and math you can implement instructions (like add 10 and 10)....from there you can just send the "results" to things such as a screen.

 

To an extend imagine this

 

It is very similar to that, instead of output being a domino falling imagine electricity traveling through and turning on an led screen.

 

So everything is built up off of the concept of boolean algebra, and it takes a bit of thinking to piece together the concepts, but when it all fits together you get a computer.

 

Inhereitly though there isn't "1" and "0" going through the system, but rather just on and off states which we represent as 1 and 0 as it is based off again boolean

 

*edit* Someone beat me in posting the video :P

 

Thank you for the most detailed and useful explanation so far. But still, how are the logic gates made out of off and on statements? How did they create them?

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Thank you for the most detailed and useful explanation so far. But still, how are the logic gates made out of off and on statements? How did they create them?

Exactly what he said. The logic gates are made by currents. If the current is on, it's a 1, if it's off, it's a 0.

Then you build the gate with transistors and such in such a way that putting two 1's (currents) produces a 0 or 1 depending on the setup.

2oo4_logic_E754642B-B82A-101A-F8F425E2C5

Physical representation of a logic gate with the logic gate overlapped onto it:

tumblr_inline_mp0rc4EDWN1qz4rgp.jpg

Now, imagine those, but 10000x smaller in a CPU where there are many more of them. Made out of things as small as 10 atoms or something. 

† Christian Member †

For my pertinent links to guides, reviews, and anything similar, go here, and look under the spoiler labeled such. A brief history of Unix and it's relation to OS X by Builder.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

If you are wondering how the gates are actually built (the physics behind it) this is a very simplistic concept of how they work. (I believe there is more physics going on, but I have never really read more into this)

 

0b10111010 10101101 11110000 00001101

Link to comment
Share on other sites

Link to post
Share on other sites

If you are wondering how the gates are actually built (the physics behind it) this is a very simplistic concept of how they work. (I believe there is more physics going on, but I have never really read more into this)

Thank you! This is a very clear explanation of how it works. It is pretty basic though. Do you know a source for some more advanced information about this?

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Maths, bro... lots and lots of maths.

EDIT: just saw all the transistor and logic gate talk...

So, @Maximation, I can go a little into that stuff for you. So, as the video most likely describes, a transistor can act as a switch. It's perhaps more accurate to think of it as a valve, however.

A valve on a pipe can control the flow of the fluid in the pipe. Similarly, the transistor controls the flow of electrons through the circuit (and by extension - because of certain laws of electricity) the voltages at certain points in the circuit. This is why a transistor can be used as a simple amplifier, because you can take a small voltage signal and put it on the gate, and a precisely proportional (perhaps 10x or 100x) voltage signal will appear at the collector, so the waveform is the same shape but the amplitude is massively increased.

Anyway, when representing digital signals, transistors are useful because you can represent each state as no flow (minimal flow, at least, it never fully switches off) or full flow... as though your valve is fully closed or fully open.

Now, you know about NPN transistors from that video, and NPN is what I just described. However, you can also have a PNP transistor. The PNP has the opposite behaviour. When the signal at the gate is low, the collector signal is high, and vice versa. The PNP inverts the signal at the gate.

This now becomes very handy for representing boolean logic. The simplest you logic circuit you can create out of transistors is an invertor. There are a lot of different ways of doing it, NMOS and PMOS are basically NPN and PNP, respectively... but they refer to a specific type of implementation, and they may be used separately to form any logic you like. The most common nowadays, however, is CMOS, which is a combination of NMOS and PMOS. It is where you use NMOS and PMOS together in all circuits... in that they compliment one another - hence C(omplimentary)MOS.

Okay, so here is a simple CMOS Not gate:

200px-CMOS_Inverter.svg.png

 

As you can see, A is the input, and Q is your output. The transistor up above is PMOS (call it P), and the transistor below is NMOS (call it N). When A is high, N gets switched on, P gets switched off (remember P inverts what's at the gate), and so Q is "pulled to ground ("ground" being Vss in this case - Vss < Vdd)" meaning the N being on has completed a circuit and created a path from Q to ground, meaning VQ now = Vss/ground... conversely, P is off, so there is no path up to Vdd, Q is cut off from Vdd.

And similarly, if A is low, P is now on, and N is off. Q is pulled up to Vdd.

You can do everything you need for digital logic with just these two (PMOS and NMOS) components.
Here is a NAND gate:

200px-CMOS_NAND.svg.png

 

The thing about CMOS is it inverts by its very nature... so you will see here that even though NAND is an inversion of AND, there is no need for an invertor following this gate. If you wished to have an AND gate, you could stick an inverting stage immediately afterwards. See if you can work out how it works as a NAND... I'll do a table in case you forget what NAND does:
 

   A  |  B  |  Out   0  |  0  |   1   0  |  1  |   1   1  |  0  |   1   1  |  1  |   0

Hopefully this was helpful to you... I did do an Electronics and Computer Engineering Degree so I am happy to help if you have more questions...

But basically to answer the original question, "HOW CAN BITS MAKE... THIS?", is basically just that it's lots of small parts each doing their own little job. Don't even try to comprehend it from a big-picture perspective. You can't. You've got to break it down into smaller parts to understand how it all fits together to make the whole.

Link to comment
Share on other sites

Link to post
Share on other sites

So, @Maximation, I can go a little into that stuff for you. So, as the video most likely describes, a transistor can act as a switch. It's perhaps more accurate to think of it as a valve, however.

 

Very good. Very helpful.

There are a few questions I would like to ask though.

Where do the Vdd and the Vss stand for, what do they do?

Could you explain the different symbols used in the schematics?

CMOS is still not very clear for me, I have read moer about it on wikipedia but its functions and how it works is still not clear to me. Could you explain how CMOS works and what its function is?

 

Thank you very much!

 

Is the Electronics and computer engineering degree worth it? I would like to study something computer related, maybe computer science, or maybe something related to computer engineering.

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

The 0's and 1's are the raw form of the information that is stored. we use protocols and standards that together, unify how that information is represented to the computer. The computer will read a stream of 1's and 0's into the CPU, which in turn does things based on the sequence that the computer is reading. The 'architecture' of the CPU, is the physical design of the CPU and defines what instructions and what sequences of data will trigger certain events in the CPU. Software written for another architecture, say, Power PC won't work on your x86-64 CPU because the way that the physical design of the electric components isn't designed to understand the format that the data sequence is in. Round peg in a square hole.

 

Sorry for the mouthful, but that's at the very most a foundation description of how that works.

Spoiler

CPU: AMD Ryzen 3700X | Mobo: ASUS Strix X570-I Gaming ITX | GPU: Nvidia GeForce RTX 3060 Ti Founders Edition | RAM: Corsair Vengeance RGB PRO 16GB 3600MHz | Storage: Corsair Force MP600 1TB PCI-e Gen 4 & 2x 2TB Seagate Barracuda | Cooler: Stock Prism | Case: NZXT H210i | PSU: Corsair CS500M

Link to comment
Share on other sites

Link to post
Share on other sites

A brilliant book on this topic is CODE. It talks not just about the hardware but also software encoding as well.

Link to comment
Share on other sites

Link to post
Share on other sites

Very good. Very helpful.

There are a few questions I would like to ask though.

Where do the Vdd and the Vss stand for, what do they do?

Could you explain the different symbols used in the schematics?

CMOS is still not very clear for me, I have read moer about it on wikipedia but its functions and how it works is still not clear to me. Could you explain how CMOS works and what its function is?

 

Thank you very much!

 

Is the Electronics and computer engineering degree worth it? I would like to study something computer related, maybe computer science, or maybe something related to computer engineering.

Vdd and Vss just refer to your positve and negative voltages, respectively. You could just as easily call them Vs (Source Voltage) and Gnd (Ground) it's just that Vdd and Vss are kind of the standard names when talking about FETs (Field Effect Transistors).

This is the standard way of drawing MOSFETs (Metal Oxide Semiconductor Field Effect Transistors). The transistors are the things with three lines going in/coming out of them. The inputs - A and B - are going into the Gates of the transistors. If the gate has a circle on it, that indicates a PMOS. Without a circle means NMOS. the other two inputs/outputs are the source and drain. These are the opposite way around on PMOS vs NMOS. On PMOS, the source is at the top (closer to Vdd) and the drain is at the bottom (closer to output), on NMOS this is reversed, so the source is at the bottom (closer to Vss) and drain is at the top (closer to output).

Basically, all CMOS refers to is when you combine PMOS and NMOS together so that they compliment each other; in other words, the P is always there to be the opposite of the N and vice versa - I hope that makes sense. You can just as easily implement logic as just NMOS (replacing the PMOS with a pull up resistance) or as just PMOS (replacing the NMOS with a pull down resistance). Then, in either case, it is no longer complimentary since you only have either NMOS or PMOS, not both, and I believe performance can suffer.

 

I would say an Electronics and Computer Engineering degree is absolutely worth it if this sort of thing (specifically the low level logic gates and transistor stuff) interests you. I don't regret any of it for a second. It was the best thing I ever did. If, however, you're more into the abstract ideas like software development and algorithm design etc. - and not too bothered about the complex details of hardware - then Computer Science might be a better bet. You'll get some of that software stuff (I am now a professional Software Engineer) with a course like mine (what I did was essentially 50% Computer Science and 50% Electronic Engineering), but not as much as a full on Comp Sci course.

Link to comment
Share on other sites

Link to post
Share on other sites

A brilliant book on this topic is CODE. It talks not just about the hardware but also software encoding as well.

 

Could you specify your recomendation? Who wrote it? 

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Vdd and Vss just refer to your positve and negative voltages, respectively. You could just as easily call them Vs (Source Voltage) and Gnd (Ground) it's just that Vdd and Vss are kind of the standard names when talking about FETs (Field Effect Transistors).

This is the standard way of drawing MOSFETs (Metal Oxide Semiconductor Field Effect Transistors). The transistors are the things with three lines going in/coming out of them. The inputs - A and B - are going into the Gates of the transistors. If the gate has a circle on it, that indicates a PMOS. Without a circle means NMOS. the other two inputs/outputs are the source and drain. These are the opposite way around on PMOS vs NMOS. On PMOS, the source is at the top (closer to Vdd) and the drain is at the bottom (closer to output), on NMOS this is reversed, so the source is at the bottom (closer to Vss) and drain is at the top (closer to output).

Basically, all CMOS refers to is when you combine PMOS and NMOS together so that they compliment each other; in other words, the P is always there to be the opposite of the N and vice versa - I hope that makes sense. You can just as easily implement logic as just NMOS (replacing the PMOS with a pull up resistance) or as just PMOS (replacing the NMOS with a pull down resistance). Then, in either case, it is no longer complimentary since you only have either NMOS or PMOS, not both, and I believe performance can suffer.

 

I would say an Electronics and Computer Engineering degree is absolutely worth it if this sort of thing (specifically the low level logic gates and transistor stuff) interests you. I don't regret any of it for a second. It was the best thing I ever did. If, however, you're more into the abstract ideas like software development and algorithm design etc. - and not too bothered about the complex details of hardware - then Computer Science might be a better bet. You'll get some of that software stuff (I am now a professional Software Engineer) with a course like mine (what I did was essentially 50% Computer Science and 50% Electronic Engineering), but not as much as a full on Comp Sci course.

 

Very good, thank you. 

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Watch this video.. It will show you the basics on how a CPU handles different tasks..

CPU: i7 4770k | GPU: Sapphire 290 Tri-X OC | RAM: Corsair Vengeance LP 2x8GB | MTB: GA-Z87X-UD5HCOOLER: Noctua NH-D14 | PSU: Corsair 760i | CASE: Corsair 550D | DISPLAY:  BenQ XL2420TE


Firestrike scores - Graphics: 10781 Physics: 9448 Combined: 4289


"Nvidia, Fuck you" - Linus Torvald

Link to comment
Share on other sites

Link to post
Share on other sites

Since this turned into a discussion about degrees, here's my 2¢. For computers, there are three degrees that are 'common'.

 

Software Engineering

Computer Science

Computer Engineering

 

SE teaches you how to be a good programmer in a large corporate IT setting, but you'll learn little to nothing of how the hardware itself works, so some bugs you create will take you forever to understand. Also, performance problems will be confusing to you because you'll have little to no idea how the CPU itself works. This is not true of more seasoned SEs or SEs from earlier generations, I am speaking of if you got an SE degree *today*.

 

On the other end of the spectrum is CE. CE teaches you how to build the circuits that make up a CPU, or any circuit really. You'll do a lot of playing with breadboards and resistors and learn a LOT about electricity in general. A CE degree is a bit like a degree in biology, you could go on to become a doctor, and a specialist in a field, or you could start working in industry doing a lower level, less prestigious job. Unlike a doctor, a B.S. in CE will get you a good job, whereas a degree in biology stands a higher chance of not. A degree in CE would, for example, allow you to design the circuit board of a new cell phone, or create robots, or custom light bars. You will learn some programming as a CE, but it will be in a low level language (C without OS tie-ins, assembly, etc)

 

Finally, there is CS. This is the degree I personally hold. CS is a 50/50 mix of both. You learn some of the basics of high-level software design from the SE side, and you learn how the hardware works from a theoretical level on the CE side. I took to the C programming language personally, and find great joy in writing programs to automate work for myself, but I also have enough knowledge of the hardware that I can, for example, write a little I/O generation program that can flood a multi-million dollar storage array with I/O using a single core of a quad-core Xeon processor. When i say flood, I mean the disk access times are in the 1-.5 second range...on flash drives. Yes, I was using writes. I couldn't get that kind of load doing reads. The best part? Compiled the program is 4K on disk, and about 500K in memory.

 

Why was I able to do this? Because I understand how the CPU handles interrupt requests, I understand how the compiler expands loops, and under what conditions it can and cannot unroll loops. I understand what causes context switches, and when function calls will seriously impede program flow vs not.

 

There are many more degrees that are 'computer-y', but those three are sort of the bread-and-butter of the IT world.

 

edit: yes, they are EFDs. No, the writes aren't small. The smallest write is 4K, the largest is 128K. The writes are sequential. The total write rate was about 2.4GB/s (yes bytes, not bits). The array might have been able to do more, but I only had two 10G iSCSI links to the array, and 2.4GB/s is pretty much the bandwidth limit of 2x10Gb iSCSI links.

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

×