Okay, so hello everyone. I'm Pete. I'm a bachelor of electrical engineering. That doesn't really That's very much, but it's a title I can use so what the hell And as the name of this talk suggests, I know are the slides up yet. Can we get the slides? Okay, so as the title of this talk suggests in the next 50 minutes, I will Explain to you how to build a processor out of discrete transistors Now we need a little bit of a disclaimer for that. I'm compute of science in a huge field So obviously it's impossible to explain how to build a processor from transistors in 15 minutes But since we're at a hacker camp, we're gonna do it anyway So to do this the first thing that we need to know is what exactly is a transistor and If we ask Wikipedia the source of all human knowledge Then it says a transistor is a semiconductor device used to amplify or switch electronic signals and power For us, there's really three important words in the definition. There's to switch electronic signals We are working with digital signals. So we only want to switch them the amplifying and the electrical power That's really for analog design engineers, and that's a lot more complicated. So we try to stay far far away from it So There are multiple types of transistors and if we want to make digital logic Then we typically only use one and that's the MOSFET or the metal oxide semiconductor field effect transistor Which is a ridiculously complicated name Which goes back to how the device is physically constructed and how it physically operates But all that we need to know from it is that it is a device and that it has three connectors either on the physical package or on the circuit diagram that you can see on the left and That there are two main types of it The first type is an in type MOSFET and we also called as an infet and it has three pins a gate a drain and a source And what it does is very simple When you put a one or a logical high signal on the gates Then it makes a connection between the drain and the source and when you put a zero onto it Then it breaks that connection The second type of MOSFET is called a p-type MOSFET or a p-FET and it does exactly the opposite When you put the one on the gates, then it breaks the connection between the drain and the source And when you put a zero on the gates, then it makes the connection and to indicate that it does exactly the opposite We put little dots on the gates in the in the symbol so now we have this transistor so if we can switch signals with them and We have to use this in some way to make logic So we do that by making logic gates And we will discuss three the three main important logic gates during the stock But this is the end gate the or gates and the not the gates The simplest one is the not gate and it looks like this. It has one input on the left one output on the right and what it does it Inverts the signal that you put on the input. That's why we also call it an inverter So if you would put a logical high signal or a one on the input Then a zero will be on the output if you put a zero on the input then the one will be on the output And we can put it in a nice table and when we do that we call it a truth table and then We can look for a way to implement this with transistors So we can do this like this. We take truth and two transistors one p-FET one in fat We put the p-FET at the top and we connected to a logical one You put in fat at the bottom we connected to a zero Then we connect both of the gates together and we connect it to the input and we connect both of the drains together And we connected to the output So what you will see now is if we would put a one on the input Then the p-FET will be off and the input will be on so the output will be connected to zero and Every put a zero on the input, then the p-FET will be off and the input will be on so we have a one on the input This is still very simple. Also notice that we use a PFAT at the top and an INFAT at the bottom. And we do that because physically a PFAT is much better at switching once and an INFAT is much better at letting through zeros. So that is why we always keep the PFATs at the top and the INFATs at the bottom. So the next gate is the end gate. It's a bit more complicated. It has two inputs. We call it AMB. And what it does, it only makes the output one when both of these two inputs are one. And in all the other cases, it's a zero. So again, the next question is, okay, how do we make this with transistors? And the answer is this. I remember that the first time that I saw the circuit, I had no idea what I was looking at, but in fact, it's not really all the difficult. And if we look closer at it, then you see that very near the output, you have two transistors there that are arranged exactly like the node gates on the previous slide. And that means that at the input of that node gate should be the exact opposite signal as at the output of the end gate. So if we take away those two transistors, then we have a simpler circuit. And we can check that circuit and see if it does what we want. And then if it does, then we know that we have a functional end gate. So we'll do that. I took out the two transistors and I changed the true table. So now wherever there used to be zero in the output table, there's one and the other way around. And now we can check, does this, do these four transistors really do what we want them to do? And the easiest way to do that is just go over the true table line by line and check whether it matches. So for the first line, we put a zero on the A input and a zero on the B input, which means that both of the PFATs are on, both of the INFATs are off. So we see that the output is connected to one. So for the second line, we see that the APFAT is on, the A INFAT is off, and for the B, it's the other way around. So you can see now that the output is still connected to one, and that the A INFAT is blocking the zero from coming through to the output. And if we go to the next line, we see that it's exactly the other way around, but still the output is one. And only if both A and B are one, then both of the PFATs are off, and both of the INFATs are on, so our output is zero. So now we have this exactly opposite AND gate. We actually call it an AND gate or an AND gate with an N in front of it, from NOT. But if we put a NOT gate after that, then we have an AND gate. So we can do the same thing for the OR gate. We can make a truth table for that. What it does is the output is always one, except when both outputs are zero, or another way to put it is that the output is one, when either one of the outputs is one. And if we make that with transistors, we get something very similar, but only now the PFATs are connected in series, and the INFATs are connected in parallel. Okay, so now we have these three basic building blocks. We have an AND gate, an OR gate, and a NOT gate, and this is actually enough to make any logical circuit that you want. So for example, we could look at this one. We want to make a logic circuit to turn on the fan when the switch is on, and it is the warm or it is the humid. So if we wanted to make a circuit that does this, the first thing that we have to do is remove ambiguity, because this is English and it's always ambiguous. So what we do is we put in some parentheses, and we say we turn on the fan when the switch is on, and it is the warm or it is the humid. So when we want to construct this circuit, we start by constructing it from the inside out. So first we look inside of the parentheses, and then outside of them. So what we see then is in the first parentheses, it says the switch is on, but that is just a simple statement. So if we get a signal from the switch, we immediately have that. And in the second parentheses, it says it is the warm or it is the humid. So that award trigger says that we should use an OR gate, and that we should take the signal it is the warm and it is the humid, put them through an OR gate, and now at the output, we have the statement that's within the second parentheses. And then we have to end that with the other parentheses, so the switch is on. So we get this circuit, and now we have a very basic circuit that can enable our fan when it's the warm, and we want it to be on. So to be honest, this is a little bit of a silly example because, yeah, who would ever need something like that? So the next thing that we're going to look at is a bit more practical. It's about adding numbers. And to do that, it's useful to first look at how we would add numbers if we would be doing it ourselves in the decimal system and by hand. So if we want to add 27 and 15, then the first thing we would do is look at the rightmost column and add the numbers 5 and 7, and we know that's 12. So we'd write 2 below the bar, and we carry over 1 to the next column. So because of this, we call the 2 the sum and the 1 the carry because we carry it over. And then in the second step, you would add the 1, the 2, and the 1, and the result would be 42. Now, if we want to do this in a computer, then we basically have to do the same, but in binary. And luckily for us, binary is much simpler because you only have two possible values, so 0 and 1. So we can look at two binary numbers that we want to add, A and B, and then look how the carry and the sum signal should look like. When we add the 0s, then the result is just 0. When either of one of these two numbers is 1, then the result is 1. And when both of them is 1, then the result would be in binary 1, 0, or 2 in decimal. So that means that the sum is 0, and in the next column, we should put a 1. So we make the carry 1. So now we want to make a logic circuit for this. There are very structured ways to do this, but those are quite elaborate. And here we can really just eyeball it a bit. So we'll start with the easiest one. We want to find a way to make the carry signal. And if you look in the table, then you can see that the carry is only 1 when both A and B are 1. So to generate the carry signal, we can just take A and B, put them in an end gate, and then we have a carry signal. The sum is a bit more difficult because you see that it should be 1 when either A or B is 1, but not both of them. And if we go ahead and do the same thing that we did with the example of the fan, then we can find out that the circuit looks like this. So what the two end gates do is they make the signals A is 0 and B is 1, or A is 1 and B is 0. And then we order those together with the OR gates, and we output that to the sum. So this is a circuit that we use all the time because in digital logic, we add numbers all the time. So what we do is we put a box around it, and we call it the half adder. And now we can make a box that has two inputs and two outputs, and we give them a name, and then we just say it's a half adder, and we don't really care about what's inside anymore. We just know that it will follow the true table that is on this slide. So now we can add two numbers. But if we look back at this slide, then you see that in the last step, we actually have to add three numbers. You have your two original numbers, and you have the carry. So we need a way to add three numbers. And to do that, we take two half adders, and we use the first one to add the first two signals, or the first two numbers, or the original ones. Then we use the second one to add in third number, or the carry, from the previous operation. And then if you would make a truth cable, then you would see that the carry has to be one when either of two of the carries from the half adders is one. So now this circuit allows us to add three numbers. And again, this is something that we very often do. So we draw a box around it, and we call it a full adder. So now we have this full adder, and we can add three bits. But what we would actually like to do is add real numbers. So we'd want to be able to say to check how much is 3 plus 1. And for that, we can come up with this fancy circuit. And to see how it works, it's really the easiest to just do an example. So let's say that we want to add 011 and 001. So we want to add 3 and 1. What we do is we connect the signals or these numbers to the adder as on the slides. So to each one of the full adders, we connect a corresponding bit of the number that we want to add. So then we see for the first adder, we're adding 2 1s and a 0, because it's a fixed 0. It's the first number. So the result should be 2 in decimal, or 1 0 in binary. So the sum should be 0, and the carry should be 1. Then the second adder, we are again adding 2 1s and 1 0. So the output is the same. The sum is 0, and the carry is 1. And then for the last adder, we see that we have 1 and 2 0s. So the result is 1. So the sum is 1, and the carry is 0. And if we now look at the number that we have on the right side, and we read it from bottom to the top, then we have 0 1 0 0, or 4 in decimal. And that's exactly the number we were looking for. So we've already went from basic transistors to being able to add numbers. But now, if we do a calculation, it would be nice if we could store the result. So for that, we need memory. And the simplest form of memory is this. It's called a latch. And it has two inputs, reset and set, and one output, out. And what it does, when you make the reset pin high, then the output will become 0. And when you make the set pin high, then the output will become 1. And when you make both of these two pins low again, then it will remember whatever value you put in there. So let's check that. Let's say we make reset 1 and set 0. Then the output of the first OR gate is 1. So we negate that with the inverter. So the output is a 0. And then the second OR gate, the lower OR gate, also results in a 0. The inverter makes it 1 again. And we see that the circle matches. The same thing happens when we take the set pin. The set pin forces the output signal of the bottom OR gate to be 1. So the input, the output of the bottom inverter is a 0, which means that the output of the top OR gate is a 0, which means that the output of the top inverter is 1. And we see again that we have a stable circuit. So now what happens if we make both reset and set 0? Let's check that. Well, if out was already 1, then the output of the lower OR gate will be forced to 1. The output of the lower inverter will be 0. So the output of the top AND gate will be 0. So the output of the top inverter will be 1. So again, we have a stable system. We're enforcing the state that we already had. If the output would have been 0 at that time, then you see that the output of the lower OR gate is 0. So the output of the lower inverter is 1. Lower higher OR gate is 1. And the higher not gate is 0. So again, we have the stable system. So we can remember two states. Now, this is nice. But a big disadvantage of this is that whenever you would write something to set or reset, the memory circuit will immediately copy that value to its output. And initially, you might think that's nice, because then everything goes nice and fast. But this can actually give you some problems. For that, two examples. The first example is called spikes. When you look at the circuit on the screen, from what we just talked about, you would think that the output is always 0. Because you have an end gate, and you put a signal onto it, and the inverse of its signal. So whatever happens, there can never be two ones on the input of the end gate. However, these things are physical devices. So it takes some time for any gate to react on a change at its input. So let's say, for example, that a gate takes 10 seconds to update its output when the input updated. That means that if we would change our input signal to 1, at time is 0, then the not gate would see, hey, my input changed. But the end gate would also see, hey, my input changed. So the not gate will change its output from 1 to 0. But before that has happened, the end gate still sees a 1 at the output of the inverter and sees a 1 that we have just put there. So it says, hey, I see two ones. So my output should be 1. And it does that. And then only at that time, at the same time that the inverter makes its output 1, the output of the end gate makes its output 1. At the same time that the end gate makes its output 1, the inverter changes over to a 0 at the output. And the end gate notices this and says, hey, I have to go back to 0. And what you get is that in your logical signal, you have this spike. And if you would just look at it statically, then you would never expect it. But in real life, it actually happens. And when this happens in more complicated circuits, it can really make your day horrible. So a second problem could be oscillations. And the simplest form is this. You take three inverters and you make them into a little chain. And because there's three of them, this circuit has no stable state. Because if the leftmost point would be 1, then the point next to that towards the middle would be 0. The output of the second inverter would be 1, which means that the output of the last inverter would be 0. But that output is also the input of the first inverter. And we just said that was 1. But now it's 0. So what this circuit will do, it will actually constantly change every point from 0 to 1, from 0 to 1, from 0 to 1. And sometimes you want this. For example, if you want to generate the clock signal. But if this is hidden somewhere deep into your circuit, and all of a sudden your circuit starts changing randomly from 1 to 0 all of the time, then you probably won't be happy. So how do we solve this? Well, some very clever people came up with the idea of synchronous circuits. So what we do is we take our logical gates. And then after that, we put a magical clock memory circuit. And what this does is the memory circuit listens to a special signal that we call the clock. And only when that clock says, OK, now you should copy what's on your input and remember it, then it will do so. And typically, a clock signal will look like this. So it's an oscillating signal. And what we typically do is we say, whenever the clock signal goes from 0 to 1, then our memory circuit should copy the value that is at their input and place it at the output. And during all the other time in the cycle, we give the logic circuit the time to process its inputs and to let the value ripple through to the output so that it's nice and stable. So we solved the problem of spikes and oscillations. But we only solved it theoretically because we say we need this magical circuit, so now we have to build it. So how do we do that? Well, we start by taking our original latch in black. And the first step is we put two end gates on the set and reset signals and connect it to an enable signal. So this enable signal will now only if the enable signal is high, we will be able to set and reset the latch, change its state. So if we would connect this enable signal to a clock, then the latch would already or would be responsive during half of the clock cycle. So this is already better than what we initially had that it was changing all of the time. So a next thing to notice is that if you look at this point in the circuit, then you will always get the exact opposite value as it's on the output. If you would actually go through all of the states again, then you would see that it's true. So what we do is, again, we make a box. We call it a latch. So our original latch is now a box. We give it a set and a reset input. We give it a queue. That's the name for the output. And we give it a queue accent or a queue prime. And that's now the inverse output. We also put that at the interface of the box.  And we connect the enable signal to the opposite of the clock signal. So originally, when we connected it directly, we would be able to change the value of the latch only when the clock was high. Now, because we put an inverter in the clock line, we can only change it when the clock is low. OK. Next thing we would like to do is we would not have to set and reset the signal or the latch, but we just want to give it a value and say, remember that value. So we can do that by this. We take a data signal. We connect it to the set input. And we invert it and connect it to the reset input. So now if the signal is high, the latch will get a set signal. If data is low, then the latch will get a reset signal. OK. But we still have the problem that this circuit will copy the value during half of the clock cycle. So when the clock is low. So to fix that, we put exactly the same thing behind it. But we put another inverter in the clock line. So the second part of the circuit will only copy the value of the first part when the clock is high. So if we would then look at the waveform. So what I've drawn here is different signals in the circuit. And when the line is at the top, it's a logical high over 1. And when it's at the bottom, it's a 0. So the clock keeps ticking. And originally, all the signals are at 0. But then all of a sudden, at the first rising edge of the clock, so that would be, oh, oh, nope. So that would be here. Then we make the data input high. So during the first half of the next clock cycle, nothing happens, because the clock is high. And our first latch will only copy its inputs when the clock is low. But when after that, the clock goes low. Then the first latch says, OK, so I can copy my input now. And it makes its output, so point A, high. But still, the output doesn't change, because now the clock signal is low. And the second latch only copies when the clock signal is high. So when the clock goes from low to high, then the second latch will say, OK, so I can copy what was an A now and put it on my output. So in that way, we get at the point that the clock signal goes from low to high. So we have a rising edge. We actually see the value that we put at the input appearing on the output. And like this, we can make the magical clock circuit, or the magical memory circuit that we wanted. So we can use it for memory, as we did before, and just connect logic to it. But we can also do other funky things with it. For example, we can make a counter out of it, like this. And what you see here is that we have connected the inverse outputs of all of the flip-flops. Oh yeah, forgot to mention. This circuit that we had on the previous slide, we call it a flip-flop. And again, we draw a box around it, and then we have what's here, then we have three of those boxes here. So we have a data input, we have a clock input, and then we have a data output and an inverse output. So what we do now is we connect the inverted outputs to the data input. So now whenever the flip-flop receives a clock signal, so our rising edge on the clock, then it will copy what is on the inverted output to its output. So it will basically toggle. If the output was a 1, it will now be a 0. If it was a 0, it will now be a 1. And what we do then is we also connect this inverted output to the clock signal of the next flip-flop. So if we would look at the waveforms now, then we see that originally both signals, A, B, and C, so that's here, they're all 0. But when the clock has its first rising edge, then the first flip-flop sees this and says, oh, I should toggle now. So it makes its output a 1. So now A, B, and C form 1, 0, 0, or 1 in decimal. At the next rising edge of the clock, the first flip-flop again says, OK, so I should toggle now. And it was 1, so it goes to 0. But the inverted signal of this flip-flop is connected to the clock of the second flip-flop. So when the output of the flip-flop goes from 1 to 0, then the inverted output goes from 0 to 1. So the second flip-flop says, OK, I see a rising edge on my clock inputs. I should toggle now. And we see that then A becomes 0, B becomes 1, and C becomes 0. And this goes on and on. And in the next step, A and B will be 1, and C will be 0. And after that, C will be 0, and A and B will be 1, and A and B will be 0. So we see that our circuit is actually counting, 1, 2, 3, 4, 5, 6, 7, 8, and going around and around. And by adding more flip-flops, we can count to higher numbers. So by now we took our transistors. We made logic gates out of them. Then we kept adding things to it. We can now store memory. We can count. And there's actually only one thing still missing to make a processor. And that's what we call a selector. That's this little circuit. So what you see there is in the middle. We have two transistors, infet and a pfet. And we connect them in parallel because, as I mentioned earlier, a pfet is very good at switching once. And infet is good at letting through zeros. But what a selector does is you can put it on a signal line. And when you enable it, then it actually lets the signal through. And when you disable it, it stops the signal. So if you would disable the selector, so if you would make the enable pin low, then the output would not be connected to anything because both of the transistors would be off. And it's basically just the same like having a floating piece of wire. And as you can see, we put an inverter in the enable line because the pfet is enabled exactly at the opposite time as the infet. So by doing this, we can put a signal on the input and connect a bunch of things together to one bus. And we can choose which circuitry is allowed to connect to a bus. So if you would have multiple circuits writing to the same point and some put ones to the point and other put zeros, then you would have a short circuit. So by using this circuit, you can actually disconnect parts of your circuit. And now that we can do this, we can disconnect parts of the circuit. We actually have all the building blocks that we need to build a very basic simple processor. And the processor that we'll look at is the Delta 1. It's developed at Delft University of Technology. And it's really made to be super simple. So it's easy to explain. But still, it's a real processor. So it's true and complete. And it can make any calculation you would like. So this is how it looks like. And to step through it, all of these blocks are actually quite simple. So you can see that this entire design is based around this big horizontal line, which we call the data bus. And the data bus is a way that we use to allow data to move from one part of the system to another. So one part of the system can write the value to the data bus, and then another part can listen to it. And then connected to the data bus, in the left top corner, we have this, the program counter. This is a counter that keeps track of where in the program that we're executing we are. So when you have a program, whether it's in C, Python, or assembly, you always have lines, and you just do it step by step. And sequentially, you execute every operation. So this counter keeps track from where we are. Then next to that, we have a ROM. And what that does is it stores the operations that we have.  And we say, when the counter is at that value, then it will put this value on the address lines. And then making a truth table, you can say, OK. So when this value is on the input lines, then we should show disinstruction on the output. And then similarly to what we did before, you can make a logic circuit that does that. That will always show this value at the output when you give a certain address at the input. And it's a lot more complicated than what we did before. But like I said, you have systematic methods to do this. And these days, we usually just let a computer do it. So your ROM gets a value from the program counter. And on the output, it gives the current instruction or the current step that your processor should perform. It gives this value to the instruction decoder, which looks at the instruction and then figures out, based on the instruction, what the different parts of the microprocessor should do. And how this works exactly, we will see in a couple of slides. But for now, we can just assume that it can take in an instruction and then figure out how the other blocks should behave. Then we see from the instructor, we have this block that connects to the data bus. And this is a block of selectors that we had previously. So this block allows us to connect or disconnect the instruction decoder to the data bus. So for example, if you would have an instruction that says add 5 to the number you already had, then you can use the instruction decoder. We'll take that value 5 out of the instruction because that's a constant. And then it will put it on the data bus. So somewhere else in the processor, something can read. OK, so I should add this value to that number. And you see that there's a little bar through the line with an 8 next to it. And that means that instead of having one signal flowing there, we actually have 8. So we want to operate on bytes and not bits. So we just put 8 bits in parallel. And not to clutter or drawing too much, we just draw this one line and we say that's 8 lines. So then here we have registers that we can use to store things. And what the register is, it's a bunch of flip flops next to each other. So as we said, most of these lines are 8 bits wide. So that means that if you want to store a value, you don't have to store one value, but you have to store 8. So you put 8 flip flops next to each other, and then you can do that. So here we have a bunch of registers that are also connected through the data bus. So they can read the value from the data bus. And then through the selectors, they're also connected to the data bus. So they can also put a value on the data bus. And then next to that we have input and outputs registers. And these are very similar to the original registers. But instead of putting their own value back onto the data bus, now they have signals going out and into the processor. So what you could do is you could, for example, connect LEDs to the outputs. And then you could see what value the processor stored to that register. And you can also add switches to the microprocessor so that you can dial in the number and then read from those switches and put that value on the data bus. And then we have the actual calculation unit of the microprocessor here. We call it the ALU, or the Arithmetic Logic Unit. And this is what actually does all of the additions and logical operations. So you can see that there is a line going from the instruction decoder to the ALU that tells the ALU, OK, now you have to do an addition or you have to do an end operation. And then the ALU is also connected to the data bus. So it can read the number that we put on there. For example, if we want to add five, then we put five on the data bus. And the ALU can read that from the data bus again. And it also has this special register here, A, which stands for accumulator, that stores the value or that can store the value that is output by the accumulator and also feeds it back. And then we also, again, have the possibility of putting the value of the accumulator back onto the data bus. So in order to control all this, we have a bunch of control signals. So what you saw now are really signals that have the values that we're actually calculating with it. So that's why we call it the data path, because the actual data is on there. Then we also have a bunch of other signals shown in red here, which are control signals. And these are generated by the instruction decoder, and they tell all of the other blocks how they should behave. So for example, they tell which of the buffers should be on, so which components are allowed to write their value to the data bus. So now, how can we do operations with this? I have a couple of examples. For example, load a number. So what this operation does is it loads a certain number that is fixed in the instruction into the accumulator. So when the instruction decoder sees this instruction, it will know that at the fixed place in the instruction is the number that we actually want to load into the accumulator. So it will put it on the data bus, so the instruction buffer output enable signal will be high. And then it will tell the ALU, copy the value of the data bus into the accumulator, and it will tell the accumulator, store value that is given by the ALU now. So and then when the clock has the next rising edge, then the accumulator will copy the value that is given by the ALU, and we will now have stored it there. Second possible instruction is load the value from a certain register. So here, instead of letting the instruction decoder write the value on the data bus, we actually load the value that is in one of the registers and put it on the data bus, and then the ALU does exactly the same. So the data bus always has one person writing or one thing writing to it and one thing listening. We could also store a value to the data bus. For example, we have done some calculations, and we have a useful number in the accumulator. We can connect the accumulator to the data bus and then tell a register to store the value that's now on the data bus. And then we can also do actual math. So we can have an instruction that says add the number 5 to whatever is currently in the accumulator. So the instruction decoder will put the number 5 on the data bus and tell the ALU, take the value from your accumulator, and add the number 5 to it, and then tell the accumulator to, again, store the value that is given by the ALU. So by the next log cycle, the value in the accumulator will have been increased by 5 or whatever number you put on there. And then a last type of instruction is a jump instruction. And this is a totally different class of instructions than what we saw before because this actually allows you to change the program counter. For example, if in your code you would have an if statement or a loop, then you have to be able to make jumps in your program. And that's what this instruction does. And what it does, it says take whatever value that I give you in the instruction and put that value into the program counter. So instead of increasing the program counter by 1, the next log cycle, go to that value that I give you now. And so that's just an overview of how these things work. And this is a full set of instructions that work on or that the delta 1 uses. So you see, oh yeah, I forgot to mention this. If you look at the ALU, then you see that it has a C and a Z next to it. Those are flags. And what they do is the C flag will be 1 when the last addition you had done created the carry. So it will remember that, like the last number that you have created or that I have put in the accumulators actually 1 to little because I had a carry at the end. And then we have a Z. And that says the last logic operation you did resulted in 0. And we can use that to do checks in our program. So when we look back at this instruction set, we can set and clear the C flag so that we are sure that it's in a certain state when we start something.  So we have load a fixed number, load a register, store to a register, add a fixed number to the ALU, store a fixed number in the ALU in the accumulator, and then do an XOR operation. What an XOR operation does, it looks at two numbers. And when either one of them is 1, but not both of them, then it will output a 1. So we have that operation that we can do. And then we have end operations that we can do again with a fixed number or with a register. So those are the mathematical operations.  So we can jump to a fixed number. We can jump to a number that is stored in a register. We can do BZ, so that's a branch based on the Z flag. So what we do there is we check the Z flag in the ALU. And we say, if that Z flag is 0, then we want to make a jump. And the same for BC, but there we look to the C flag. And what that allows you to do is check whether a value or whether a number has certain properties. So isn't number 0 or isn't number negative. You can do things with that. And then the last step is the instruction decoding. So until now, our instruction decoder has been a magical box. But it's actually also not all that difficult. So what you do is every instruction, every type of instruction, you give it an opcode that uniquely identifies that type of instruction. So we say, whenever we want to load a constant, then we give it the opcode 0011. And then we make place for an operand. So for example, the constant or the number of the register that you want to read or write to. And then you just go over all the control signals in your processor. And you say, OK, when we do this operation, then this control signal should be 1 or 0. And then again, this is basically a true table. And you can synthesize a logic circuit from this. Or you can let your computer synthesize a logic circuit from this. And that's basically all there is to it. So this processor that we just talked about, we actually implemented it. So then it looks like this. And you can see the different parts that we talked about. So like the repetitive structure on the left here, these are registers. Then what you see here at the top, this is the instruction decoder. Then I think here you have the ALU. And we also made this. So then it looks like this. And every line that you see, or if you can really see the individual transistors here. So they're just connected, as we would connect them with our logic gates. And this design, so this very simple processor, it uses about 16,000 transistors, which is, in today's terms, is basically peanuts. But it's also very simple. And what the stock should really tell you is that even though it has 16,000 transistors, none of it is actually really complicated. Because just like in software engineering, we just take something very simple and then we abstract it into a box and then we add a little bit to it. And we keep on doing that. And in that way, every step of the way is actually really not that complicated. And just by doing this abstraction, you keep the possibility of designing really complex things from basic systems, which you would never be able to do if you would have to think about how to wire each of these 16,000 transistors by hand. So yeah, that was it. That was how you build a processor from discrete transistors. So yeah, I had some bonus slides. But oh, yeah, all I wanted to say is, thanks. And if you're interested, you can always contact me. Thank you.


