Security Now 233
Topic: Let's Design A Computer
Recorded: January 26, 2010
Published: January 28, 2010
Security Now 233: Let's Design A Computer
To understand the advances made during 40 years of computer evolution, we need to understand computers 40 years ago. In this first installment of a new Security Now series, we design a 40 year old computer. In future weeks, we will trace the factors that shaped their design during the four decades that followed.
News & Errata
01:40 - 09:00
- This podcast is the start of a new series of episodes on how a computer works
- Leo recommends "The Elements of Computing Systems: Building a Modern Computer from First Principles" by Noam Nisan and Shimon Schocken
09:01 - 11:33
- Microsoft has admitted they knew about the flaw in internet explorer that was fixed out of cycle last week in August 2009
11:34 - 19:53
- A problem exists in the 16 bit DOS box functionality (NT Virtual Dos Machine) in Windows and has done for 17 years. It affects ALL versions of Windows from Windows 3.1 to Windows
- To disable:
- Run gpedit.msc
- Navigate to: Computer Configuration > Administrative Templates > Windows Components > Application Compatibility
- Enable "Prevent access to 16-bit applications"
19:54 - 21:28
- Adobe Shockwave Player has been updated to fix security vulnerabilities
21:29 - 25:11
- Apple disabled SSL / TLS renegotiation in the last update to prevent it from being exploited until the fix is ready to be released
25:12 - 26:08
- Steve likes the Logitech Anywhere MX mouse
26:15 - 34:58
Spinrite fixed the hard drive on a damaged Xbox 360
34:59 - 37:32
Steve and Leo mention The Lost Fleet series and The Mote in God's Eye.
Lets Design a Computer
42:00 - 45:20
- The early machines were pre-integrated circuit
- There wasn't this notion of multiple components that could be mass produced
- Before binary became the standard for use in computers people tinkered with analogue computers
- However they were easily affected by changes in temperature and fluctuations in power
45:21 - 56:14
- One of the simplest, most basic components of digital logic is called an inverter
- A resistor is a component with two wires coming out of each end that resists current
- It dissipates current in the form of heat
- This a diagram of what Steve firsts describes:
- The voltage at the junction between the two resistors will always be half the input voltage
- This is it with the resistor replaced with a switch (closed)
- This is it with the resistor replaced with a switch (open)
- A transistor is a component with three legs that works like an electronic switch
- The transistor has an input on what is called the base lead
- When you put a positive volt on the base the switch closes current flows through the base which turns it on
- A inverter is created by replacing the switch with a transistor
Inverter With Voltage Supplied to Base
Inverter With No Voltage Supplied to Base
Inverter Truth Table
- A NOR Gate is created by placing two transistors in parallel
NOR Gate With No Voltage to Either Base
NOR Gate With Voltage to One Base
NOR Gate With Voltage to Both Bases
NOR Gate Truth Table
56:15 - 58:39
- You can combine logic gates to create different types
58:40 - 01:07:52
- To store a value in memory two inverters are used in the following way:
- If we connect another inverter to the output of the first one, and then connect the output of that second inverter back into the first one, so essentially we have two inverters that are connected in a chain.
- If we have a one input going into the first inverter it gives us a zero out
- That zero goes into the second inverter, giving us a one out,
- Which we feed back into the first inverter.
- So it's stable it just sits there like that and it'll sit there forever like that.
- But if something were to briefly pull the input of that first inverter, which is a one, to zero then its output would go to one.
- So the input to the second inverter, which would now be one, it turns into a zero,
- which it feeds back into the beginning, and that will be stable.
- So whatever state these two inverters are in, they stay in.
- And that's the basis for another fundamental logical thing called a flip-flop because it flips or flops in either direction, and it stays that way.
- The way this is actually implemented is with something like a NOR gate.
- And that's the basis for a register bit.
- Now, we want to do other things like add bits together, add numbers.
- It turns out that addition of a binary number is essentially synthesizable just from these fundamental logic blocks.
- if you look at adding two bits together, if both are zero, the result is zero.
- If either one is a one, then the result is one.
- If they're both one, then the result is zero with a carry.
- And so binary math works exactly the same as, for example, the decimal base 10 math that we're used to where, for example, if you had five, you were adding five and zero, you'd get five.
- If you add five and five, you get 10, meaning that the units is zero, and we've carried a one into the tens position.
- Well, binary works the same way, where if we have two ones, the result is zero, and we carry the one into the next position.
- So it's possible to express that logic with just the gates that we've seen designed here.
- What I just described is known in logical terms as a "half adder" because it's able to take two binary bits and produce a result with a carry.
- Now, the tricky part is, the next bit over, the next highest bit, it needs to be able to add its two bits, but also accept the carry from the position to the right, the one less significant bit.
- That's a little more complex nest of logic which is called a "full adder" because it's able to take two inputs and the possibility of the carry from the prior result and incorporate that into its output and also send a carry to the next one.
- So essentially, by stacking enough of these full adders together and interconnecting them so the carry-out of one goes into the carry-in of the next, and the carry-out from that goes into the carry-in of the next, you're able to take two binary numbers; and, after this thing settles down, there's like a ripple effect.
- If you imagine that you put the two numbers in, well, the result of the first two will produce a carry that goes into the second two. And that may produce a carry that goes into the third two and so forth.
- So this carry ripples down through these full adders to produce a result.
- And then the final stage of this full adder, it produces a carry which in computers is often called the "overflow bit."
- Because the idea is, if we were adding 16-bit numbers together, the result of adding 16-bit numbers could be a 17-bit result, that is, a number that would not fit in 16 bits.
- And that's exactly the same as in decimal.
- If we're adding, like, single decimal digits, well, we know that a single digit can hold up to nine.
- So we could be adding any two decimal digits that sum up to nine.
- But if we try to add seven and seven, well, we know that that's 14. Well, that 14 won't fit in a single digit. It needs two.
- Similarly, it's possible to add two binary numbers where the result won't fit in the same size as the binary numbers, that's what happens with that final carry bit that overflows outwards.
- So that's sort of the fundamental architecture for the way bits are managed in a computer.
01:07:53 - 01:17:51
- Transistors used to be big and expensive
- So it would cost thousands of dollars to build simple computers
- A big break through was the discovery of how to interconnect the circuits
25:12 - 26:08
Go To Meeting
- GoToMeeting #3
- Ad Times: 0:41-0:54 and 38:15-41:06
- Edited by: Tony
|This area is for use by TWiT staff only. Please do not add or edit any content within this section.|