This introductory talk will set the context for the day. It will take a look at how energy efficiency is the major challenge for systems developers, and will then provide an overview of a number of open source projects that demonstrate how the energy efficiency of the entire system can be significantly improved. Energy efficiency of systems - hardware and software - matters. For the smallest energy scavenging systems it is a matter of eking out the picowatts. For handheld consumer electronics it is battery life that is a key product differentiator. Even for mains powered consumer devices, energy efficiency affects utility bills. And for datacenters run by the Googles and Facebooks of this world, more efficient systems mean fewer new power stations need to be built. This dev room is dedicated to the whole subject of energy efficiency in computer systems. This introductory talk provides an overview of all the approaches being taken to address this issue, particularly looking at how free and open source hardware and software is taking a leading role. It will provide a guide to the remaining sessions of the day, including the hands-on workshop where participants will have the opportunity to work with energy measurement hardware for themselves.
 Now it's record. Test. Internet. Google. That's great. We've got backup sound here. That's very useful. Thank you very much. We're recording one part the whole day. Press cut. Hello. We're going to speak about all on low end. Cut when people don't tap on them. Cut when they don't put their laptop in. Press. That stuff. Time to fade in then. Oh, that's what you want to do there. Test. You do that and then... Test again. Yeah, that's good. Do you see that all the way? Test again. So now what you do back at the beginning. Test again. If you see. We'll try and copy the file when we're done. We want to turn off time to fade. If we're switching to slides. So when Jeremy switches slides. Are we recording? Yes we are. OK. James, are we ready? Yeah. OK. Sorry about the slight delay. Thank you very much. Welcome to the M of DG Efficient Efficient Efficient M of DG Efficient Computing Dev Room. I'm Jeremy Bennett. I run a company called Mbacosm. And I'm the lead engineer on the Magic project. Which is machine guiding energy efficient compilation about which we'll hear more later today. This first talk is really just to give a summary of why we've gone to the effort of inviting people to be part of this Dev Room. Why we think this is important. Coach Jeff, how many people came to the talk on who ate my back the last night? Right. OK. So I'll try not to repeat. Most of this is just about going into a little bit more depth and setting the scope for today. Um. This is what we're trying to avoid. This was a headline on the BBC website a year or two ago. Observing that on mobile phones if you have free applications your battery goes flat quicker because your free applications are running all these nice exciting adverts trying to grab your attention. And they drain the battery life no tomorrow. Um. And one of the key things we observe is that battery life actually is dropping. Not in terms of the size the batteries get bigger and bigger. Your battery 10 years ago would have had about 700mAh. My Galaxy S4 has about 2600mAh. The trouble is we're trying to run huge powerful processors running web browsers all sorts of connectivity as well as making phone calls. But one of the things I want to get across today is that this is not just an issue about my battery phone my battery life running out. It is an environmental issue of the biggest level. Um. The figure I quoted yesterday Google spends about a billion dollars on electricity each year. It burns about a gigawatt just running its servers. Um. So it is about a dollar a watt a year to run at anything with your Google size and that's a giga dollar going out the door. So from straight profitability there's a corporate drive to reduce energy consumption. If you could reduce the amount of power their servers used you could actually build fuel power stations. We did actually do an estimate for the UK Government of how much power you would save. In the UK if you've got the sort of energy efficiency that the technology we'll talk about today can do we reckon you could close three power stations. The other thing is something that's slightly invidious which is that actually a lot of this energy usage from the environmental point of view you don't see because it's not done in great big power stations by the Google's as well. You can see that, that's very visible. It's done in individual homes with individual pieces of equipment and one of the killer pieces of equipment in your home is the router. If you're streaming a video from Netflix it'll be cashed locally at your ISP. It'll be done terribly efficiently until it gets to your home. 97% of the energy required to watch a video is in the home. And that energy is of the order of 650 watts per gigabyte. So you watch an hour long episode of something an hour and a half. That's about a gigabyte. That's about as much as having an electric fire on during the video you're watching. And it is a challenge because there is only moderate incentive. You don't see that cost going. You know straight electricity is going up but it's very hard to see the transparency. It's actually your route to deliver. It's actually your PC doing it. Your PC is the other big one in the home of the new century. You can these days get at least if you put linux on it and don't waste money on Microsoft. You can get a top of the range 32 gig, i7 computer with a couple of terabytes of disk you can build back yourself for about 500 or 600 pounds. 500 or 600 euros. You will spend over the two or three years you keep it three or four times that much on the electricity to run it. But because you don't see it it's just part of your bill you get every month. You don't realise that. So there's an environmental problem there. That's why actually in this area legislation matters. One of the things that came in a few years ago is the European Union started saying that standby currents had to be really low. Up until then, if you had a piece of equipment like your video player when you put it on standby all that it did was it turned on a little red LED to tell you it was on standby. So it actually burned more power in standby because it actually had to power the LED. That's changed now. These days when you turn things off they will typically only use a handful of milliamps not half an ampere an ampere. The mobile phone we've already talked about. We already know that one. You don't need legislation there because if you can make your phone last for hours and hours then people will be very happy. I'm impressed. My old laptop the battery lasted for about two or three hours. This laptop, the battery lasts six hours the replacement for this laptop which is now available, the battery lasts 14 hours. So there is a big commercial incentive at Samsung which is to make this particular laptop take the big thing of the fact buy our Ultrabook because our new one lasts 14 hours. Here's the one that actually is not one that's immediate obvious but has a perfectly good commercial driver a lot of remote sensing goes on these days. In fact it's the big growth area that's why we've got internet and the finish here is big activity. We put remote sensors everywhere. This one's of an electricity meter the cost of that is actually the guy who comes out and replaces the battery every ten years and as one of my colleagues pointed out the electricity company couldn't get around to replacing his battery for a year and a half so he had a year and a half of free electricity that's just stupidity for the electricity company but it is a cost and if you can actually make that battery need to be changed every 11 or 12 years you make a big saving to the manpower and it's changing. But other sensors are in other places where changing the battery isn't just expensive it's almost impossible. There are frame gauges under bridges it's really hard to put in place deep sea sensors if you want to go and send the sensors to the bottom of the sea you're going to want to run for two or three weeks before you bring it to the surface to transmit this data so all sorts of remote sensing has an incredible motivation to have very low energy consumption and the industry objective is certainly the resort meters are standard AACL which has lasted for ten years and lastly is energy scavenging now energy scavenging draws on tiny amounts of electricity so this one's a little hobbyist thing a little Zigbee transmitter that can pick up stray electromagnetic radiation and get enough energy to run the computer, run the Zigbee protocol but other applications are devices that are implanted in the body so you don't have to plant a battery with them sensor devices that you can pick up scouting and those devices use incredibly large amounts of power nano amps, nano watts nano amp currents, nano watts of power and we'll be hearing a little more I suspect from Simon Pollis about that because he has sitting on his desk a very large piece of equipment which is like a multimeter except it's for measuring pika amps and you can sense when someone walks into the room because the amount of current that loads into the room so the message here is that what we're talking about today is actually very broad spectrum everything from the nano watt to the gigawatt and it's an area where it's not just a hardware problem it's a software issue as well and to illustrate this we have this graph now this graph comes from in Kirsten, Ada the bottom four bars come from mental graphics based on actual scientific experiments to work out how much you can save energy in hardware design the top four are speculative by the in Kirsten looking at what we think conceptually is the potential you can achieve if you start involved in other things so the bottom four layers are silicon chip design from the layout how you put things on the actual silicon to the game level and the nor gates up to the RTL synthesis level where you're talking about registers of flip-flops and how you organise layers up to the architectural level do I put a cache here, a cache there do I have a big cache, a little cache do what software do I have but above that you start to get into the edge where software matters these bottom four bars hardware guys are brilliant they can change the voltage they can clock gate every circuit they can give you sleep mode and I quoted the example yesterday of one of the little 8 bit AVR chips which if you run it on its standard configuration with a 2 MHz clock at 3 volts in standby it'll take about 290 microamps so the best part of a milliwatt now that's pretty efficient but if you don't need the compute power if actually you only have to do the occasional little bit of sensing you can run it at 32 KHz that flow frequency you can drop the voltage to 1.8 volts and then it'll use 4 microamps at 1.8 volts so that's about 8 micro watts instead of 1 milliwatt huge potential there and that's been achieved by the hardware guys the issue is that the software people have not been actually told so we think if you look at the instruction set architecture and start to think about how you design your instruction set you can make further savings if you actually think about the programming languages that have programming languages that can help you program for energy efficiency we'll be hearing more about that later today you can make still more savings my specialty you can improve the compiler and we'll hear from James Palaster later about how some of his work can take a program compiled with minus 0.3 and then in some cases half the amount of energy it uses as it happens it also speeds up by twice as much as well so the compiler can make a big difference and again of course the people at the top who can make the biggest difference are the people who write the application now the best example I know about is an embedded Linux system which was using far too much power a simple embedded Linux system that you can plug a little console in to check it would work and they spotted what the problem was that console had a flashing cursor so the Linux system had to wake up twice a second to flash the cursor on and flash it off they turned the flashing cursor off and the energy consumption went down by 7% so if you're an application engineer you can make a difference of course to make that decision you have to be able to measure the energy and that's a big theme that will come out today is about as software engineers I can only solve the problem if I can see it and we'll hear a lot more about that later so just to have a look of what this actually means what these potential savers suppose we had a 1W design well if we improve the layout of the silicon we might get it down by 20xW if we start thinking about actually how we use our gates, our nand gates, our law gates we might get it down by 0.9 we start looking at the RTL synthesis level the actual blocks of gates and flip-flops and so forth we'll get down to perhaps 0.8 we start thinking about the architecture how do we design that cache and that pipeline that's when you start to make quick savings and you can potentially get down to 0.5 so instead of your battery going flat in 1 hour it goes flat in 5 hours but we think when you go about there better instructions then architecture it's probably double that now it's got a 10 hour battery better programming languages where I can say this doesn't matter if you can do this in low energy this thing's got to be done quickly burn a bit of power to get it done maybe we can get it down to 0.5W now at this stage our 1 hour battery life has to become a 20 hour battery life the compiler we already know can do a doubling of performance so that's going to get me up to a 40-50 hour battery life and lastly if we don't go around flashing cursors when we don't need to potentially we can get 100% improvement so we think there is actually a potential all the way through to the stack to make our devices 100 times more efficient we need to prove that because it turns out actually software engineers haven't done a tremendous amount of that over the years and what you'll learn today is about some of the initiatives going on and the great thing about them is how much of that is open source and that's why ultimately this problem has been solved if everyone takes part and we're not going to achieve that by keeping it all a secret looking at what we're going to do today we're going to have a look at some of the research end of things this stuff is open research and that tends to be the approach that's used they've all got acronyms and you'll learn what they're about interestingly this research almost exclusively is not pure academic research it's joint industrial academic it's funded by organisations like the European Union who exist on it being joined between companies and governments it's funded by organisations like the Technology Strategy Board in the UK who again say yes we'll fund research but the company will be leading in the university so ECOF is actually a student project they'll tell you about how you can set up a software framework which allows you to have API calls in the program to keep an eye on how much power you use we're here from Speedo which is a collaboration between Cambridge University and Ultrasoc who make debug hardware to try and get more efficient debug visibility of energy we'll hear from Enchamp energy transparency a huge European project to make sure software engineers can see the problem how do we make it so when you run your program your boss comes to you and says how fast it goes how small is it and you ask him how much power does it work we'll hear about ECOF I've put ECOF in there twice that should say MAGEE the machine guided energy efficient compilation I've actually left out my own project so we'll hear about MAGEE we'll also hear from Enn industry so William Monti is going to come here and talk about Enbed which is an ARM NXP rapid prototyping platform and he's going to talk about it particularly in the context of its use for energy efficiency and then finally the big thing we're doing today is we've got a workshop a three hour workshop from lunchtime where we'll be letting you get your hands on one of these and we've got 50 of them here this little board on top it's for measuring the energy consumption of computers one of the things we found when we started this research was you can do this stuff but the kit costs thousands of pounds what we want is for something cheap so even in the low volumes that we make this this costs tens of euros it's a cheap board it's only the board on top I'm showing you this thing underneath is a standard ST discovery ARM board it's to take the results and process and split them out from the USP it's the board on top that has the measurement that can measure your energy consumption 6 million times a second James up there and it's managed to get it just about to the stage where you can measure the energy used by a single instruction on the computer we'll be teaching you how to use these if you last do the workshop we'll give you them to take away thanks to the generosity of the UK Technology Strategy Board who paid for 50 of these kits so that's what we're going to be doing today it's Debrun, it's Participatory ask questions, interrupt tell us what you think the idea is not just for us to push stuff out that way what we've learned is every time we talk about this we get a tsunami of good ideas, have you considered doing this and so we're expecting to go away today with a fantastic array of ideas of all sorts of people what you can do now you can do really serious energy and that's me done the next up is Simon Hollis from Bristol University Simon designed the energy measurement board he's going to actually take us through some of the basic physics of energy and software which we'll set the framework to understand what we're doing while Simon is setting up any questions? yes so you mentioned what sports you think we're learning do you think men can tell us I'm sorry yes there is a slide which I gave yesterday about making sure you don't get muddled up between energy and power I meant what hours in other words power is how fast you use energy energy is the multiplied time by the power of the waterfront it comes from it comes from a paper by Kate Craig Wood where she did an analysis of the energy consumption on internet media and transactions if you look for Kate Craig Wood energy of internet transactions on Google you will find it it was just research permission by the energy efficient computing special interest group of the technology strategy board which is more active in the she's at Surrey University she's also an industrial news scientist and a pretty thorough review of her research and research about Васily and her scientific armies of the Third Amanian then she visualized I mean, if you are not measuring applications and machines, we also could connect with the supply. Like, we have a certain energy supply, like, by a certain angle, that's that kind of, we have only supply, we have supply of supermoto energy at the end of the week, so it's specific hours. So we have to also do supply, and then, like, this doesn't connect to the unit. We have worked in that area. I mean, one thing you learn when you start doing this is quite how wide the spectrum is. We focus on looking at individual computers, so we tend to be connecting across the power supply to computers to measure that. But it all fits into a bigger framework of how you fit into strategic energy supplies, what you do about internet and then on supply, and so forth. And there are people looking at things like, why do we pump energy to data centers? We've got these wind farms up in Scotland. We've got our data center in London. Why don't we put a computer at the bottom of actually the wind farm? Because then it's a lot easier, a lot less energy to pump the data once you process it, and then pump the energy to process the data. So yeah, there's a huge range of things to do. Right, I'm going to unplug, and in two minutes, I'll hand over to Simon Pollock. Thank you very much. Thank you. Thank you. Thank you. Simon, can you sort out this camera just keeps drifting downwards. In a second. Cool. All right. Yeah. Yeah. Where is the drift? Is it in there? So it's in the vertical. So that's this thing. Just give me some of your name. Yeah. We've got, it's only just top. That's on those titers. That's slightly better, isn't it? No. OK, that's fine. Support camera, just going to try and put that up. Linus, do you want me to? How do you want me to line the shark? And so... With the slide? We have 92 minutes, by the way. I'll stay this side. But it's still drifting. It's not that. It's just that. There's a camera too far forward. Maybe. That seems better. Still drifting slightly. OK. It's in my bag over there. We should start now, really. Is that OK? All right. So, thank you for coming to the second talk about the Dev Room today. My name is Simon Gullis. I'm going to talk to you about how to measure the energy consumption of small embedded systems. Everything I say applies to measuring big devices, data sensors, and small devices. So, we're going to go through some fundamentals about what you need to know if you want to accurately measure energy consumption. And we're going to show how you can build up things like what we've got on display at the workshop later on. These are made from rude energy measurement devices. They're very cheap, very simple. You've just got to get to the designer. So, as I'll do, I've got some of the slides here to James. He's got the back of the room. He's going to give me a few crafts to do. My presentation is running away with me already. No credits. I'm going to take a few more. Yes, no. Okay, so I'm going to think quickly about me. We focus on small systems, embedded systems, big systems, and I'm mainly united. Myself, I focus on small systems, embedded systems. Something I do is I build small systems. I build big systems out of small systems. I'll show you later. I have 600-plus built-out devices. And we focus on end-gear-trization. So, there's pretty much magic projects. Jeremy just introduced that and we'll talk to him later. These are things I'm not going to cover now, but they're very interesting. So, I'm interested in talking about them later. So, this is the talk I'm going to give. We're going to talk about why I want to measure energy. We're going to talk about energy power. We're going to talk about measuring power efficiently. And how well we can measure. So, what is the accuracy we should aim for if we want to design the measurement system? And then I'm going to introduce our open measurement design, which is available, and we've got loads of them, and we play with it in our workshop. So, let's start with why we want to measure energy at all. Well, why do we care? We care for a bunch of reasons, man. Jeremy gave me the idea of our power station, to be closing first, but there's more fundamental things. Most of our electronic devices are building now and mobile, distributed devices, they're often run from batteries source to any battery. You have a battery, you have a fixed amount of energy in your system. It's the capacity of the battery. When it is run out, then you have to change the battery or stop the computer. So, that's a very finite supply. So, the more you can make efficient use of that, the longer you can really compute the high-swap. It comes at a cost, if you're mentioning a billion dollars for Google. Well, it comes at a cost even for me, I make this decision about whether to my server or an offer tonight, because I can say the good proportion of electricity bill. But that's not generally made aware, so it's not seen by. It's all we want to do is to make it aware to programs, that when they have the primary choices, they can see differences in the output of their current. And then actively make a choice for these four. So, that's about energy. We're also going to talk about power. And devices now also limit any amount of power. Not just as open-minded energy, they can take with them how quickly they're going to display power. And there's some really good reasons for that. The cooling limitations, so my phone is in the back there, has a cooling limit of 2.5 watts. If I use any more power than that, I'll burn the hand of the user. And I'll see. So, this is a design constraint. I can't buy a lid. I can get, plus this is a little bit, I can drill holes, and then I can buy three watts, three and a half watts. And after that, I will burn the user again. So, that's the real power limit. That's human to be taken. We've got practically efficiency. So, as you use the amount of power you take out of battery, it pulls less efficient. So, when the total energy available in the system reduces, if you take it at a faster rate, then that's the penalty. So, we care about power, so we'd like to reduce it. And then there's cost. The client has a system that has a bigger power supply, because then you take more peak power, the higher the power, the better the take. The actual cost of water bill, that power supply, the power supply, the bigger. And that has a cost and a majorization. So, these are really good reasons to worry about both energy and power. In everything that we do. So, we just get straight the momentum here. We have energy, which is, this physical quantity measures the work available to do for the system or the work that we've done in the system. And that we can relate to the amount of computation that we've been working for. So, there's some efficiency in computation compared to the amount of energy that we've been putting. And if you said, I've fixed energy, you've got more energy, you do more computation. In electronics, the energy goes to heat. And heat's up. That's how we lose the energy. So, your battery turns into a portable electric heater, that's what happens in your water devices. You realize, I've got my hands over on this side of my laptop, it's nice and warm. And that's how we use it. So, this is physical quantity, and this is the limit of the mass we'll ever do. So, today we'll have a little bit of mass with all the energy here, and we can relate it to power. So, power is a very big change in energy, and so that we perform this integral. This will turn out to be very useful later when we want to do energy measurement. Because what we can do is, we can power measurement, probably, in the equation, you know, we get. And both of these use-expects, I've shown you use-paces where you need to limit energy, and also where you want to limit power. So, that's why it's nice to be able to do that. So, give you an idea about how this works in practice. What you actually do is, you make a series of measurements. And so, here is a scenario where you make power measurements over time. And what you gain is little thin bars, and there's a reason there's gas between these bars, and that's typically what you do is measurements, and there's a rest period when you've calibrated the next measurements, and then you re-dubbed it. So, you get gaps, and you get instantaneous measures. And you get a lot of these different things here. So, you don't get the full continuous logics. But you get this idea, and so you get the idea that the system is taking a bit of power, and then taking less power, and it varies around here. You can convert that easily into energy. If you have that set of measurements, you've got set power measurements now through time, and you can say, I'll see if I can put something into the device. You can also then perform the integration process, which just measures the area under the curve, and the energy. So, the volume under the curve, the area under the curve is the energy, and the measurements are power. So, you get both of them once. You just measure the power, and you have everything you need for energy, and more. So, energy is typically the ultimate metric that you want to measure when you're working to maximize your battery life. And you can say some things that are nice. And if you know the amount of energy in your battery, know about energy your computation takes, you could say things like, well, I have 10 minutes more video time with energy. And that's going to be very useful to the user of the device. You can say, okay, well, you could do your watching the film, but you won't get to the end. And then you won't be able to make fun of it. So, as a choice, you can actually measure volume, curve, or phone, or whatever it is. What's going on in one frame? There's a big problem in computer science, which is that now we've used many applications that determine this. This is all the things that APC systems, where you power a big computation, it runs some amount of time and it's all in the data source back. But most devices now in better devices just run kind of for every or best effort in a loop. So, sensors will never terminate. The device is going to run my toaster, they never terminate. So, I'm just going to turn this to a turn and just check in the button, and it's being pressed. And so, you can't actually measure the total energy that the patient should have finished it. You can start around to the end of the universe. So, for this point of view, it actually makes more sense in terms of how you're supposed to measure the power. Since then you get an idea of what's going on in the other frame. And you can, of course, collect the parameters and say, this is the range I've curve by myself. Do the integration of the curve by just doing it, and then I'm going to know what's going on in the system. So, the power is, this is the thing we want to measure. So, we had the option, we could have measured energy directly. But by using power sensors, I think more energy is needed to use it. We can get energy, ignore it, get more information, and we can do programs that don't come in. And thankfully, it's easier to measure as well. So, we're doing the situation here. So, that's what we do. We choose to measure in the modern computing system. We only want to measure the power it takes and then do the maths later. So, all I'm going to do now is just go, and flip it into the fundamentals of the way the energy is going, where the power is being dissipated, and then we'll just show how we can measure all this. Any questions so far? So, we're going to just recall a little bit of kind of schoolboy physics. We've got Jules first of all, who says, the power in my system is the current in my system, I squared times the resistance of the system. So, if I have current and resistance, I can measure power. And so, that suffices to know if I can fix the resistance, which is the thing that I probably want to do, then I only have to measure current. I measure one thing, I know one thing, and I can measure the power of the system. The problem is that if you apply this to a computer, the resistance changes, the effect of resistance changes to any water. So, that is no longer the case. So, I can measure current potentially, but the resistance, I don't know, it'll be different whether I'm doing one instruction to another instruction or whether I'm doing a service for the sleep mode by sleep mode. I can't do it. So, what we're going to do is we're going to deploy lots of just rearranged bunch of these terms to expression. And what you see here is basically I can rearrange these things any way I like. So, I can look for voltage based on the current and the resistance of the system. I can look for resistance based on the current, and I can start substituting it into various types of Jules. So, to combine the two goals together, this one here, which doesn't require me to know any resistance in my system. So, that means that if I could measure the voltage and the current at the same time, then I'll be able to divide the power of that and to know the resistance. But in other words, resistance only has a pressure. And so, this means that you have to have a choice to have a particular temperature because we can choose which is the easiest thing in a particular scenario to do. And we can get away with the rest of the things. So, we're going to come back to that when we show how to fill the system. But now we remember resistance, pressure, and say, these are the things fundamentally take the energy of computation. So, I'm going to talk about an area called dynamic power dissipation here, which is the thing that isn't just about sliver of silicon and more than you're self by just having a multiple-cosic. That's another part of the instance that you're not going to say. But this is what happens when you do computation. We use these elements and they participate. So, here's my transistor. This is a modern MOSFET transistor, the symbol on the left. And this is the reason why diagram work looks like, what it used to look like because it was 20 years ago, but now this would be jagged all over the place. So, it's one of the big physics. So, we've got two different types of silicon. So, we're going to use silicon here. And the idea is that this transistor will be able to be switched according to a voltage on the gate here. And if it's switched on, current passes between these two blocks of n-type silicon. How many are switched off? Current's not allowed to pass through that area. And if it's blocked, that's how it turns off. So, this is the device you can turn on. You can turn off based on the voltage on the gate. And if you move the voltage from the gate, you will just bear power. Why? Well, the first thing is, these essentially, we've got one point of view. The two materials are separated together in the arm. So, whenever, well, let it go to the maximum. This is a lovely parallel structure. Our industry has done so well making these big mass-produced, very flat devices. So, a lot of big parallel structures where I've built myself is a parallel, very plastic one. And it's about as long as a transistor. So, if I'm actually using the voltage as an endpoint circuit, I actually start charging and discharging the cross-contact system. That's that part of the circuit. So, that means that I have built this in one. I've got a slide out of this. I'm going to go to the next bit of the slide. The other thing that happens here is that we have resistance. It is a semiconductor. The word semi is in there. It's not a great conductor. It has resistance. And the critical resistance. And so, when I try and turn this thing on, and I pass current between the source and the current, there's resistance in between. And that resistance is seen in the channel and that contributes power. And the reason for the power is that we just look back at it. Ohms law and Jules law. We had a voltage across resistor. That was the channel. And it had a resistance. And therefore, at this space of power. And that power is squared. And this is one reason it's so good to treat computers. To treat computers, you can reduce the current to go through just to power these with the power of one. And this one, the power of one. So, that's one effect. The other effect is the capacitance, which I think it can do. We've also had a cluster here, which is built in transistor. And the cluster is related to this equation here. This is the charge. It's essentially the energy and the capacitance and voltage. So, whenever I change the voltage on line transistor, I change the charge in the capacitance structures. And that means that I change the power. And the energy here is just how often I charge the discharge in. So, whenever I change the value on a resistor and a resistor power, whenever the transistor is gone, a resistor power, so there's a range of ways that I can then just take power. To give you an idea, here's a circuit. This is a full-added circuit. And we recognize this. This adds together two or bit numbers. It takes a pair of bits of basic bits of circuit. You'll find in the heart that you like this. So, if red says this is a high volume, so this is a lot of 1, black one's probably 0, this is the path I wrote it through my circuit. So, it takes some path between the inputs and the outputs, and it charges up a bunch of transistors in the various gates to which it's charged. So, there you go. Whack, I've taken some energy. You look at the output there, and that first tool gate, once I apply another high input, it changes from red to blue, blue here meaning a low voltage. So, the voltage there changed, from there to there, and as it changed, it swung the full voltage in my power supply. Which I would have to have a lot of switches, probably one voltage and one low voltage. And so, it discharged a capacitor via volt. And so, we now consume power by that. So, that's the reason we use the energy. And there's a further effect which is down to, here's a converter, there's a single input, single output, and you get the opposite of what you put in. If you build this device, you build out two transistors, and you have to arrange transistors in such a way that they are connected together. And when you change the value on this, you know, you really want to change the value, for a moment you turn on both of your transistors, at least partially. When that happens, you actually connect together your power supply, momentarily, and that's at your circuit, and that just pays life for most of the power, but for a very short amount of time. So, these are the reasons that we consume power from the measurement in the device. So, if you look at what influence is the rate of power consumption, so I showed you that the transistors, particularly the capacitor you've changed the values, the more you'll discharge and charge the capacitor. So, if you've got faster plot, for example, you've been changing those more often. You've been faster changing the, flipping the values of wires, and then one second you'll do the thing, do more of the discharging, and you'll just make more power from this one. Okay, any questions about this part? All right, so, okay, fine, so we've just done all this. How are we going to use it to measure the power process? Okay, so let's get on with it. Well, we can measure, you saw we measure power with voltage, the currents are the same time, the resistance and the current. The voltage is really, really easy. You're following a multimeter, fully euros, bad multimeter, and you can stick it on, and you can measure voltage, reasonable accuracy, like expensive multimeter, you get really good accuracy. You can buy an oscilloscope off the shelf, and you can attach this and measure voltage, and you can measure really good accuracy. It's fairly flunky, and it's very fast to make. One, the strategy we use is to use a single, the analog digital converter, because it builds into a very large number of, off the shelf devices, in the embedded space particularly. And we can make use of the heat, and measure all the heat. So here's the high level block diagram. So at ADC, this is a block of a microprocessor, like this arm-based microprocessor we have on here, and I've not got one. If anybody can think of, produces this FPGA something, they're really good. So you apply a voltage in to an input from the ADC, to go to reference, ground zero volts, and it measures that voltage, and it gives you a digital plug. And it gives you some resolution, so 12 bits by common resolution, and there you have your hub. You now have a measurement voltage, and you can start a fire on the board. Typically these things work to about two and a half volts, in an embedded device. So any volts which are two and a half volts, you can just make a map. Because if it's a little bit of a power load, like a virtual winter, it consumes a huge amount of power. I have a short slide of that data, but the ADC is actually one of the most power-hungry components of any device, and we were finding one. So what we do actually with the force, the workshop, the open-put design, is we separate this out into several boards. You don't care about the power. That board uses, you know, the, like, the ins-tiler, sort of, a lot of check-in results, into a big time over the, on the victory. Yes, it uses, it's very infinite. In fact, when it's sort of going to measuring, it's infinite, because it's disconnected, and so they have a sample, followed by conversion mechanism. So it'll be a bit of a dis-factor. But yes, they're really powerful. You can see, there's a demo, I think, where you place the switch on the ADC, and you can see the energy consumption before it. So this is a big disadvantage, but if you have a separate device, it's a great question. And one of the problems that we encounter, though, is that these devices, typically, were the device you'd work with by blocks, seems to be, you know, hand-to-hand. And often, your power supply is maybe higher than this, right? They may be five volts, three volts, two volts, two volts. Here we go. Now, we can actually do some really simple electronics to bring down any high voltage into that measurement range. And this is the, the obvious thing, first, you want to build this script called a potential divider. It uses two resistors, and that allows us to drop a high-range voltage into a small number. And it's shown by the equation that's up there, and V out is the voltage in times of ratio resistors. So we want a half voltage range, so we have zero to five volts. We put two identical resistors in that. We'll get zero to two equal to five volts. And then we bring this range into the heat. So that's, that's, that's, that's easy. Um, and we will, we'll do that when we need to. One of the problems with this design is, you get this current flow to the resistor. You basically put a mass factor in the power supply. And so, you have to account for that. So if this part of the idea is part of the idea of sending air out of the microprocessor in the measuring, then you're actually adding current onto this, into this current. And that means you'll get a force result of that power output. It'll be off by the amount of current that goes through that. But thankfully, these effects resistors, you pick them up for shelf, and they have values. So you can account for that, but you do have to remember to adjust the results. Your process actually takes less current than you thought it did because you're wasting current you make. And this is the kind of thing that can affect results if you're on a careful project, if you're on a members' deal. There's nothing hard, but in general, don't really get hurt. That is the move. That is the first way. So that's quality measurement. Let's talk about current measurement. So current measurement is actually a little harder. In the old days, it wasn't harder. When we had all these wonderful machines with moving ions and coils, we measured the flux directly, they were all fantastic. And then we used current and it was nice and easy. But these, if you don't use these, you have to use these like electronics and you can use these to do what's made of them. And these were compatible in not the accurate function. So what we do now is we want to measure current. Most commonly is we measure the voltage band. And we use Ohm's law in order to transform the measurement of current into measurement of voltage in a known distance. The I squared R is the voltage. So you use Ohm's law and what we'll do is we'll place a known resistance across the power supply. So if you don't hear, I've got my processor supplied here. There's the main power supply coming out of my battery. And I place a known resistance in that wire. Then what I do is I get a small voltage that appears across the resistor based on how much current flows and I can measure that. But it's a differential thing, so what I have to do is actually pass it through and I think the measure is different, of course, rather than absolute voltage, before passing it on to the initial. This guy's called the differential amplifier. It takes the voltage here at the top of the red line minus the voltage of the blue line and that's the output. So you don't care whether this is quite a voltage or three volts, it's certainly different across the resistor. Is it direct or proportional to the current? The problem with this approach is that this resistor, you have to put it into a power supply supply. And that's what I spend a lot of time on. But it's an invasive mechanism. If it's not already there, which probably won't be, then you've got to insert it. And you've got to pick the right kind of resistance value so that you don't stop serving looking. If you've got a really big resistor and you can't supply it, you just can't supply enough power to the microstructure. The microstructure will fall over. If you have it too small, you get a very, very small voltage appearing across the resistor and it's very hard to measure. It's tiny for 0.00 or something, but... So you need to look carefully. Here's my guidelines. Most never microstructure will deal with up to 0.05 volts changing the power supply to that current. If not specified in the data sheet, that's an absolutely fine measure to be in. And so if you want to maintain that, a maximum drop across the power supply, these resistive values, which happen to be exactly the same as the ones that I'm making for, are given cover this range, which is the range of typical microstructure. Microwatts and octogen is going to take a clamp to make it more powerful. Armboids will have to take over that one. And so this range, which I'm going to resist to, gives you the allowed voltage drop, but it is still very small. So what you're now doing is feeding this kind of voltage into the DC converter in a microprocessor, which has a range of 0 to 2.05 volts. So you're using some tiny, tiny part of that range. What it wants to do is to maximize the part of the range that you use that gives you more resolution, gives you more points inside the range that you do in the discriminatory field. So what we do is we have to amplify the animal domain, the voltage used in the sea. So we don't just create that differential voltage, we also amplify it at the same time. And here we do the amplitude of 50, and that's in scales of 0 by 0 of 5 volts into 2.5 volts. So we then cover the exact range that the ADC is sensitive to. And that makes me a little useful. So your question then is how do you build that amplifier, depends on the amplifier. Well, that's the stuff of electronic engineering students from WorldOba in their first year. You can use this device for an operational amplifier, well-known, not tested, and it's very easily available off the shelf, and you build exactly the circle. So you've got three connections on the device, the French rhythm first and the slow hand first. And then what we do is you're adding in a simple feedback, which gives you, again, an amplification ability. And you can set these, this is the future times gate, I set this one here to 50,000 ohms, this one is 1,000 ohms, and you find that technical, you ask me, and then what we do is just take that, and this is part of our plan. The downside to this is, well, I started just thinking, well, shall I build this circle, so we can make it forward based on it? You find that weird thing, the fact that you've got four resistors here, and that's more cost, so there's 70% of the measurement, then it does divide the operational amplifier. And that's because 70% of the robot has to now go in those four more places and you've got four more resistors. We've got two different ideas, and there's an actual cost to making it. So if you wanted to master use this, there's a way forward to that track. And it's annoying, breaks on the out, it doesn't look so pretty, all sorts of things. And so we actually buy off the shelf, it's indicating current sense amplifiers, they're designed for this application, the process resistor, and they have fixed amplification, and there is a lead one that gives a significant amount of amplification. We use one that's a maximum, they produce a range of these devices, one or four different inputs, different inputs, you can measure it to four parts of the device at once, and that's what I've got at four, I see. And you do all of this, and it's a relatively expensive chip, but it's not, you know. The device is, now, this fundamental limit for bandwidth, which says, what is the fastest that I'd amplified? What's the fastest signal? And these devices are very low, and that's because they amplify so high, so high, and they go up to about two megabits. And what that means is that you can't measure accurately a signal that's being passed in a million times separately in the devices. If you use these devices, there's no point in measuring the capacity of the map, because they don't have bandwidth of power, and what's the difference? There's no point in there? There's, well, there's not quite no point, there's little points in that, because what you've done is you've created a system where, go back to this diagram. So you've got a system here. If this can measure very, very quickly, you've introduced in the middle of weak link. Okay. So this kind of passes all the information from the resistor into the ADC, because it has this limit. And so the ADC can go faster and faster, faster and faster, but there's no more information to the map got. And that's just in the front, and what? It's this, it's a function of the transistor, the transistor, the building of that device. If you drop the amount of amplification, you can push that up, and this is a trade-off, a fixed trade-off to you, how much you'll have to multiply the voltage in the signal, and how quickly you can do that. So if you drop that down, and that's why there's a range here, because there's a range of amplification between the input of times, and if you input by input times, it's your reference. If you apply the input times, it's 1 by 2 million. So you have to choose that. So you choose where you'll lose information in the ADC. So for this value, let's say we have some, say, we'll be that way faster, higher, and we'll be, we'll use some information on the device, which we can, you'll lose, yes, absolutely, you'll lose that information. Is that, is that then powered, or is it, So there's really no question about what information is in this one. One of the things happens when you, when you pass a benefit, it smooths the signal, and it fundamentally smooths the signal. So the total, if you were to take an infinite number of samples, you'll get the same representation of the total energy. But what you don't know is the shape of the curve. So you don't know when it went up and when it went down, but you will see the total in the user. So you lose the ability to say, well, it was that part of the loop that took a lot of power, or it was that part, and you could just say, my program took this much, and that would still be an accurate answer, and you can't tell where in time. You know, it's also, you know, it's in the actual power, it will measure, it will measure, the power readings will be different, but the integral, the total energy will be the same. So your energy figure is still accurate, but your, your winning happened, is less accurate. And that's something to be really aware of. That also means that you kind of do math, and you have to be aware of the limitations of repeated measurements to find gain or information, because the total is always the same. But that's, that's an annoying sense of the word. You can buy a more expensive device, but to push away the limitation, you can build a much more specific, you can always give it, almost always give it. And the other thing, the problem is you have this device, is the analog digital converter part, and has a built-in error, because what you're doing is you're taking a continuous one-stream which is voltage, and you're producing a binary energy, and you're producing a very specific one, and so you, you can have error, and that's almost always half of the distance. So when you take a value, and some measurements, you can always basically start releasing the, or at least average it, a multiple cycle, because that will essentially randomly fit, just depending on exactly how your energy is, etc. The movement conversion time, the ADC plus the speed limit and the measurement, and that means you can't pass the ADCs, and then you can always expect power, so there's a question earlier about that. That gives you a bias example, you've got a memory to take that up, and a binary one, they generate quite a large amount of data, even a small, quite slow ADC. Excuse me, how do you actually interpret this? I don't. Half an error is used, and the AC can be taken... Bit, sorry, bit, bit, bit, bit, bit. So you've got 12-bit representation, the bottom bit is 0 or 1, plus or minus 0.5. Yeah, I know, I think it's absolutely... You're right. Sorry, yes, at least a bit. Give you an idea, if you bought a device like this going, a million times a second, you'd get a total of bits, a sample of the rest of the data, and you then max out a USB one. One of the problems we have with this device is that embedded devices can't be not great at doing USB, so getting the data off here, even though it does USB 2, it can't max out USB 2, and we don't have to get off all the data in the great one. Even though we only made it this country. So that's well worth remembering. So what you can do is you pre-process data, you put a processor line around, you do that as well, but you do want to say, okay, do I have an idea, or is it important information? Do I need every sample? How much do you design? Maybe more... Do you need to be concerned about the tolerances on the shared resistance? Yes, absolutely. So the power consumption measurement you get is directly connected to the resistance, the third portion of resistance, so if the resistance changes, then it always has a tolerance error, and then your measurement is out by that as well. You can of course measure the resistance in the stone core, so you need to be careful. For this reason, we came to the change of the book, in the open source design, we specified some very tight torment resistance, 0.5%, resistance, certain, and minimize any difference. So the true resistance is something that we must apart. What about the huge data? What about non linearity of the... Yeah, that will be specified in the data sheet, where that happens typically they are internally covered to reduce linear output, when you get the binary representation. But these kind of things depend on the ADC that you use, and you have to read the data sheet, it's always going to be up. So you normally get a linear binary representation, if it is not linear, it's going to be a result. Okay, so we've got some other limitations. Everything's got great. What the problem is, we had to connect in the shunt resistor into our resistors, which means we either need a ball that has one, or we have to do some desoldering, followed by some soldering. What we have to do is remove one component to make space for a soldering to wire, and then add in whatever you took off, plus the other way of doing it. We have an idea of what these kind of things look like. This is a board we have back in our lab. This is a power supply, it's a one volt power supply. We've got a chip here, it's a power supply chip. It's a switch mode power supply, so we've got to do it in here. Here's the little shunt resistors. Magnified is quite a lot, so it's really tiny. There are three points, and you can put multimeter in here, or you can put the little update that I've just shown you across these two sockets, and then you will get the main one. That's nice. The most devices don't have that, so the Beagle one doesn't have it. We have this is a tap handle soldering, and I think you see this one on the stand if you want to. In here there was some power supply components that were removed, replaced by a bunch of wires and a bunch of glue, and then everything is connected in. Externally. If you want to do that kind of modification, you need to know which components take off. There's some that would take it off to the break, some that would take it off to the work break, and you need to know where to put that into. There's two popular types of power supply, and they have different components. On small, cheap devices, you can find this thing called the linear power supply. It's good because it's very cheap, and very small, but it's pretty efficient, so it's not used for large devices and gets caught. And those devices use things for such small power supplies that's the kind of power supply you've got for a laptop. It's much more efficient. These things here, depending on what you put in, might be about as 20% to 30% efficient. These ones here are normally 98% plus efficient. So let's look at the linear one first, this is for the two, and what it does is it says, okay, I've got the input voltage, and I've got an output voltage, that's the voltage for the microprocessor, and I'm going to change the difference by just wasting the energy. Okay, so you put in five volts, and one voltage just wastes four volts with it. And it's really a big kind of cost. So if there's a representation, it's transistor change, it's value depending on the input voltage you put in there. It's a regulator, and you get out whatever you bought on the package. It's packaged normally specified, it's five volts, one volt output, and you get a voltage out here, five volts goes in, one volt might come out, and then you add in the sugar system to be a machine. Well, you drop the little voltage across that, maybe 0.05 volts, and that means your process actually now sees 0.95 volts as though the one voltage is affected. The process of always still work, but you're not running it at the same condition that you were thought you were, you thought you were measuring for one volt performance. And there's their intervention, and the previous thought, you drop the voltage, it becomes more efficient. So you've actually helped the energy to be consistent, or quite intimately, gain and disturb consistent. Now with switchable power supplies, we tend to get away from that, because the regulator has this, there's this feedback, it can measure the output, and it just store it. And so there's a massively simplified diagram of the switchable power supply, but the switchable power supply is made by having a switch, which turns into a series of an inductor, and this switch goes up and down really, really quickly, and provides power this way, which is then stored so very early in the inductor. And it looks at the output and says, do I need to connect power supply again? Don't need to connect it, and it's a quarter to low, can't start the light, what's the high stop? And so this thing goes up and down from 1,000 times 7, and there's a measurement point where feedback can decide where it goes to switch. So you've got the sugar resistance, really. As long as you put the sugar resistance before the feedback, and it could be neither ordinary inductor and it could be either ordinary switch, then you get feedback that ensures that the voltage across there is just the core of the matrix. So what that looks like in the same example, is 5 volts goes in. Oh, gosh. My N button and my M key down. And it's 5 volts in. You'll get 5 1 volt act, give us 1 volt power supply. The reason is because the power supply will increment on the other side of the sugar resistance, automatically, but just as the sugar resistance will layer, that would be 1 volt, since it's there, it notices that the voltage changes across it. And what you're going to do is, you're going to get 5 volts in, and you're going to get 5 1 volt act, give us 1 volt power supply. And the reason is because the power supply will actually change across it. So now you can bring in a processor at 1 volt, which is the potential of the voltage. So it's better in the point of view of making the market make full condition. And then my last thing on this really is, how fast can we do this? So we talked a little bit about the power supply, but there's another part of my system. What's our power supply? And resistor and capacitor, which is at least the input to life. So if you look at the power supply, what I've got is this thing called an RC charging supply. And they're well known because they take time to charge in the tank. And they've got this wonderfully simple relationship, which is the amount of time taken to change the voltage on that capacitor to your power supply algorithm is related to our time supply. And what that means is, at the point where we have power supply, the voltage could only change so quickly, and it changes at maximum that speed. And so that limits the rate for which the power supply voltage will change or see if it changes that. Regardless of if the microstructure suddenly tends to get a power supply, I said, I want infinite current man. You won't see that for a some time on the machine. You'll see it eventually, but you won't see it that way. And that means that you can then push through that use, this is a common linear power supply, you push through these values. What actually happens is there's a limit of physics of the energy. You can't get the connections, no longer the amplification. And it turns out that you buy that very popular after-shelter power for a regular power supply. You will never see a response more than roughly 5 micrometer. That means in the signal you wanted to measure, there wasn't anything more interesting than running at speed. So even if you had a 5-megaphertz processor, you will be able to see if power supply changes in 5-megaphertz because of the damping of the power supply. So this actually means you've got a sort of thing on the make-up, so it means you need to measure, look what measure you're passing to to make a measurement scenario, which won't see, there's no information there. So it's worth paying a mind, because otherwise you think, well, I spy a very expensive oscilloscope and I can measure anything I like. You have to prompt me, you would never be able to measure a 5-megaphertz. What that means for your output, though, is that if you say, okay, here was my processor, very 5-megaphertz, running instructions, with that kind of power supply, you'll never be able to resolve closer to government a block of 3-megaphertz instructions than you would. So you won't be able to say that app protects my energy. You'll be able to say that block of 3-megaphertz instructions, no, that's going to have a look at it. And this means, if you want for any, but a re-engineering time power supply to the microprocessor for the processor. And so, whilst these works are a slow device, so having a slow device, I can say that I can do that, 5 minutes or never else to go. So, graphically, you'll never get out this kind of level resolution saying, it's this line of my assembly code that's at the power. But you might be able to say, well, maybe it's that block of code from the ASCOP-LiO thing. So that's what we're looking at with these kind of ready-made devices. And I have, I think, one minute left to just show you what these designs look like when you look at these. You've got to play more with these designs after the workshop session. You can come and take them back. So we've got this device. It's open source design. Here's the link that we downloaded. We've over sourced CAD software, and you can download the design of CAD software, and generate files of 7,000. Four channels, six makes some of the seconds, which we do measure after the acting, which is a little bit of resolution. And this is what it looks like to zoom in and be in my handle. We've got this is the amplifier in the middle, to give public advice. We've got a big selection of different chip resistors that you can insert by connecting to the chip. So you have to do some soldering. All you have to do is connect your power supplies in the suits and in the ear. So you have to break the power supply trace in before it. Take two wires out, and push them into the ear, here and here, and then that's it. And you set some jumpers that we might be able to trim as we've got. And this will then divorce the work of this design, you know, to be carefully involved. This thing plugs into a cheap arm evaluation board, here that's one. 9 euro board, you can find it on the shelf in RAX, Farnel, any of your favorite companies. And that then collects the data and has the agency in place. I think that will do the work for my last slide. This is what comes out of it. You can play again with this in the workshop. There's a software that's used in the US being where you can visualize the output of the design and make it device one PC, a laptop, and then you can do the same thing with the PC, a laptop, and here we've got the current measurement going through one program, the voltage measurement, and the power. And what you can see here is we weren't doing anything on the target, but the processor, and then we do things. Shoot something and start flipping around. And that's the work that's actually going through. So I think with that, I'll just skip to the end and say, it's very useful to be able to do this, because now you can say, I can say block of three in the codes on the file, and if I block, that's the block so it is taking anything. Let's go and engineer, engineer that. Slow processor, I'd say five seconds. We've got the input source design, we've downloaded, taken three K to the way today. We may need to do a little soldering at the level of just breaking a track, soldering one wire, soldering the other wire, and then you can put it into our hand design. So super successful. But hands on the workshop is starting at 12. So with that, I'll leave.
 Now it's record.  Test.  Internet.  Google.  That's great. We've got backup sound here.  That's very useful. Thank you very much.  We're recording one part the whole day.  Press cut.  Hello.  We're going to speak about all on low end.  Cut when people don't tap on them.  Cut when they don't put their laptop in.  Press.  That stuff.  Time to fade in then.  Oh, that's what you want to do there.  Test.  You do that and then...  Test again.  Yeah, that's good.  Do you see that all the way?  Test again.  So now what you do back at the beginning.  Test again.  If you see.  We'll try and copy the file when we're done.  We want to turn off time to fade.  If we're switching to slides.  So when Jeremy switches slides.  Are we recording?  Yes we are.  OK.  James, are we ready?  Yeah.  OK. Sorry about the slight delay.  Thank you very much.  Welcome to the  M of DG  Efficient  Efficient  Efficient  M of DG Efficient  Computing  Dev Room.  I'm Jeremy Bennett.  I run a company called Mbacosm.  And I'm the lead engineer on the  Magic project.  Which is machine guiding energy efficient  compilation about which we'll hear more  later today.  This first talk  is really just to give a summary of  why we've gone to the effort of inviting people  to be part of this Dev Room.  Why we think this is important.  Coach Jeff,  how many people came to the talk on  who ate my back the last night?  Right. OK.  So I'll try not to repeat.  Most of this is just about going into a little bit more depth  and setting the scope for today.  Um.  This is what we're trying  to avoid. This was a headline on the BBC  website  a year or two ago.  Observing that  on mobile phones  if you have free applications  your battery goes flat quicker  because your free applications are running all these  nice exciting adverts  trying to grab your attention.  And they drain the battery life no tomorrow.  Um.  And one of the key things  we observe is  that battery life  actually is dropping.  Not in terms of the size  the batteries get bigger and bigger.  Your battery 10 years ago  would have had about 700mAh.  My Galaxy S4  has about 2600mAh.  The trouble is we're trying to run  huge  powerful processors running web browsers  all sorts of connectivity  as well as making phone calls.  But  one of the things I want to get across today  is that this is not  just an issue about my battery phone  my battery life running out.  It is an environmental issue  of the biggest level.  Um.  The figure I quoted yesterday  Google spends  about a billion dollars  on electricity  each year.  It burns about a gigawatt  just running its servers.  Um.  So it is about a dollar a watt  a year to run at anything with your Google size  and that's a giga dollar  going out the door. So from straight profitability  there's a corporate drive  to reduce energy consumption. If you could reduce the amount  of power their servers used  you could actually build fuel power stations.  We did actually do an  estimate for the UK Government  of how much power you would save.  In the UK if you've got the sort of energy efficiency  that the technology we'll talk about today  can do  we reckon you could close three power stations.  The other thing is  something that's slightly invidious  which is that  actually a lot of this  energy usage from the environmental point of view  you don't see  because it's not  done in great big power stations  by the Google's as well. You can see that, that's very visible.  It's done in individual homes  with individual pieces of equipment  and one of the killer pieces of equipment in your home  is  the router.  If you're streaming a video  from Netflix it'll be cashed locally  at your ISP. It'll be done  terribly efficiently  until it gets to your home. 97%  of the energy  required to watch a video  is in the home.  And that energy  is of the order  of 650 watts  per gigabyte.  So you watch  an hour long episode  of something an hour and a half.  That's about a gigabyte.  That's about as much as having  an electric fire on  during the video you're watching.  And  it is a challenge  because there is only moderate incentive.  You don't see that cost going.  You know straight electricity is going up  but it's very hard to see the transparency.  It's actually your route to deliver.  It's actually your PC doing it.  Your PC is the other big one in the home  of the new century. You can these days get  at least if you put linux on it  and don't waste money on Microsoft.  You can get a top of the range  32 gig, i7  computer with a couple of terabytes of disk  you can build back yourself  for about 500 or 600 pounds.  500 or 600 euros.  You will spend  over the two or three years you keep it  three or four times that much  on the electricity to run it.  But because you don't see it  it's just part of your bill you get every month.  You don't realise that. So there's an environmental problem there.  That's why actually in this area  legislation matters.  One of the things that came in a few years ago  is the European Union started saying  that standby  currents had to be really low.  Up until then, if you had a piece of equipment  like your video player  when you put it on standby  all that it did was it turned on a little red  LED to tell you it was on standby.  So it actually burned more power in standby  because it actually had to power the LED.  That's changed now. These days when you turn  things off they will typically only  use a handful of milliamps  not half an ampere an ampere.  The mobile phone we've already talked about.  We already know that one.  You don't need legislation there because  if you can make your phone last  for hours and hours  then people will be very happy.  I'm impressed. My old laptop  the battery lasted for about two or three hours.  This laptop, the battery lasts six hours  the replacement for this laptop  which is now available, the battery lasts  14 hours. So there is a big commercial incentive  at Samsung  which is to make this particular laptop  take the big thing of the fact  buy our Ultrabook because our new one lasts  14 hours.  Here's the one  that  actually is not one that's  immediate obvious but has a perfectly good commercial driver  a lot of remote sensing  goes on these days. In fact it's the big growth area  that's why we've got internet and the finish here  is big activity. We put remote sensors  everywhere. This one's of an electricity meter  the cost of that  is actually the guy who comes out  and replaces the battery every ten years  and as one of my colleagues  pointed out the electricity company  couldn't get around to replacing his battery for a year and a half  so he had a year and a half of free electricity  that's just  stupidity for the electricity company  but it is a cost and if you can actually make that battery  need to be changed every 11 or 12 years  you make a big saving  to the manpower and it's changing.  But other sensors are in other places  where changing the battery isn't just expensive  it's almost impossible.  There are frame gauges under bridges  it's really hard to put in place  deep sea sensors  if you want to go and send the sensors to the bottom of the sea  you're going to want to run for two or three weeks  before you bring it to the surface to transmit this data  so all sorts of remote sensing  has an incredible  motivation to have very low energy consumption  and the industry objective  is certainly the resort meters  are standard AACL  which has lasted for ten years  and lastly  is energy scavenging  now energy scavenging  draws on  tiny amounts of electricity  so this one's a little hobbyist thing  a little Zigbee transmitter  that can pick up stray  electromagnetic radiation  and get enough energy  to run the computer, run the Zigbee protocol  but other applications  are devices that are implanted in the body  so you don't have to plant a battery with them  sensor devices  that you can pick up scouting  and those devices  use incredibly large amounts of power  nano amps, nano watts  nano amp currents, nano watts  of power  and  we'll be hearing a little more  I suspect from Simon Pollis about that  because he has sitting on his desk  a very large piece of equipment  which is like a multimeter  except it's for measuring pika amps  and you can sense when someone walks into the room  because the amount of current  that loads into the room  so  the message here is that what we're talking about today  is actually very broad spectrum  everything from the nano watt to the gigawatt  and it's an area  where  it's not just a hardware problem  it's a software issue as well  and to illustrate this  we have this graph  now this graph comes from in Kirsten, Ada  the bottom four bars come from  mental graphics based on  actual scientific experiments  to work out how much  you can save energy in hardware design  the top four are  speculative by the in Kirsten  looking at what we think  conceptually is the potential you can achieve  if you start involved in other things  so the bottom four layers are silicon chip design  from the layout  how you put things on the actual silicon  to the game level  and the nor gates up  to the RTL synthesis level  where you're talking about registers  of flip-flops  and how you organise layers  up to the architectural level  do I put a cache here, a cache there  do I have a big cache, a little cache  do what software do I have  but above that you start to get into the edge  where software matters  these bottom four bars  hardware guys are brilliant  they can change the voltage  they can clock gate every circuit  they can give you sleep mode  and I quoted the example yesterday  of one of the little 8 bit AVR  chips  which if you run it  on its standard configuration  with a 2 MHz clock at 3 volts  in standby  it'll take about 290 microamps  so the best part of a milliwatt  now that's pretty efficient  but if you don't need the compute power  if actually you only have to do the occasional  little bit of sensing  you can run it at 32 KHz  that flow frequency you can drop the voltage  to 1.8 volts and then it'll use 4 microamps  at 1.8 volts  so that's about 8 micro watts  instead of 1 milliwatt  huge potential there  and that's been achieved by the hardware guys  the issue is  that the software people have not been  actually told  so we think if you look at the instruction set architecture  and start to think about  how you design your instruction set  you can make further savings  if you actually think about the programming languages  that have programming languages  that can help you program for energy efficiency  we'll be hearing more about that later today  you can make still more savings  my specialty  you can improve the compiler and we'll hear from James Palaster later  about how some of his work  can take a program compiled with minus 0.3  and then in some cases  half the amount of energy it uses  as it happens it also speeds up  by twice as much as well  so the compiler can make a big difference  and again of course  the people at the top who can make the biggest difference  are the people who write the application  now the best example I know about  is an embedded Linux system  which was using far too much power  a simple embedded Linux system  that you can plug a little console in to check it would work  and they spotted what the problem was  that console had a flashing cursor  so the Linux system had to wake up  twice a second to flash the cursor on  and flash it off  they turned the flashing cursor off  and the energy consumption went down by 7%  so if you're an application engineer  you can make a difference  of course to make that decision  you have to be able to measure the energy  and that's a big theme  that will come out today  is about as software engineers  I can only solve the problem if I can see it  and we'll hear a lot more about that later  so just to have a look  of what this actually means  what these potential savers  suppose we had a 1W design  well if we improve the layout  of the silicon we might get it down by  20xW  if we start thinking about actually how we use  our gates, our nand gates, our law gates  we might get it down by 0.9  we start looking at the RTL synthesis level  the actual blocks  of gates and flip-flops and so forth  we'll get down to perhaps 0.8  we start thinking about the architecture  how do we design that cache  and that pipeline  that's when you start to make quick savings  and you can potentially get down to 0.5  so instead of your battery going flat  in 1 hour  it goes flat in 5 hours  but we think when you go about there  better instructions then architecture  it's probably double that  now it's got a 10 hour battery  better programming languages  where I can say this doesn't matter  if you can do this in low energy  this thing's got to be done quickly  burn a bit of power to get it done  maybe we can get it down to 0.5W  now at this stage  our 1 hour battery life has to become a 20 hour battery life  the compiler we already know  can do a doubling  of performance so that's going to get me up  to a 40-50 hour battery life  and lastly if we don't go around flashing  cursors when we don't need to  potentially we can get  100% improvement  so we think there is actually a potential  all the way through to the stack  to make our devices 100 times more efficient  we need to prove that  because it turns out  actually software engineers haven't done  a tremendous amount of that  over the years  and what you'll learn today  is about some of the initiatives going on  and the great thing about them is  how much of that is open source  and that's why  ultimately this problem has been solved  if everyone takes part and we're not going to achieve that  by keeping it all a secret  looking at what we're going to do today  we're going to have a look at some of the research  end of things  this stuff is open research  and that tends to be the approach that's used  they've all got acronyms  and you'll learn what they're about  interestingly this research  almost exclusively is not pure academic research  it's joint industrial academic  it's funded by organisations like  the European Union  who exist on it  being joined between companies  and governments  it's funded by organisations like the Technology Strategy Board  in the UK who again say  yes we'll fund research but the company  will be leading in the university  so ECOF is actually a student project  they'll tell you about how you can set up  a software framework  which allows you to have API calls  in the program to keep an eye on how much power you use  we're here from Speedo  which is a collaboration between Cambridge University  and Ultrasoc  who make debug hardware  to try and get more efficient  debug visibility  of energy  we'll hear from Enchamp  energy transparency  a huge European project to make sure software engineers  can see the problem  how do we make it so when you run your program  your boss comes to you and says how fast it goes  how small is it  and you ask him how much power does it work  we'll hear  about ECOF  I've put ECOF in there twice  that should say MAGEE  the machine guided energy efficient compilation  I've actually left out my own project  so we'll hear about MAGEE  we'll also hear from Enn industry  so William Monti is going to come here and talk about  Enbed  which is an ARM NXP rapid prototyping platform  and he's going to talk about it  particularly in the context of its use for  energy efficiency  and then finally  the big thing we're doing today  is  we've got a workshop  a three hour workshop from lunchtime  where we'll be letting you get  your hands on one of these  and we've got 50 of them here  this little board on top  it's for measuring the energy consumption  of  computers one of the things we found when we started  this research was you can do this stuff  but the kit costs thousands of pounds  what we want is for something cheap  so even in the low volumes that we make this  this costs tens of euros  it's a cheap board  it's only the board on top I'm showing you  this thing underneath is a standard ST discovery ARM board  it's to take the results and process  and split them out from the USP  it's the board on top that has the measurement  that can measure your energy consumption  6 million times a second  James up there  and it's managed to get it just about to the stage  where you can measure the energy used  by a single  instruction on the computer  we'll be teaching you how to use these  if you last do the workshop we'll give you them  to take away thanks to the generosity  of the UK Technology Strategy Board  who paid for 50 of these kits  so that's  what we're going to be doing today  it's Debrun, it's Participatory  ask questions, interrupt  tell us what you think  the idea is not just for us to push stuff out  that way what we've learned is every time  we talk about this we get a tsunami  of good ideas, have you considered doing this  and so we're expecting to go away today  with a fantastic  array of ideas of all sorts of people  what you can do now you can do  really serious energy  and that's me done  the next up is Simon Hollis  from Bristol University  Simon  designed the energy measurement board  he's going to actually take us through  some of the basic  physics of energy  and software which we'll set the framework  to understand what we're doing  while Simon is setting up  any questions?  yes  so you mentioned  what sports you think we're learning  do you think men can tell us  I'm sorry yes  there is a slide which I gave yesterday  about making sure you don't get muddled up  between energy and power  I meant what hours  in other words  power is how fast you use energy  energy is the  multiplied time by the power  of the waterfront  it comes from  it comes from a paper  by Kate Craig Wood  where she did an analysis  of the energy consumption  on internet media and transactions  if you look for Kate Craig Wood  energy of internet transactions  on Google you will find it  it was just research permission  by the energy efficient  computing special interest group  of the technology strategy board  which is more active in the  she's at Surrey University  she's also an industrial  news scientist  and a pretty thorough review  of her research and research  about Васily  and her scientific armies  of the Third Amanian  then she visualized  I mean, if you are not measuring applications and machines,  we also could connect with the supply.  Like, we have a certain energy supply,  like, by a certain angle, that's that kind of,  we have only supply, we have supply of supermoto energy  at the end of the week, so it's specific hours.  So we have to also do supply, and then, like,  this doesn't connect to the unit.  We have worked in that area.  I mean, one thing you learn when you start doing this  is quite how wide the spectrum is.  We focus on looking at individual computers,  so we tend to be connecting across the power supply  to computers to measure that.  But it all fits into a bigger framework  of how you fit into strategic energy supplies,  what you do about internet and then on supply, and so forth.  And there are people looking at things like,  why do we pump energy to data centers?  We've got these wind farms up in Scotland.  We've got our data center in London.  Why don't we put a computer at the bottom  of actually the wind farm?  Because then it's a lot easier, a lot less energy  to pump the data once you process it,  and then pump the energy to process the data.  So yeah, there's a huge range of things to do.  Right, I'm going to unplug, and in two minutes,  I'll hand over to Simon Pollock.  Thank you very much.  Thank you.  Thank you.  Thank you.  Simon, can you sort out this camera  just keeps drifting downwards.  In a second.  Cool.  All right.  Yeah.  Yeah.  Where is the drift?  Is it in there?  So it's in the vertical.  So that's this thing.  Just give me some of your name.  Yeah.  We've got, it's only just top.  That's on those titers.  That's slightly better, isn't it?  No.  OK, that's fine.  Support camera, just going to try and put that up.  Linus, do you want me to?  How do you want me to line the shark?  And so...  With the slide?  We have 92 minutes, by the way.  I'll stay this side.  But it's still drifting.  It's not that.  It's just that.  There's a camera too far forward.  Maybe.  That seems better.  Still drifting slightly.  OK.  It's in my bag over there.  We should start now, really.  Is that OK?  All right.  So, thank you for coming to the second talk about the Dev Room today.  My name is Simon Gullis.  I'm going to talk to you about how to measure the energy consumption  of small embedded systems.  Everything I say applies to measuring big devices, data sensors,  and small devices.  So, we're going to go through some fundamentals about  what you need to know if you want to accurately measure energy consumption.  And we're going to show how you can build up things like  what we've got on display at the workshop later on.  These are made from rude energy measurement devices.  They're very cheap, very simple.  You've just got to get to the designer.  So, as I'll do, I've got some of the slides here to James.  He's got the back of the room.  He's going to give me a few crafts to do.  My presentation is running away with me already.  No credits.  I'm going to take a few more.  Yes, no.  Okay, so I'm going to think quickly about me.  We focus on small systems, embedded systems, big systems,  and I'm mainly united.  Myself, I focus on small systems, embedded systems.  Something I do is I build small systems.  I build big systems out of small systems.  I'll show you later.  I have 600-plus built-out devices.  And we focus on end-gear-trization.  So, there's pretty much magic projects.  Jeremy just introduced that and we'll talk to him later.  These are things I'm not going to cover now,  but they're very interesting.  So, I'm interested in talking about them later.  So, this is the talk I'm going to give.  We're going to talk about why I want to measure energy.  We're going to talk about energy power.  We're going to talk about measuring power efficiently.  And how well we can measure.  So, what is the accuracy we should aim for if we want to design the measurement system?  And then I'm going to introduce our open measurement design,  which is available, and we've got loads of them,  and we play with it in our workshop.  So, let's start with why we want to measure energy at all.  Well, why do we care?  We care for a bunch of reasons, man.  Jeremy gave me the idea of our power station,  to be closing first, but there's more fundamental things.  Most of our electronic devices are building now  and mobile, distributed devices, they're often run from batteries source to any battery.  You have a battery, you have a fixed amount of energy in your system.  It's the capacity of the battery.  When it is run out, then you have to change the battery or stop the computer.  So, that's a very finite supply.  So, the more you can make efficient use of that,  the longer you can really compute the high-swap.  It comes at a cost, if you're mentioning a billion dollars for Google.  Well, it comes at a cost even for me, I make this decision about whether to my server  or an offer tonight, because I can say the good proportion of electricity bill.  But that's not generally made aware, so it's not seen by.  It's all we want to do is to make it aware to programs,  that when they have the primary choices, they can see differences in the output of their current.  And then actively make a choice for these four.  So, that's about energy.  We're also going to talk about power.  And devices now also limit any amount of power.  Not just as open-minded energy, they can take with them how quickly they're going to display power.  And there's some really good reasons for that.  The cooling limitations, so my phone is in the back there,  has a cooling limit of 2.5 watts.  If I use any more power than that, I'll burn the hand of the user.  And I'll see.  So, this is a design constraint.  I can't buy a lid.  I can get, plus this is a little bit, I can drill holes,  and then I can buy three watts, three and a half watts.  And after that, I will burn the user again.  So, that's the real power limit.  That's human to be taken.  We've got practically efficiency.  So, as you use the amount of power you take out of battery, it pulls less efficient.  So, when the total energy available in the system reduces, if you take it at a faster rate,  then that's the penalty.  So, we care about power, so we'd like to reduce it.  And then there's cost.  The client has a system that has a bigger power supply,  because then you take more peak power, the higher the power, the better the take.  The actual cost of water bill, that power supply, the power supply, the bigger.  And that has a cost and a majorization.  So, these are really good reasons to worry about both energy and power.  In everything that we do.  So, we just get straight the momentum here.  We have energy, which is, this physical quantity measures the work available to do  for the system or the work that we've done in the system.  And that we can relate to the amount of computation that we've been working for.  So, there's some efficiency in computation compared to the amount of energy that we've been putting.  And if you said, I've fixed energy, you've got more energy, you do more computation.  In electronics, the energy goes to heat.  And heat's up. That's how we lose the energy.  So, your battery turns into a portable electric heater, that's what happens in your water devices.  You realize, I've got my hands over on this side of my laptop, it's nice and warm.  And that's how we use it.  So, this is physical quantity, and this is the limit of the mass we'll ever do.  So, today we'll have a little bit of mass with all the energy here, and we can relate it to power.  So, power is a very big change in energy, and so that we perform this integral.  This will turn out to be very useful later when we want to do energy measurement.  Because what we can do is, we can power measurement, probably, in the equation, you know, we get.  And both of these use-expects, I've shown you use-paces where you need to limit energy,  and also where you want to limit power.  So, that's why it's nice to be able to do that.  So, give you an idea about how this works in practice.  What you actually do is, you make a series of measurements.  And so, here is a scenario where you make power measurements over time.  And what you gain is little thin bars, and there's a reason there's gas between these bars,  and that's typically what you do is measurements, and there's a rest period when you've calibrated  the next measurements, and then you re-dubbed it.  So, you get gaps, and you get instantaneous measures.  And you get a lot of these different things here. So, you don't get the full continuous logics.  But you get this idea, and so you get the idea that the system is taking a bit of power,  and then taking less power, and it varies around here.  You can convert that easily into energy.  If you have that set of measurements, you've got set power measurements now through time,  and you can say, I'll see if I can put something into the device.  You can also then perform the integration process, which just measures the area under the curve,  and the energy. So, the volume under the curve, the area under the curve is the energy,  and the measurements are power. So, you get both of them once.  You just measure the power, and you have everything you need for energy, and more.  So, energy is typically the ultimate metric that you want to measure when you're working  to maximize your battery life. And you can say some things that are nice.  And if you know the amount of energy in your battery, know about energy your computation takes,  you could say things like, well, I have 10 minutes more video time with energy.  And that's going to be very useful to the user of the device.  You can say, okay, well, you could do your watching the film, but you won't get to the end.  And then you won't be able to make fun of it.  So, as a choice, you can actually measure volume, curve, or phone, or whatever it is.  What's going on in one frame?  There's a big problem in computer science, which is that now we've used many applications  that determine this. This is all the things that APC systems, where you power a big computation,  it runs some amount of time and it's all in the data source back.  But most devices now in better devices just run kind of for every or best effort in a loop.  So, sensors will never terminate.  The device is going to run my toaster, they never terminate.  So, I'm just going to turn this to a turn and just check in the button, and it's being pressed.  And so, you can't actually measure the total energy that the patient should have finished it.  You can start around to the end of the universe.  So, for this point of view, it actually makes more sense in terms of how you're supposed to measure the power.  Since then you get an idea of what's going on in the other frame.  And you can, of course, collect the parameters and say, this is the range I've curve by myself.  Do the integration of the curve by just doing it, and then I'm going to know what's going on in the system.  So, the power is, this is the thing we want to measure.  So, we had the option, we could have measured energy directly.  But by using power sensors, I think more energy is needed to use it.  We can get energy, ignore it, get more information, and we can do programs that don't come in.  And thankfully, it's easier to measure as well.  So, we're doing the situation here.  So, that's what we do.  We choose to measure in the modern computing system.  We only want to measure the power it takes and then do the maths later.  So, all I'm going to do now is just go,  and flip it into the fundamentals of the way the energy is going,  where the power is being dissipated,  and then we'll just show how we can measure all this.  Any questions so far?  So, we're going to just recall a little bit of kind of schoolboy physics.  We've got Jules first of all, who says,  the power in my system is the current in my system,  I squared times the resistance of the system.  So, if I have current and resistance, I can measure power.  And so, that suffices to know if I can fix the resistance,  which is the thing that I probably want to do,  then I only have to measure current.  I measure one thing, I know one thing,  and I can measure the power of the system.  The problem is that if you apply this to a computer,  the resistance changes, the effect of resistance changes to any water.  So, that is no longer the case.  So, I can measure current potentially,  but the resistance, I don't know,  it'll be different whether I'm doing one instruction to another instruction  or whether I'm doing a service for the sleep mode by sleep mode.  I can't do it.  So, what we're going to do is we're going to deploy  lots of just rearranged bunch of these terms to expression.  And what you see here is basically I can rearrange these things any way I like.  So, I can look for voltage based on the current and the resistance of the system.  I can look for resistance based on the current,  and I can start substituting it into various types of Jules.  So, to combine the two goals together,  this one here, which doesn't require me to know any resistance in my system.  So, that means that if I could measure the voltage and the current at the same time,  then I'll be able to divide the power of that and to know the resistance.  But in other words, resistance only has a pressure.  And so, this means that you have to have a choice to have a particular temperature  because we can choose which is the easiest thing in a particular scenario to do.  And we can get away with the rest of the things.  So, we're going to come back to that when we show how to fill the system.  But now we remember resistance, pressure, and say,  these are the things fundamentally take the energy of computation.  So, I'm going to talk about an area called dynamic power dissipation here,  which is the thing that isn't just about sliver of silicon and more than you're  self by just having a multiple-cosic.  That's another part of the instance that you're not going to say.  But this is what happens when you do computation.  We use these elements and they participate.  So, here's my transistor.  This is a modern MOSFET transistor, the symbol on the left.  And this is the reason why diagram work looks like, what it used to look like  because it was 20 years ago, but now this would be jagged all over the place.  So, it's one of the big physics.  So, we've got two different types of silicon.  So, we're going to use silicon here.  And the idea is that this transistor will be able to be switched  according to a voltage on the gate here.  And if it's switched on, current passes between these two blocks of n-type silicon.  How many are switched off?  Current's not allowed to pass through that area.  And if it's blocked, that's how it turns off.  So, this is the device you can turn on.  You can turn off based on the voltage on the gate.  And if you move the voltage from the gate, you will just bear power.  Why?  Well, the first thing is, these essentially, we've got one point of view.  The two materials are separated together in the arm.  So, whenever, well, let it go to the maximum.  This is a lovely parallel structure.  Our industry has done so well making these big mass-produced, very flat devices.  So, a lot of big parallel structures where I've built myself is a parallel, very plastic one.  And it's about as long as a transistor.  So, if I'm actually using the voltage as an endpoint circuit,  I actually start charging and discharging the cross-contact system.  That's that part of the circuit.  So, that means that I have built this in one.  I've got a slide out of this.  I'm going to go to the next bit of the slide.  The other thing that happens here is that we have resistance.  It is a semiconductor.  The word semi is in there.  It's not a great conductor.  It has resistance.  And the critical resistance.  And so, when I try and turn this thing on,  and I pass current between the source and the current,  there's resistance in between.  And that resistance is seen in the channel and that contributes power.  And the reason for the power is that we just look back at it. Ohms law and Jules law.  We had a voltage across resistor.  That was the channel.  And it had a resistance.  And therefore, at this space of power.  And that power is squared.  And this is one reason it's so good to treat computers.  To treat computers, you can reduce the current to go through  just to power these with the power of one.  And this one, the power of one.  So, that's one effect.  The other effect is the capacitance, which I think it can do.  We've also had a cluster here, which is built in transistor.  And the cluster is related to this equation here.  This is the charge.  It's essentially the energy and the capacitance and voltage.  So, whenever I change the voltage on line transistor,  I change the charge in the capacitance structures.  And that means that I change the power.  And the energy here is just how often I charge the discharge in.  So, whenever I change the value on a resistor and a resistor power,  whenever the transistor is gone, a resistor power,  so there's a range of ways that I can then just take power.  To give you an idea, here's a circuit.  This is a full-added circuit.  And we recognize this.  This adds together two or bit numbers.  It takes a pair of bits of basic bits of circuit.  You'll find in the heart that you like this.  So, if red says this is a high volume, so this is a lot of 1,  black one's probably 0, this is the path I wrote it through my circuit.  So, it takes some path between the inputs and the outputs,  and it charges up a bunch of transistors in the various gates to which it's charged.  So, there you go.  Whack, I've taken some energy.  You look at the output there, and that first tool gate,  once I apply another high input, it changes from red to blue, blue here meaning a low voltage.  So, the voltage there changed, from there to there,  and as it changed, it swung the full voltage in my power supply.  Which I would have to have a lot of switches, probably one voltage and one low voltage.  And so, it discharged a capacitor via volt.  And so, we now consume power by that.  So, that's the reason we use the energy.  And there's a further effect which is down to, here's a converter,  there's a single input, single output,  and you get the opposite of what you put in.  If you build this device, you build out two transistors,  and you have to arrange transistors in such a way that they are connected together.  And when you change the value on this, you know, you really want to change the value,  for a moment you turn on both of your transistors, at least partially.  When that happens, you actually connect together your power supply,  momentarily, and that's at your circuit,  and that just pays life for most of the power,  but for a very short amount of time.  So, these are the reasons that we consume power from the measurement in the device.  So, if you look at what influence is the rate of power consumption,  so I showed you that the transistors, particularly the capacitor you've changed the values,  the more you'll discharge and charge the capacitor.  So, if you've got faster plot, for example, you've been changing those more often.  You've been faster changing the, flipping the values of wires,  and then one second you'll do the thing, do more of the discharging,  and you'll just make more power from this one.  Okay, any questions about this part?  All right, so, okay, fine, so we've just done all this.  How are we going to use it to measure the power process?  Okay, so let's get on with it.  Well, we can measure, you saw we measure power with voltage,  the currents are the same time, the resistance and the current.  The voltage is really, really easy.  You're following a multimeter, fully euros, bad multimeter,  and you can stick it on, and you can measure voltage,  reasonable accuracy, like expensive multimeter,  you get really good accuracy.  You can buy an oscilloscope off the shelf,  and you can attach this and measure voltage,  and you can measure really good accuracy.  It's fairly flunky, and it's very fast to make.  One, the strategy we use is to use a single,  the analog digital converter, because it builds into  a very large number of, off the shelf devices,  in the embedded space particularly.  And we can make use of the heat, and measure all the heat.  So here's the high level block diagram.  So at ADC, this is a block of a microprocessor,  like this arm-based microprocessor we have on here,  and I've not got one.  If anybody can think of, produces this FPGA something,  they're really good.  So you apply a voltage in to an input from the ADC,  to go to reference, ground zero volts,  and it measures that voltage, and it gives you a digital plug.  And it gives you some resolution,  so 12 bits by common resolution,  and there you have your hub.  You now have a measurement voltage,  and you can start a fire on the board.  Typically these things work to about two and a half volts,  in an embedded device.  So any volts which are two and a half volts,  you can just make a map.  Because if it's a little bit of a power load,  like a virtual winter, it consumes a huge amount of power.  I have a short slide of that data,  but the ADC is actually one of the most power-hungry components  of any device, and we were finding one.  So what we do actually with the force,  the workshop, the open-put design,  is we separate this out into several boards.  You don't care about the power.  That board uses, you know, the, like,  the ins-tiler, sort of, a lot of check-in results,  into a big time over the, on the victory.  Yes, it uses, it's very infinite.  In fact, when it's sort of going to measuring,  it's infinite, because it's disconnected,  and so they have a sample,  followed by conversion mechanism.  So it'll be a bit of a dis-factor.  But yes, they're really powerful.  You can see, there's a demo, I think,  where you place the switch on the ADC,  and you can see the energy consumption before it.  So this is a big disadvantage,  but if you have a separate device,  it's a great question.  And one of the problems that we encounter, though,  is that these devices,  typically, were the device you'd work with by blocks,  seems to be, you know, hand-to-hand.  And often, your power supply is maybe higher than this, right?  They may be five volts, three volts,  two volts, two volts.  Here we go.  Now, we can actually do some really simple electronics  to bring down any high voltage into that measurement range.  And this is the, the obvious thing,  first, you want to build this script  called a potential divider.  It uses two resistors, and that allows us to drop  a high-range voltage into a small number.  And it's shown by the equation that's up there,  and V out is the voltage in times of ratio resistors.  So we want a half voltage range,  so we have zero to five volts.  We put two identical resistors in that.  We'll get zero to two equal to five volts.  And then we bring this range into the heat.  So that's, that's, that's, that's easy.  Um, and we will, we'll do that when we need to.  One of the problems with this design is,  you get this current flow to the resistor.  You basically put a mass factor in the power supply.  And so, you have to account for that.  So if this part of the idea is part of the idea  of sending air out of the microprocessor in the measuring,  then you're actually adding current onto this,  into this current.  And that means you'll get a force result of that power output.  It'll be off by the amount of current that goes through that.  But thankfully, these effects resistors,  you pick them up for shelf, and they have values.  So you can account for that, but you do have to remember  to adjust the results.  Your process actually takes less current than you thought it did  because you're wasting current you make.  And this is the kind of thing that can affect results  if you're on a careful project, if you're on a members' deal.  There's nothing hard, but in general, don't really get hurt.  That is the move. That is the first way.  So that's quality measurement.  Let's talk about current measurement.  So current measurement is actually a little harder.  In the old days, it wasn't harder.  When we had all these wonderful machines with moving ions and coils,  we measured the flux directly, they were all fantastic.  And then we used current and it was nice and easy.  But these, if you don't use these,  you have to use these like electronics and you can use these  to do what's made of them.  And these were compatible in not the accurate function.  So what we do now is we want to measure current.  Most commonly is we measure the voltage band.  And we use Ohm's law in order to transform the measurement  of current into measurement of voltage in a known distance.  The I squared R is the voltage.  So you use Ohm's law and what we'll do is we'll place  a known resistance across the power supply.  So if you don't hear, I've got my processor supplied here.  There's the main power supply coming out of my battery.  And I place a known resistance in that wire.  Then what I do is I get a small voltage that appears  across the resistor based on how much current flows  and I can measure that.  But it's a differential thing, so what I have to do  is actually pass it through and I think the measure  is different, of course, rather than absolute voltage,  before passing it on to the initial.  This guy's called the differential amplifier.  It takes the voltage here at the top of the red line  minus the voltage of the blue line and that's the output.  So you don't care whether this is quite a voltage  or three volts, it's certainly different across the resistor.  Is it direct or proportional to the current?  The problem with this approach is that this  resistor, you have to put it into a power supply supply.  And that's what I spend a lot of time on.  But it's an invasive mechanism.  If it's not already there, which probably won't be,  then you've got to insert it.  And you've got to pick the right kind of resistance value  so that you don't stop serving looking.  If you've got a really big resistor and you can't supply it,  you just can't supply enough power to the microstructure.  The microstructure will fall over.  If you have it too small, you get a very, very small voltage  appearing across the resistor and it's very hard to measure.  It's tiny for 0.00 or something, but...  So you need to look carefully.  Here's my guidelines.  Most never microstructure will deal with up to 0.05 volts  changing the power supply to that current.  If not specified in the data sheet,  that's an absolutely fine measure to be in.  And so if you want to maintain that,  a maximum drop across the power supply,  these resistive values, which happen to be exactly the same  as the ones that I'm making for,  are given cover this range, which is the range  of typical microstructure.  Microwatts and octogen is going to take a clamp  to make it more powerful.  Armboids will have to take over that one.  And so this range, which I'm going to resist to,  gives you the allowed voltage drop, but it is still very small.  So what you're now doing is feeding this kind of voltage  into the DC converter in a microprocessor,  which has a range of 0 to 2.05 volts.  So you're using some tiny, tiny part of that range.  What it wants to do is to maximize the part of the range that you use  that gives you more resolution, gives you more points  inside the range that you do in the discriminatory field.  So what we do is we have to amplify the animal domain,  the voltage used in the sea.  So we don't just create that differential voltage,  we also amplify it at the same time.  And here we do the amplitude of 50,  and that's in scales of 0 by 0 of 5 volts into 2.5 volts.  So we then cover the exact range that the ADC is sensitive to.  And that makes me a little useful.  So your question then is how do you build that amplifier,  depends on the amplifier.  Well, that's the stuff of electronic engineering students  from WorldOba in their first year.  You can use this device for an operational amplifier,  well-known, not tested, and it's very easily available off the shelf,  and you build exactly the circle.  So you've got three connections on the device,  the French rhythm first and the slow hand first.  And then what we do is you're adding in a simple feedback,  which gives you, again, an amplification ability.  And you can set these, this is the future times gate,  I set this one here to 50,000 ohms,  this one is 1,000 ohms,  and you find that technical, you ask me,  and then what we do is just take that,  and this is part of our plan.  The downside to this is, well, I started just thinking,  well, shall I build this circle,  so we can make it forward based on it?  You find that weird thing,  the fact that you've got four resistors here,  and that's more cost, so there's 70% of the measurement,  then it does divide the operational amplifier.  And that's because 70% of the robot has to now go in  those four more places and you've got four more resistors.  We've got two different ideas,  and there's an actual cost to making it.  So if you wanted to master use this,  there's a way forward to that track.  And it's annoying, breaks on the out,  it doesn't look so pretty, all sorts of things.  And so we actually buy off the shelf,  it's indicating current sense amplifiers,  they're designed for this application,  the process resistor,  and they have fixed amplification,  and there is a lead one that gives  a significant amount of amplification.  We use one that's a maximum,  they produce a range of these devices,  one or four different inputs,  different inputs,  you can measure it to four parts of the device at once,  and that's what I've got at four, I see.  And you do all of this,  and it's a relatively expensive chip,  but it's not, you know.  The device is, now, this fundamental limit for bandwidth,  which says, what is the fastest that I'd amplified?  What's the fastest signal?  And these devices are very low,  and that's because they amplify so high,  so high, and they go up to about two megabits.  And what that means is that you can't measure accurately  a signal that's being passed in a million times  separately in the devices.  If you use these devices, there's no point  in measuring the capacity of the map,  because they don't have bandwidth of power,  and what's the difference?  There's no point in there?  There's, well, there's not quite no point,  there's little points in that,  because what you've done is you've created a system  where, go back to this diagram.  So you've got a system here.  If this can measure very, very quickly,  you've introduced in the middle of weak link.  Okay.  So this kind of passes all the information  from the resistor into the ADC,  because it has this limit.  And so the ADC can go faster and faster,  faster and faster, but there's no more information  to the map got.  And that's just in the front,  and what?  It's this, it's a function of the transistor,  the transistor, the building of that device.  If you drop the amount of amplification,  you can push that up, and this is a trade-off,  a fixed trade-off to you,  how much you'll have to multiply the voltage in the signal,  and how quickly you can do that.  So if you drop that down,  and that's why there's a range here,  because there's a range of amplification  between the input of times,  and if you input by input times,  it's your reference.  If you apply the input times, it's 1 by 2 million.  So you have to choose that.  So you choose where you'll lose information in the ADC.  So for this value, let's say we have some,  say, we'll be that way faster, higher,  and we'll be,  we'll use some information on the device,  which we can,  you'll lose, yes, absolutely, you'll lose that information.  Is that, is that then powered,  or is it,  So there's really no question about what information is in this one.  One of the things happens when you,  when you pass a benefit,  it smooths the signal,  and it fundamentally smooths the signal.  So the total,  if you were to take an infinite number of samples,  you'll get the same representation of the total energy.  But what you don't know is the shape of the curve.  So you don't know when it went up and when it went down,  but you will see the total in the user.  So you lose the ability to say,  well, it was that part of the loop  that took a lot of power,  or it was that part,  and you could just say, my program took this much,  and that would still be an accurate answer,  and you can't tell where in time.  You know, it's also,  you know, it's in the actual power,  it will measure,  it will measure, the power readings will be different,  but the integral, the total energy will be the same.  So your energy figure is still accurate,  but your, your winning happened,  is less accurate.  And that's something to be really aware of.  That also means that you kind of do math,  and you have to be aware of the limitations of  repeated measurements to find gain or information,  because the total is always the same.  But that's, that's an annoying sense of the word.  You can buy a more expensive device,  but to push away the limitation,  you can build a much more specific,  you can always give it, almost always give it.  And the other thing, the problem is you have this device,  is the analog digital converter part,  and has a built-in error,  because what you're doing is you're taking a continuous  one-stream which is voltage,  and you're producing a binary energy,  and you're producing a very specific one,  and so you, you can have error,  and that's almost always half of the distance.  So when you take a value,  and some measurements, you can always  basically start releasing the,  or at least average it, a multiple cycle,  because that will essentially randomly fit,  just depending on exactly how your energy is,  etc.  The movement conversion time,  the ADC plus the speed limit and the measurement,  and that means you can't pass the ADCs,  and then you can always expect power,  so there's a question earlier about that.  That gives you a bias example, you've got a memory to take that up,  and a binary one, they generate quite a large amount of data,  even a small, quite slow ADC.  Excuse me, how do you actually interpret this?  I don't.  Half an error is used, and the AC can be taken...  Bit, sorry, bit, bit, bit, bit, bit.  So you've got 12-bit representation,  the bottom bit is 0 or 1,  plus or minus 0.5.  Yeah, I know, I think it's absolutely...  You're right.  Sorry, yes, at least a bit.  Give you an idea, if you bought a device like this going,  a million times a second, you'd get a total of bits,  a sample of the rest of the data,  and you then max out a USB one.  One of the problems we have with this device is that  embedded devices can't be not great at doing USB,  so getting the data off here, even though it does USB 2,  it can't max out USB 2,  and we don't have to get off all the data in the great one.  Even though we only made it this country.  So that's well worth remembering.  So what you can do is you pre-process data,  you put a processor line around, you do that as well,  but you do want to say,  okay, do I have an idea, or is it important information?  Do I need every sample?  How much do you design?  Maybe more...  Do you need to be concerned about the tolerances  on the shared resistance?  Yes, absolutely.  So the power consumption measurement you get  is directly connected to the resistance,  the third portion of resistance,  so if the resistance changes, then it always has a  tolerance error, and then your measurement is out by that as well.  You can of course measure the resistance in the stone core,  so you need to be careful.  For this reason, we came to the change of the book,  in the open source design,  we specified some very tight torment resistance,  0.5%, resistance, certain,  and minimize any difference.  So the true resistance is something that we must apart.  What about the huge data?  What about non linearity of the...  Yeah, that will be specified in the data sheet,  where that happens typically they are  internally covered to reduce linear output,  when you get the binary representation.  But these kind of things depend on the ADC that you use,  and you have to read the data sheet,  it's always going to be up.  So you normally get a linear binary representation,  if it is not linear, it's going to be a result.  Okay, so we've got some other limitations.  Everything's got great.  What the problem is, we had to connect in  the shunt resistor into our resistors,  which means we either need a ball that has one,  or we have to do some desoldering,  followed by some soldering.  What we have to do is remove one component  to make space for a soldering to wire,  and then add in whatever you took off,  plus the other way of doing it.  We have an idea of what these kind of things look like.  This is a board we have back in our lab.  This is a power supply, it's a one volt power supply.  We've got a chip here, it's a power supply chip.  It's a switch mode power supply,  so we've got to do it in here.  Here's the little shunt resistors.  Magnified is quite a lot, so it's really tiny.  There are three points, and you can put  multimeter in here, or you can put  the little update that I've just shown you  across these two sockets, and then you will get the main one.  That's nice.  The most devices don't have that,  so the Beagle one doesn't have it.  We have this is a tap handle soldering,  and I think you see this one on the stand if you want to.  In here there was some power supply components  that were removed, replaced by a bunch of wires  and a bunch of glue, and then everything is connected in.  Externally.  If you want to do that kind of modification,  you need to know which components take off.  There's some that would take it off to the break,  some that would take it off to the work break,  and you need to know where to put that into.  There's two popular types of power supply,  and they have different components.  On small, cheap devices, you can find this thing  called the linear power supply.  It's good because it's very cheap,  and very small, but it's pretty efficient,  so it's not used for large devices and gets caught.  And those devices use things for such small power supplies  that's the kind of power supply you've got for a laptop.  It's much more efficient.  These things here, depending on what you put in,  might be about as 20% to 30% efficient.  These ones here are normally 98% plus efficient.  So let's look at the linear one first,  this is for the two, and what it does is it says,  okay, I've got the input voltage,  and I've got an output voltage,  that's the voltage for the microprocessor,  and I'm going to change the difference  by just wasting the energy.  Okay, so you put in five volts,  and one voltage just wastes four volts with it.  And it's really a big kind of cost.  So if there's a representation,  it's transistor change,  it's value depending on the input voltage you put in there.  It's a regulator, and you get out whatever you bought  on the package.  It's packaged normally specified,  it's five volts, one volt output,  and you get a voltage out here,  five volts goes in, one volt might come out,  and then you add in the sugar system to be a machine.  Well, you drop the little voltage across that,  maybe 0.05 volts, and that means your process actually now sees  0.95 volts as though the one voltage is affected.  The process of always still work,  but you're not running it at the same condition  that you were thought you were,  you thought you were measuring for one volt performance.  And there's their intervention,  and the previous thought, you drop the voltage,  it becomes more efficient.  So you've actually helped the energy  to be consistent, or quite intimately,  gain and disturb consistent.  Now with switchable power supplies,  we tend to get away from that,  because the regulator has this,  there's this feedback,  it can measure the output,  and it just store it.  And so there's a massively simplified diagram  of the switchable power supply,  but the switchable power supply is made  by having a switch,  which turns into a series of an inductor,  and this switch goes up and down  really, really quickly,  and provides power this way,  which is then stored so very early in the inductor.  And it looks at the output and says,  do I need to connect power supply again?  Don't need to connect it,  and it's a quarter to low,  can't start the light,  what's the high stop?  And so this thing goes up and down  from 1,000 times 7,  and there's a measurement point  where feedback can decide where it goes to switch.  So you've got the sugar resistance, really.  As long as you put the sugar resistance  before the feedback,  and it could be neither ordinary inductor  and it could be either ordinary switch,  then you get feedback that ensures  that the voltage across there  is just the core of the matrix.  So what that looks like in the same example,  is 5 volts goes in.  Oh, gosh.  My N button and my M key down.  And it's 5 volts in.  You'll get 5 1 volt act,  give us 1 volt power supply.  The reason is because the power supply  will increment on the other side  of the sugar resistance,  automatically, but just as the sugar resistance will layer,  that would be 1 volt,  since it's there,  it notices that the voltage changes across it.  And what you're going to do is,  you're going to get 5 volts in,  and you're going to get 5 1 volt act,  give us 1 volt power supply.  And the reason is because the power supply  will actually change across it.  So now you can bring in a processor  at 1 volt, which is the potential of the voltage.  So it's better in the point of view  of making the market make full condition.  And then my last thing on this really is,  how fast can we do this?  So we talked a little bit about the power supply,  but there's another part of my system.  What's our power supply?  And resistor and capacitor,  which is at least the input to life.  So if you look at the power supply,  what I've got is this thing called an RC charging supply.  And they're well known  because they take time to charge in the tank.  And they've got this wonderfully simple relationship,  which is the amount of time taken  to change the voltage on that capacitor  to your power supply algorithm  is related to our time supply.  And what that means is,  at the point where we have power supply,  the voltage could only change so quickly,  and it changes at maximum that speed.  And so that limits the rate  for which the power supply voltage will change  or see if it changes that.  Regardless of if the microstructure  suddenly tends to get a power supply,  I said, I want infinite current man.  You won't see that for a some time on the machine.  You'll see it eventually,  but you won't see it that way.  And that means that you can then push through  that use, this is a common linear power supply,  you push through these values.  What actually happens is there's a limit  of physics of the energy.  You can't get the connections,  no longer the amplification.  And it turns out that you buy that  very popular after-shelter power  for a regular power supply.  You will never see a response  more than roughly 5 micrometer.  That means in the signal you wanted to measure,  there wasn't anything more interesting  than running at speed.  So even if you had a 5-megaphertz processor,  you will be able to see  if power supply changes in 5-megaphertz  because of the damping of the power supply.  So this actually means you've got a sort of thing  on the make-up, so it means you need to  measure, look what measure you're passing to  to make a measurement scenario,  which won't see, there's no information there.  So it's worth paying a mind, because otherwise  you think, well, I spy a very expensive oscilloscope  and I can measure anything I like.  You have to prompt me, you would never be able  to measure a 5-megaphertz.  What that means for your output, though,  is that if you say, okay,  here was my processor, very 5-megaphertz,  running instructions,  with that kind of power supply,  you'll never be able to resolve closer  to government a block of 3-megaphertz  instructions than you would.  So you won't be able to say that app  protects my energy.  You'll be able to say that block of 3-megaphertz  instructions, no, that's going to have a look at it.  And this means,  if you want for any, but a re-engineering  time power supply to the microprocessor  for the processor.  And so, whilst these works are a slow device,  so having a slow device, I can say  that I can do that, 5 minutes or never else to go.  So, graphically,  you'll never get out this kind of level  resolution saying, it's this line  of my assembly code  that's at the power.  But you might be able to say,  well, maybe it's that block of code  from the ASCOP-LiO thing.  So that's what we're looking at with these kind of  ready-made devices.  And I have, I think, one minute left to just show you  what these designs look like when you look at these.  You've got to play more with these designs  after the workshop session.  You can come and take them back.  So we've got this device.  It's open source design.  Here's the link that we downloaded.  We've over sourced CAD software,  and you can download the design of CAD software,  and generate files of 7,000.  Four channels, six makes some of the seconds,  which we do measure after the acting,  which is a little bit of resolution.  And this is what it looks like  to zoom in and be in my handle.  We've got this is the amplifier in the middle,  to give public advice.  We've got a big selection of different chip resistors  that you can insert by connecting to the chip.  So you have to do some soldering.  All you have to do is connect your power supplies  in the suits and in the ear.  So you have to break the power supply trace in before it.  Take two wires out, and push them into the ear,  here and here, and then that's it.  And you set some jumpers that we might be able to trim  as we've got.  And this will then divorce the work of this design,  you know, to be carefully involved.  This thing plugs into a cheap arm evaluation board,  here that's one.  9 euro board, you can find it on the shelf  in RAX, Farnel, any of your favorite companies.  And that then collects the data  and has the agency in place.  I think that will do the work for my last slide.  This is what comes out of it.  You can play again with this in the workshop.  There's a software that's used in the US  being where you can visualize the output of the design  and make it device one PC, a laptop,  and then you can do the same thing  with the PC, a laptop,  and here we've got the current measurement going through  one program, the voltage measurement, and the power.  And what you can see here is  we weren't doing anything on the target,  but the processor, and then we do things.  Shoot something and start flipping around.  And that's the work that's actually going through.  So I think with that, I'll just  skip to the end  and say,  it's very useful to be able to do this,  because now you can say,  I can say block of three in the codes on the file,  and if I block, that's the block so it is taking anything.  Let's go and engineer, engineer that.  Slow processor, I'd say five seconds.  We've got the input source design,  we've downloaded, taken three K to the way today.  We may need to do a little soldering  at the level of just  breaking a track, soldering one wire, soldering the other wire,  and then you can put it into our hand design.  So super successful.  But hands on the workshop is starting at 12.  So with that, I'll leave.
_FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_1452_1595.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_1596_1811.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_1812_2315.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_2316_2579.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_3672_14651.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_15648_16427.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_16428_21947.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_21948_22343.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_22344_23855.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_28872_29051.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_29472_29627.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_33384_33431.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_33432_33815.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_33816_33959.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_33960_34199.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_34200_34571.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_34572_34703.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_34704_34931.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_34932_35687.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_35688_36071.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_36072_36203.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_36204_36419.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_36420_36803.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_36804_36959.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_36960_37331.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_37332_37583.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_37584_37703.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_37704_37919.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_37920_38075.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_38076_38303.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_38304_38711.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_38712_38831.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_38832_39743.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_41232_41315.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_41316_41435.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_41436_41579.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_41580_41951.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_41952_42047.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_44136_44435.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_48300_48479.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_49092_49475.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_53604_54299.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_59616_59927.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_62052_62555.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_62868_63107.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_63792_64907.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_65052_65723.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_65724_67223.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_69540_69791.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_71136_71483.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_72288_73199.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_73728_74243.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_75360_75719.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_76320_76667.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_77868_78359.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_78720_79151.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_91464_92087.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_92088_93107.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_93108_93287.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_95988_96395.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_96396_97859.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_97860_104675.png _FOSDEM_2014__Energy_scavenging__battery_life_and_should_we_build_more_power_stations_Y4REZTmm5PM_104676_106701.png