Oh, too far away. I will be presenting two related concepts today, convolution and the Fourier transform. And rather than diving into the equations, my goal is to just give a quick, graphical explanation of each of them, which has been helped greatly by Alice in already taking care of the Fourier transform, and then show how I've used them in my own research, and then show other applications that might be of use in your own projects. And if you have not seen this stuff before, my goal is for you to get a little bit of intuition about what types of things these tools are really useful for, so you will recognize when it's time to go look up all the gory details required to actually use them. And if you have seen this stuff before, my goal is simply to entertain you with what I consider to be a mind-blowingly cool application of electrical engineering. I'm a geophysicist, and my research group uses airborne ice penetrating radar to study Antarctica. So how does this work? As we fly above the ice sheet, we use an old World War II era DC3, a lot of fun, and the radar transmits a pulse of energy, and then listens to the reflected signal. And we can plot the resulting energy received to the airplane like this, where the y-axis is a time-sensitive transmission, which corresponds to the distance underneath the airplane, and the x-axis is the strength of the field at that time. And so this peak here corresponds to the air-ice interface. All of these wiggles are layers within the ice, as the chemical composition changes and causes reflections. And then this littler peak at the bottom is the ice-rock interface. And as the airplane flies along, the radar pulses at 6,000 times a second. And we can combine all of those pulses into an image like this, which you can think of as a two-dimensional cross-section of the ice sheet. Each column in the image corresponds to a, the record from a single pulse of energy, like I plotted on the previous slide, just in grayscale now. And again, this top bright line is the surface. The brighter reflection at the bottom is the ice-rock interface. And then since ice is almost transparent to radar energy, we can easily see through several kilometers. I think our record last season was like 4.8 kilometers, and I think we've gotten higher than that before. Okay, back to the math. I'm gonna start with cross-correlation, which is a mathematical operation that acts on two functions. And for this demo, I'm just gonna be using super simple F and G. And I think of cross-correlation as finding how similar these two functions are and the displacement at which they are best aligned.  The area underneath their product is just defined to be the cross-correlation at that point, where the point is how far you've displaced or slid G along. And yes, it can be negative, just indicating that they're anti-correlated. Okay, so quick disambiguation. This is the equation for the operation we just did. I've drawn a new function that's not symmetric. You'll also hear about convolution, which is this. The only difference between correlation and convolution is that minus sign, which all that means is you just need to mirror H before you slide it along G. That's it. Okay, going back to the radar, how would we use this? Our early ice penetrating radars transmitted a square pulse, which might be a couple hundred nanoseconds long over a 60 megahertz carrier frequency. But a problem with a pulse shape like this is that it's hard to find the exact center of the reflected pulse because the energy envelope is just a rectangle. And you want this exact center because you want to know where the surface is to more detail than tens of meters. So you might think that you could just try correlating the transmitted pulse shape with the pulse that was recorded back at the airplane and then the exact displacement which you get the maximum cross correlation is the surface. However, with this shape of a pulse, it leads to a fairly broad peak. That diamond isn't really what we want. So instead, we transmit a chirp signal. Starts at a low frequency, ramping up to a higher one. If you self-correlate a chirp, you get a much narrower peak with the same peak power. So we've maintained our penetration ability to the ice, but you have much better vertical resolution. And so rather than tens of meters, we can see features that are about three meters apart. Cool, okay. Another application of convolution would be code division multiple access, which is a technique that's used for GPS satellites, cell phone signals, et cetera. The goal is to be able to have a bunch of different devices all transmitting on the same frequency band, but then for me to be able to say, I want the signal just from that satellite. And it's all it is, is convolving the code for the satellite with the data from everybody and the data from that satellite pops right back out. And sorry, I couldn't come up with a fast image for that one. Cross correlation is also useful in image processing. It's the same idea, but rather than sliding a 1D function across another 1D function, you slide a 2D image across the 2D image along every row. So a common operation might be to do correlation or convolution with a Gaussian in order to blur or smooth the image. And this is a common pre-processing step for other pipelines or to help beat down some noise. It's also used for feature extraction in here. I have two features corresponding to vertical and horizontal edges in the image. And as you can see it nicely picks out the edges in the recurse center logo. A bunch of image processing applications will use a much richer feature set and then try to do classification on it. Okay, so that's it for correlation for now. So what's a Fourier transform? And I think of a Fourier transform as a way to express an arbitrary function at the sum of sinusoids. This is the exact same idea as the discrete cosine transformation from Alice's talk. The differences between them are some of those gory details I promised to leave out. And they really don't matter for the picture you need to have in your head. So usually the example is a square wave and I'm so sick of that. So let's just look at the bedrock surface and wait our data, which a little more interesting. And just like Alison did, as we add more and more frequencies to our summation the resulting signal gets closer and closer and closer to the original data. And as you can see this converged remarkably quickly. Heck, n equals 50 was pretty good for a signal that had over 4,000 points in it. And as Alison showed, this immediately goes into compression. And that's all I'm gonna say there. Instead, I wanna spend more time on the frequency spectrum because that's a more common way for electrical engineers to talk. They'll be talking frequency space spanned with yada, yada, yada. So rather than drawing out the sinusoids you can represent a Fourier transform in terms of the magnitude and the phase of each frequency component. And note that for the magnitude I've drawn it on a log plot. So all of these over here are actually really small numbers. And so from this you can see that the higher frequency components of the Fourier transform of the data that I took this transform of aren't very important. Almost all of the information is in these lower ones, which is just another way of saying that we can throw those away without losing much detail. So I've used the frequency spectrum as a way to characterize and remove noise recently and processing pipeline for our radar receiver electronics. Sorry, I totally mingled that. There's noise due to our radar receiver electronics and it's possible to remove it after characterizing it with the Fourier transform. So this is an image of the raw, almost unprocessed data that shows the noise well. And yes, you can see the lines up there. All these horizontal lines are way too regular to be anything that we care about. These are electronic noise. There's not something in the environment. And this was a problem because this stuff is obscuring the dimmest echoes. And if we can get rid of it, we gain about 10 decibels of signal to noise ratio at the very deepest dimmest spots. So previously, my group had found a way to remove it that added these artifacts, drove me crazy. And I had just taken a digital signal processing class and said, we can do better than this. So going back to the raw data, let's consider the Fourier transform of the region between the dotted lines. Looks like this. And here again, we're plotting it in frequency space. So there's a big peak around zero megahertz, which is just the constant offset. And then there's those humps centered around 10 megahertz. And these correspond to the frequencies that we are transmitting. So this looks like you'd expect. There's no clear outliers, sadly. So instead, let's go back and look at a region that only contains noise, no signal in it. Yep, horizontal lines. Fourier transform of this is way more informative. You have these sharp peaks at 10 megahertz and everything else is much weaker. Great, so now we know the amplitude and the phase of the sinusoid that corresponds to this noise, which means that we can take the Fourier transform of our data, subtract out that amplitude and phase from the single sinusoid that it belongs to, do the inverse Fourier transform, and get data without the noise. And the resulting image looks like this. Makes me a lot happier to not have those obnoxious artifacts. Okay, so why did I choose to pair these two topics? If you go by the definition of convolution with that sum that I didn't really talk about, computing it is O of n squared, because each step you're multiplying every cell with every cell. However, the convolution theorem tells us that the Fourier transform of f convolved with g is equal to the Fourier transform of f times the Fourier transform of g. So if you can efficiently calculate the forward and inverse Fourier transforms, you can efficiently calculate the convolution. And back in 1965, an algorithm was discovered, or invented depending on the philosophical view, about how to calculate a discrete Fourier transform and n log n. This is great, n squared to n log n. And so combined with the convolution theorem, this makes a whole class of solutions computationally feasible. So all the image processing, signal processing that I talked about in the first half of this talk was made as computationally feasible thanks to the convolution theorem and the Fourier transform. Thank you, I will leave you with penguins.


I'm the Whistler, and I know many things, for I walk by night. I know many strange tales, hidden in the hearts of men and women who have stepped into the shadows. Yes, I know the nameless terrors of which they dare not speak. Tonight transcribed as the Whistler's strange story, Seven Steps to Murder. Clayton Affair was unusual for two reasons. In the first place, of course, it involved a pair of famous newspaper men, Archer Atkins, the Dean of New York Drama Critics, and Everett Clayton, the syndicated columns. But more than that, it was interesting in its structure. Yes, there were seven distinct steps between an apparently cordial relationship and a murder. The opening night of Clayton's first play, The World Wind, was step number one. Atkins had attended, of course, with the rest of the critics, and shortly after the final curtain, had walked across the street to the offices of the New York Globe, with Merchison, his editor, to meet the newspaper's deadline. Everett Clayton's new play, The World Wind, opened last night at the Brighton Theatre with Diana Brooks and Paul Strand in the leading role. Finish it, Atkins. Oh, well, Merchison, I want to see what you did to Clayton's play. I thought it was great. Oh, did you? Here's what I thought. Everett Clayton's new play, The World Wind, is dullness itself. It's utterly lacking in originality, imagination, or even ordinary playability. The death rattle was audible before the first act was five minutes old. Blessing Atkins, you can. Oh, why can't I?  You came from Texas together. You were even engaged to his sister. He's your best friend. Art knows no friendship.  You're jealous because Clayton's invading the drama. You're sacred territory. If that's true, you should fire me. Too bad I'm too influential, huh?  Your review of Everett Clayton's play was step number two. The next day, you see Clayton in the coffee shop of the Stratford Club where both of you live. He walks over to your boot, his face tense and expressionless. The paper folded in his pocket. Well, Everett, good to see you sit down. Thank you. Waiter. Yes, sir? Coffee, please. Yes, sir. Two. No coffee for me. Milk. Yes? Your stomach again? I'm getting worse, I'm afraid. But that's not why I came, is it, Archer? I suppose not. That review, Archer. Nice of you. You're not a playwright, Everett. You, uh, you at least saw the play, I presume. Of course. An author spends a year writing a play and that's the consideration he gets. Any of your money, any? Everything I've got. Oh, too bad. Why didn't you consult me before? Let me read it. Because I knew what I'd get. Sarcasm, smart cracks, not one bit of constructive criticism. There is a small item you've forgotten. Talent. No one has yet succeeded in drawing milk from an elephant. Nor kindness from a critic. If you wanted charity, you should have said so. You want me to go over it scene by scene and show you how bad it is? No, because you couldn't. That's the trouble, you know. The people don't decide what's good or bad anymore. They wait for the critics to tell them.  But I also know you're a fake.  If the rober boys in Switzerland had Edgar Allan Poe's name on it, you'd call it great. No, easy, old boy. You're getting carried away. You're picked on the wrong guy, Archer.  Just do me a favor, Atkins. Check my column tomorrow. It'll interest you. In just a minute, the whistler will continue tonight's story. All of us are proud of our hometowns and rightly so. In this brief moment before we continue with our program, we'd like to offer a salute to one of our hometowns in America, Los Angeles, California. In area, this is the largest city in the world, stretching more than 40 miles from the ocean to the 5,000-foot level in the mountains. And it all started from a tiny Mexican Pueblo. In the year 1781, the Mexican provincial governor, Felipe de Neve, founded El Pueblo de Nuestra Signora Riana de Los Angeles, meaning the village of Our Lady, the Queen of the Angels. This Pueblo became the capital of a Mexican province, and it was the last place to surrender to the United States in the war with Mexico. Los Angeles today is the largest in population of any city in the West, and according to the 1950 census, the fourth largest in the nation. In the 10 years between 1940 and 50, the city increased by 31%, and still it continues to grow, to absorb the people who are making their permanent homes in the Los Angeles area. Many things have contributed to this phenomenal growth, the exceptional all-year climate, the development of the citrus fruit industry, the discovery of vast oil fields, the development of a man-made harbor handles more shipping than Boston or San Francisco, big enough to hold the entire United States Navy, and of course the motion picture industry that produces two-thirds of all motion pictures in the world. But industries of all sorts have prospered in Los Angeles. More cars are made here than any place except Detroit, more tires than any place except Akron, Ohio, more furniture than grand rapids, more sport clothes, oil equipment, more processed food and more aircraft than any place in the world. Just to give you an idea of how Los Angeles is able to provide room for all these industries and people, this city is bigger than the states of Rhode Island and Delaware combined. It has been a rapid growth from a tiny Mexican Pueblo to the world's largest city and area, and Los Angeles intends to continue its progress. The people who call it their hometown are proud of the part it has played in the building of America. And now back to the Whistler. Although you didn't know it at the time, the case that was soon to become famous as the Atkins Clayton Affair fell neatly into seven parts, seven steps to murder. Clayton's play, of course, was the first step, and the scathing review that appeared in the globe the next day over your signature was the second. But when you arrive at your office the next day, Merchants and the editor is sitting on your desk waiting for you, the afternoon addition of the ledger in his hand. Hello, Merchants. Did you read Clayton's column? I did not. Lead paragraph. Listen. I am now reconciled to the fact that my play, The Whirlwind, will close in a matter of days as a result of the efforts of a group of critics headed by Archer Atkins. As a matter of fact, Atkins is not equipped to set himself up as a critic or even a writer. He has no conception of literature, dramatic, poetic, or otherwise. And I intend to prove it. Well, amusing, but not very. You started all of this, Atkins. I think you should apologize. I'm going to be quite busy, Merchants, and I'm sure there are a few obituaries that require your keen intelligence. I hope Clayton gives you a... sock and a jaw. That's step number three, Archer. The public challenge that went out to 20 million reasons. You decide it's ridiculous, of course, and forget about it. The play lasts five days and closes. Then one evening, some weeks later, Barbara Ross, the fashion editor on the ledger, walks up to you in the lobby and taps you on the shoulder. Archer, darling. Good evening, my dear. Archer, I found something I thought you'd want a glance at. Why, did Clayton put me in print again? Nothing like that. Somebody hadn't made his book of poetry. It was printed privately, only 50 copies. Well, let me see, eh? Fourteen by Jaffa Ahmed. What's it about? Oh, I think it's lovely. It's written by an immigrant boy about his love for a little girl. Oh, no, thank you. Oh, but art. Poetry, darling, is as much a part of adolescence as the first shave, and just about as important. But it's really quite good. The boy seems to have an excellent sense of meter and a good deal of insight, too. Archer, you know so much more about poetry than anyone else I know. All right, dear. I'll look it over. Number four, the book of poetry. Nothing to it, of course, is there, Archer? But you take it home and toss it on the nightstand. And just before you decide to turn out the light, you pick it up and glance at the first page. Aren't you from the start? There's something about the poems that haunt you, almost as if you've read them before. Memories, things you've forgotten completely, spring to life. Yes. This boy has managed to capture something out of every man's youth. Something that gets under your skin and stays there.   You've got to get it on paper now. Although the poems are immature, there's something great and universal about this work. The volume has been printed privately, but in my opinion, it would be a wise investment for any publisher to issue it in quantity. Fourteen by Jarpa Ahmed should never be forgotten. That ought to do it. It'll be on the bestseller list in a month. In the morning, you hand your article to a copy boy. You're aware, of course, that you've just completed step number five.  It's just 24 hours later when the same boy walks into your office, places a newspaper on your desk. Step number six. Here's your copy of the letter, Mr. Ahmed. No, no. Round town with every play. Oh, here we are. I promised to reveal Archer Atkins, the so-called dean of literary critics, as a phoné. Today I call attention to the raves he's been giving the book of poems called Fourteen. Supposedly written by a 14-year-old Iranian lad. The fact is, gentle readers, I wrote Fourteen. What is she? Shocking, eh, Archer? Oh, well, I'll notice I didn't see you. That's all right. You needn't hide that. Some of our best people read ever at Clayton, including the publishers of this paper. It's trash, just trash. And lies, too, I suppose. Well, Clayton never wrote Fourteen. He hasn't got enough sense. Seems to know a lot about it, Archer. Read on. He tells just how he did it. He had no knowledge of poetry. He says, just threw together the lushest and most senseless adjectives he could concoct. Had the whole mess printed up on the quiet. You, the great Archer Atkins, praised it to the skies. Are you trying to tell me that you believe this nonsense? Well, the man's got readers, Archer. 20 million of them, so calm down. Don't tell me to calm down. As a matter of fact, why don't you get out of here? Look at me at that typewriter. I'll teach Clayton his place. Not at a globe, you would. And why not? I talked to the publishers who want your resignation by the end of the month. From now on, I'm editing your material, and I don't intend to have any libel suits on my hands. Not even to save the great name of Archer Atkins. Good day. Well, for once I've had the last word. The turn you never expected. And it's even worse when you reach the Stratford Club and learn that you've suddenly been turned into a laughing stock. What, you old boy, how could you? What was it now? I still feel the music, the poignant expression of an adolescent love. Sweetly agonizing emotions, part of every man viewed. I'm not about applying this cane on your skull, my dear Handler. Gentlemen, gentlemen, you hear? The great Atkins is no longer capable of using his cutting tongue. He must now resort to a cane. This thing has got you, hasn't it, Archer? And it hurts deep, twisting inside you until finally the seventh step begins to take shape. The seventh and final step. Murder. The frightening thought, isn't it, Archer? Frightening but very clear. It's all there in your mind as you ride up to your luxurious suite in the elevator. Everett Clayton is a man of habits. One of them forced upon him by his health. You know all about that, Archer. How each evening at seven a waiter brings a large glass of milk into his apartment.  Tonight, that same waiter must bring you something as well. Hello. Hello, coffee shop. It's Mr. Atkins. I wonder if you'd send me up something, huh? No, I don't know. Something light, a chicken sandwich, perhaps? Oh, no, no, hurry. Well said, you have a waiter coming to Mr. Clayton's rooms at seven. Must time enough, surely. Don't make a special trip. Thank you. Yes, sir? You have a sandwich and coffee for me? Oh, yes, sir. But I was going to stop first at Mr. Clayton. Yes, well, come in a moment. I'll set it down there in the desk, will you? And I wonder if you'd do something for me. I tried to unlock a suitcase a moment ago, but I couldn't seem to turn the key. Would you have a look at it, please? Why, certainly, sir. Where is it? In the bedroom. Of course, if it's too much trouble. Not at all, sir. I have handled a lot of things. You hesitate as the waiter starts across to the bedroom. Then you turn quickly to the tray he set down on your desk. Before he comes back, you empty the contents of a small envelope into the milk intended for Clayton. You stir it hastily, and then return to your book. Well, I got it open for you, sir. That lock is sprung a little bit, though. Oh, well, I'll have to have it attended to. Here you go. Thanks for your trouble. Not at all, sir. Thank you very much. Well, thank you. You settle back in your chair now, giving the waiter time to deliver the glass of milk to Clayton. A few minutes later, you slip out into the corridor and down the hall. Stop outside of Clayton's door and listen. He's talking to someone on the telephone. Yes, yes. I got your letter. Well, what did you expect me to do? All right. I promise I'll see you about the first thing tomorrow. Yes, yes. I promise. Goodbye. You wait tensily after Clayton hangs up, hoping no one will come along the hall and find you standing there. A moment's dragged by. What is he doing? Isn't he ever going to pick up that glass? And then a moment later, you whip the door open, step inside, and lock it. A glance at Clayton's body sprawled on the floor assures you that he's dead. Quickly, you cross the room and sit down at his battered, portable typewriter. To my dear mother, comma, my sister, comma, and gentle readers, colon. It isn't often that a man gets the opportunity to write his own obituary. Believe me, comma, this isn't easy. Comma, but I've been ill for some ten years now. You type rapidly, Archer, because you know exactly what you want Clayton's suicide note to say. It includes above all else a confession, one in which the dead Everett Clayton will admit to the world that he perpetrated a deliberate hoax against you. His note tells how he lied in claiming to have written the verses in the book 14. How, actually, he simply dug up a number of anonymous ballads and revised them a bit. You put it all down, Archer, your way, but in Everett Clayton's style. And then you add his well-known signature, just the two simple typewritten letters. Yee-haw! See. Thanks, my dear Everett.  Use you saffie, for example. About how many standard varieties of domestic chickens would you say there were? Fifty? No, that's only half-right. Brush up on your poultry farming. Tell your I and E officer you want to study with the United States Armed Forces Institute. Use saffie. It's easy. It's simple. If you don't want to be half-right, use you saffie. And now back to the whistler. Well, the seven steps are past now, Archer. Everett Clayton is dead. But more important than that, the suicide note in his typewriter will put you back at the top of the heap. Yes. Merchison, your publisher's handling. And the whole literary world will have to admit who has the right to wear the critic's crown. But you're very practical about it, aren't you? The police will come, of course, and you're ready for them. With that vague, superior, confident air it has always carried you through before. And why not? What can they possibly prove? You don't seem at all surprised at the police calling on you, Mr. Atkinson. Oh, my dear Captain Foss, the moment the manager of this club informed me of Clayton's demise, I resigned myself to a round of dull questions. Naturally.  Anything else you want to know? I was an incubator baby, weighed three pounds, two-and-one-third ounces. I'm surprised you aren't more interested in the way Clayton died. I like to believe, people, Captain. When I'm told someone is dead, I assume he's dead. Whether he was shot through the head with a cannon threw himself into Mount Vesuvius or was clubbed to death with the missing arm of Venus de Milo doesn't concern me in the least. Poison is more to your liking, isn't it? I don't know what you're trying to imply. Let's make it clear then. How long did it take you to write that note? Note, Captain. The suicide note in Clayton's typewriter. Oh, do tell, in verse, no doubt. It says Clayton never wrote those poems that he stole them from some anonymous ballads. Well, I insisted on that all the time. We'd like you to hold that edit. You wrote that note, Atkins. You poisoned Clayton and ran the note off on his typewriter. That story.  Take a look at these papers, Atkins. Ever seen them before? They're yellow. They're very old out there. They're poems you wrote to Everett Clayton's sister when you were 14, over 40 years ago. What? That book of poetry you reviewed was not written by Jaffar Ahmed or Everett Clayton, but by Archer Atkins. I'll review it, my old poetry. So it wasn't suicide, you see? No, wait a minute. He still did it. It was a malicious trick. Now listen, Captain. It wasn't suicide, Atkins. Because Clayton's sister blew up when she read what he did with those poems after she sent them to him. She phoned him last night. He was talking to his sister. She made him promise a public retraction. Clayton was going to see you about it in the morning. Now, a question. Do you know the name of what is considered to be the first American ship? In 1798, a newspaper advertisement in Salem, Massachusetts asked for assistance in the building of the Essex. The ad requested that every man in possession of a white oak tree should bring it with him when he came to Salem. In January 1799, there was enough lumber to start construction, and by October of that year the 32-gone Essex was launched. It was a completely sea-worthy ship and saw heavy duty, although 720 days were spent building her. This is but one of many interesting facts which can be found in the history of your United States Navy. Featured in tonight's transcribed story were Bill Foreman as the Whistler, Hans Conreed, Olin Suley, Jack Moyles, Charlotte Lawrence, Vic Perrin, and Jack Carroll. The Whistler, directed by Gordon T. Hughes with music by Wilbur Hatch, is produced by Joel Balone and transmitted overseas by the Armed Forces Radio Service. This evening's story was by Meyer Dolinski. The Whistler was entirely fictional, and all characters portrayed on the Whistler are also fictional. Any similarities of names or resemblances to persons living or dead is purely coincidental. This is George Wolf speaking and reminding you to listen again next week for another strange tale by the Whistler.


Hello and welcome to the session. In this session we discuss the following question which says construct a triangle ABC in which BC is equal to 6.5 centimeters, AB is equal to 4.5 centimeters and angle ABC is equal to 60 degrees. Construct a triangle similar to this triangle whose sides are 3 fourth of the corresponding sides of the triangle ABC. Let's proceed with the solution now. We'll do the construction step by step. First of all we'll construct the triangle ABC. So our first step of construction would be draw a line segment AB equal to 3.5 centimeters. This is the line segment AB of length 4.5 centimeters. Now in the question we are given that angle ABC is equal to 60 degrees. So in the next step we make angle ABY equal to 60 degrees at the point B. So this is angle ABY equal to 60 degrees. Now next we have BC is of measure 6.5 centimeters. Then in the next step with B as the center and radius 6.5 centimeters draw an arc on the ray BY. So we have drawn this arc taking B as the center and radius equal to 6.5 centimeters. Let this point of intersection of the arc and ray BY be point C. So we have got this BC equal to 6.5 centimeters. Now next step would be join AC. So we have joined AC and in joining AC we obtain the triangle ABC. So thus we obtain triangle ABC in which we have AB equal to 4.5 centimeters. BC equal to 6.5 centimeters and angle ABC is equal to 60 degrees. Now next we need to construct a triangle similar to the triangle ABC whose sides are three fourth of the corresponding sides of the triangle ABC. Now next step is construct an acute angle Bax at A on the opposite side of vertex of triangle ABC. So we have constructed this acute angle Bax. Now since we need to construct a triangle similar to the triangle ABC with sides three fourth of the corresponding sides of triangle ABC. Now out of 3 and 4 in this fraction 3 upon 4, 4 is greater than 3. So in the next step we have locate four points A1, A2, A3, A4 on AX. So that we have A1 is equal to A1, A2 is equal to A2, A3 is equal to A3, A4. So here we have the points A1, A2, A3 and A4 such that A A1 is equal to A1, A2 is equal to A2, A3 is equal to A3, A4. Next we join A4B, so we have joined A4B. Now in the next step we have draw a line through A3 since 3 is smaller of the 2, 3 and 4. So we will take A3 and through the point A3 we will draw a line parallel to A4B so we have drawn a line through A3 which is parallel to A4B. This line through A3 intersects AB at point B dash so we have A3B dash is parallel to A4B. Then in the next step we draw a line through B dash parallel to BC. So through B dash we have drawn a line parallel to BC such that this line intersects AC at point C dash. So we have B dash C dash is parallel to BC. So this triangle AB dash C dash is the required triangle. Thus we have triangle AB dash C dash is the required triangle. Thus we have AC dash upon AC is equal to AB dash upon AB is equal to B dash C dash upon BC is equal to 3 upon 4. So this completes our construction. Hope you have understood the solution of this question.


Welcome back. Thanks for staying with us. Israeli technology firm NSO developed a new system to help detect the flight of unauthorized commercial drones. More in this report. Detect, identify, control, and ultimately secure. This is the essence of the new Eclipse anti-drone system developed by the Israeli company NSO, a sort of spider web that links the world of surveillance with those of cybernetics. In order to protect a football stadium, a center of electricity, there's no solution today that can possibly detect this drone in an urban environment. There are no solutions today that allow protection of drones that could be malicious. The emphasis here is security in an urban environment, how to protect an event, a football match for example, or VIP personalities from an enemy from the sky. According to these engineers, Eclipse would be able to counter a simultaneous attack on several dozen mini drones. In practice, this is how it works. Once the no-fly zone has been defined. What you see here in yellow is the drone. It has been detected. We can see it here in red. We see its altitude as well as its speed and flight time. We see the routes flying in from a GPS point of view, which allows the clips to know permanently where the drone is located in the air. We also see the position of the drone's pilot. A scan of the area is performed continuously 24-7. It is mainly automated and does not depend on a network. So, no chance of being hacked and hijacked by counter-hackers. The advantage here of Eclipse, which is based on cyber capacities, is that there is no interference between the networks and telecommunication. In a time when COVID-19 has forced most borders to close, it is almost impossible for a geodist to infiltrate into enemy territory and strike. It could be simpler than buying a mini drone, costing between 60 to 170 dollars and turning it into an attack weapon. Here is the drone that was flying in the direction of a building. It is not entering the perimeter. The drone was detected, identified. You have a concrete example right here. The drone was therefore placed in a secure area to be dealt with. This will also allow us to understand its history. There is no need to destroy it, which could cause damage in urban areas. The Eclipse system has been sold over a dozen times to Western countries.