Let's have a big hand for David Kaplan Thank you very much. I'm happy to be here. This presentation was put together in conjunction with one of my colleagues farhan I'm actually going to talk this evening about real-world hardware design. I do security hardware now is my day job but for this talk I want to focus on what goes into making a real-world x86 CPU and during this talk I'm going to go through some of the Practices tools and various techniques that are used in this kind of development and some of the unique challenges associated with it So starting off I'm not sure how many of you have worked with hardware design before but hardware design is very different than software for starters It takes a long time, especially with an x86 CPU to design a Brand-new CPU from scratch can easily take up to four or five years of constant development With teams of hundreds if not thousands of people. It's simply a Very complex beast. There's a lot that goes into it. It's also very expensive I mean besides just the cost of hundreds or thousands of people it's Doing a Fabrication of silicon is very expensive in the kinds of process technologies that Modern x86 chips use a mask set as it's called Which is what's used by the fabrication facility to actually build the chip that you've created can cost upwards of three million dollars And that's before of course you also pay for all the special test equipment and everything else that goes into it and Another big challenge is as we'll see as we go through this talk It's very difficult to test everything in the design before you send it to that fabrication plant And then it can become very difficult to figure out what happened when it went wrong afterwards And we'll talk about some of the different techniques that are used to help mitigate that x86 CPUs are Especially challenging in part because of the complexity a modern high-performance chip can easily be around 60 million NAND gates and RTL code as it's called which is typically in a language like verilog or VHDL can easily reach a million lines x86 cores also run just ridiculously fast It's almost hard to fathom what that it you know say a three gigahertz CPU runs at three billion cycles a second that's just It's very difficult and we'll see how that plays in a minute Related to that is that these chips have to work basically the whole time. I don't think most of you You know lose sleep at night thinking about your x86 CPU having a bug or a malfunction or something in your program But if it did that could be catastrophic. I mean the CPU it has to be functionally correct for basically everything in your system to work What this means from a harbor development standpoint is that you got to have basically no bugs Even if you had a really rare bug it occurs one time in a billion That's three times a second. That's that's not gonna really work So CPUs must be perfect then well, you know, obviously not I'm sure many of you are familiar with some of the infamous CPU bugs are been the Pentium divide bug in the 90s. There is a AMD TLB bug In 2007 But there's a lot more than that. In fact, if you open up the Rata guide for a modern CPU You'll see something like this and if you're in the back that says no fix planned on the right side there That being said These issues are very minor You don't have to take my word for it. In fact, I would encourage that you don't I would encourage you to go and download one of these and read what the type of Irata are that are in these production systems in most cases these simply don't Really matter or there are software workarounds available But there are a lot that still make it into silicon So I want to talk a bit about the hardware design process then and and how the testing of these chips is done CPU development starts with the design and verification, which is where the teams write the verilog or VHDL code They do a bunch of testing on it in a simulation environment that can take Anywhere from one to about four years depending on how much is changing in the design Once that's completed. It's sent to a fabrication facility It takes usually at least two to three months to get any silicon back from a fabrication facility After you do you then still need to test it that Validation process as I'm calling it here can easily take up to a year or more So that's where you put this all together. It can be four or five years To get something from concept all the way into mass production So I first want to talk about the verification or the pre-silicon phase of design and What is verification verification is a discipline within silicon design that ensures a design matches the Specification and it's worth pointing out that when hardware and CPUs in particular develop You don't just have a functional specification of the functional specification may say what instruction sets the CPU supports Some things like that you would also have a performance specification a power specification And those all need to be tested in the same way if you build a processor and it's slower than you were expecting it to be it's just as worthless as if it had a bug somewhere and The goal of verification is to find defects of course or bugs and like with many things There earlier you find the bug in the design process the cheaper it is to fix So how do we find these bugs? Well the standard way is to use a simulation test bench And as what's shown here is you're gonna have your hardware design. So this is your verilog code that's the block in red and you're first going to have some way of generating stimulus into that design and The typical ways of that happens is either what's called directed Testing or random testing. So directed testing is you've written a sequence of instructions that are gonna go and execute in random testing you Either open it up to some or or maybe all of the instruction space and just throw stuff at it the vast majority of testing that's done is random testing because it's great at finding all these weird corner cases and is much less time-consuming for humans In addition to applying stimulus to the design It's also applied to some kind of checker if you're working at an x86 core level This means that you'll probably have some kind of say C++ model of the x86 architecture That is running in parallel alongside with the design and you would send the same instruction to both of them And then when the design is finished you'd compare your register output or your memory output, whatever and look for any variants Checkers can also be at much lower levels in the design and this is a very common practice to have checkers around Specific blocks and in fact often probing directly into those blocks and so for instance you might have a cache checker that would run and make sure that you don't insert duplicate lines in your cache and These sort of things are really useful because Verification time is so limited you want to check for any discrepancies as early as you can and Get the most out of your testing cycles and so it's very common to have checkers kind of all the way down into that design Another important characteristic of test benches is that there's typically some way to measure coverage and Coverage is a very important metric That's used in at least hardware designs because it helps Determine how far along your testing is and if you are actually hitting all of the code that you expect and all The branches you expect to execute you absolutely do not want to go and fabricated design that has untested code in it and Coverage is a great tool that's used to help prevent that now Test benches do not run very fast and this becomes a major issue if you want to simulate the entire We call SSC Chip so this might have multiple cores and Northbridge Southbridge this sort of thing You're looking at a speed of about 1 Hertz meaning that you're simulating one cycle for every wall clock second that you run this thing You cannot get a lot done at 1 Hertz and this is with like top-of-the-line tools hardware all this sort of thing So the natural thing is to break things down into Smaller smaller levels if you are testing just an x86 core, that's about an order of magnitude faster To simulate which is still really slow, but it helps If you break it down even further you can get I call multi unit testing So this is a typical practice of combining a few related blocks like an instruction fetch and a decode unit together or you can even go down to a single unit testing like the decoder or the load store unit something like that and you're looking at in the ballpark of 100 maybe 200 Hertz so 100 200 cycles per second of simulation Now compare that for a minute to real silicon Which runs at 3 billion cycles per second and you'll see this is far off in fact in the very first second That you power on a CPU That's the equivalent of nine and a half years of testing at the system level so Basically as soon as you turn the thing on it's already gone through more verification than it ever did Now there is a way that you can kind of throw more hardware and money at this problem Something called emulation. There are two to the major design tool companies cadence and synopsis Make emulation Machines and these are special hardware. I think they're kind of FPGA based things that allow you to load a Design on to them and run testing at a faster rate And I should point out this cadence system is way bigger than the picture. It makes it look. It's a serious box One of these boxes is gonna set you back probably close to a million dollars But they can run it around one to one and a half mega Hertz So it's still two to three thousand times slower than the real silicon But it's a million times faster than simulation So they're very useful But they are costly as well Now one question that I often get asked or a myth that I sometimes see is well what about formal verification and formal methods and anyone's not familiar formal methods is basically a mathematical proof of the behavior of a certain design and Formal verification is great for some things. It is Really cool. It's great to get a proof that says a hundred percent. This is how it worked.  They can't deal with that the second thing is they have to have something to compare against and When you're working with something like a multiplier or a divider It's pretty easy to give it a multiplier and say make sure these things are the same If you're dealing with an entire CPU, it's a very different story It might even you might have to re-implement the entire design So then you can verify it against something and that's that's difficult to do so the Experience I've seen is that formal verification is great for a few of these selected execution units It's a very small piece of the overall puzzle so the the track that we're in right is on on failures and Philanthropy so one thing I want to talk about is what is verification fail at and We'll start by saying what it's good at verification is good at finding Bugs with your basic functional behavior does this particular mode of operation work do these exceptions Happen when they're supposed to that sort of thing Anything you can do formal proofs for is also is also good and it's also useful for Coverage analysis are there all your instructions executed or they execute in all the different modes Do you get all the different exceptions that sort of thing? But verification doesn't find other types of bugs One big category are system level bugs and as you remember from a few slides ago The system level model runs so ridiculously slow That you simply don't get a lot of test time on it And so those are going to be the bugs that are most likely to slip through the cracks Those would be bugs like two different components in the design having some sort of protocol disagreement where they End up in an unknown state because they don't talk the same language the most common thing that I've seen is that Multiple seemingly random events seem to be required to hit these bugs So, you know, we're talking things like you're doing a compare exchange instruction When you get a cash probe when an interrupt is pending and at the same cycle the thermal sensor says the processor is too hot Right things like that are just difficult to hit all those kind of cases during testing You start running at billions of cycles a second and they have a way of coming up a lot more often Another thing that's difficult to find are any long runtime events So whenever you have a large data structure, it could be a l3 cache something like that Those are difficult to test some of those cases in verification So need to be aware of that and a final thing I'll just mention that I've seen is what I'll call statistically unlikely matches and Imagine for instance that you have a design that has some sort of special behavior When you have two different say memory operations and the lower 20 bits of the address match But the upper bits do not match Well, if you're generating all of your addresses randomly in your random stimulus the chance of that happening is really really really small and you're not going to get a lot of test time on it and Those bugs are going to slip through Now it's worth noting some of this you can kind of fix if you knew that the design was a really sensitive to this case Where 20 bits match and the upper 28 bits don't You could Specifically have stimulus for that you could constrain your random address generator to generate cases like that some of these cases, however, you can't do a whole lot about multiple random events You do the best you can but something is always going to slip through great, so the next thing that I want to talk about here is what is done after the silicon comes back and As I'm sure you can imagine you get your silicon back from the fab and It's not going to work perfectly and you have to debug it. So how do you debug stuff? Well, everyone here. I'm sure has debugged things before it usually looks something like this If you're with software, you know, you probably investigate the problem You run gdb do some printf something you figure out what you did wrong you fix you change the code You recompile and that's all great With hardware it doesn't quite work like that So first thing is is what that what happened in the design? One common way of figuring this out is to use something called a JTAG interface I'm sure some of you are familiar JTAG stands for the joint test action group it's a IEEE standard that you'll see on a lot of hardware and Modern xa6 processors have JTAG pins you can see an example of some of those here how you have your test data in test data out test clock and so on and The IEEE spec dictates how you communicate to these pins Now I should mention that these pins are physically there They're generally not brought out in motherboards. So you won't find an easy way to connect to them But they're still physically there on the package if you look hard enough Processors have to implement certain JTAG commands that are part of the standard things like bypass ID code Which are typically used for verifying that like soldered connections on a board or valid but I tripped we also left the spec open to add whatever other proprietary commands a vendor wants and So you can imagine that if you're debugging a CPU you might want to have Your kind of debugger commands right read and write register state memory single step these sort of things and That can be very useful for figuring out what happened now, of course The processor doesn't magically do this you have to design this Debugger into the the system But you mean you're gonna need something like that because you're gonna have bugs This sort of thing can be very useful I mean, it's you know kind of like your gdb, whatever, but it It doesn't work always and in particular one very common thing to happen with Silicon designs is the thing will just hang and it'll just be completely frozen and there's nothing you can do to it So how do you debug that? the answer is something called a scan dump and This is a feature that is kind of like a crash dump. Basically you take all of the register state All the flip-flops and the design you dump them all out through the JTAG port so you can go and analyze it And the way this works is that when flip-flops are built into the silicon They look something like this. So you may remember your kind of standard D flip-flop from from class There's now an extra mux in front of it that selects either between the normal data that that flop would store and Something called the scan-in data These are then connected together in a chain like so so the output of one goes to the scan-in for the next When you want to dump the flop state you assert the scan-enable signal that goes to all the flops and then as you clock the design every cycle all the flops shift into each other and the final flop and the chain is then connected to your JTAG pin and over time and of course not a lot of time You can read out all of the register state in the design So this is pretty nice. You can then analyze it offline. Whatever You know, it's not perfect one big limitation is you only get the data that's stored in flops in the design You don't get access to any of the intermediate signals in the design Also, it's a single point of time thing. It's really like a crash dump It's very likely that the information you're looking for is no longer there One problem with running at the clock rates that CPUs do is that if you don't get the hang right then There's no way you can manually stop this thing in time Sometimes you have to take a whole bunch of these and see if you can get lucky Sometimes you got to look at all the kind of invalid state and the things that are clearly left over from earlier iterations But these are two examples of Practices that are that are often used. There are many others Which I can't talk about So Let's assume that we've used some methods and we've figured out what happened Fixing it is not exactly a piece of cake either, you know, the simplest thing would be to go fix a very long code and Redo the entire design which takes two months and three million dollars So the good news is that you don't have to all the time The way that modern ships are built is that there's something called a base layer and then metal layers and a modern process technology has up to about nine different metal layers and To overly simplify this because I'm not a process engineer The way this works is the base layer has your logic gates your and gates your nor gates, etc And the metal layers are the wires that connect those gates together So what that means is If you need to add new gates in the design You got to change the base layer, which is the most expensive thing and you got to wait the full time and that sucks If you don't need to do that, you can just change maybe even one metal layer in that stack That tends to be significantly cheaper it also Means that it's less of a delay through the fab because you can kind of intercept their pipeline because chips are built First at the base and then the metal layers as they go up So inserting a new metal layer into that might only cause a few weeks Of delay before you get the results back One thing that's common for physical designers to do is whenever They're building a block if they have any white space in that area They will actually put extra gates That are not connected anything They're just there on the off chance that there's a bug and you need a new gate and you want to wire it up So It's it's kind of if you're building the silicon then why not put some useful things in it Now those are the costly solutions. That's the only way that you can really fix an issue But there are a lot of things you can do to work around the issue And it might not cost as much as three million dollars So, you know one thing that we do is like if there's a problem you You know you go to the lab and you try to look for one of these and see if it can like rewire your chip for you We tend to have the more sophisticated version, which looks like this This is a focused ion beam machine It's a cool beast it can take a chip that's already been fabricated And it has a electron microscope in there It actually shoots little ions into it and it can rewire small parts of the design Can't do major things, but you can do small things This is done on a per chip basis the only issue with this is You have to do it Chip by chip and also the chips have a very strong tendency to die in about one to two weeks Afterwards and that's just because the process is so destructive to the chip So if you need to prototype something, it's great. You can do it in a couple hours. You get your results. You can try it out But This is not going to be a production solution And neither is the cat So what else can we do? Well one very common practice is that hardware designers Will put disabled bits into the hardware and I've always heard this called chicken bits because the designer is chicken and maybe the thing won't work and These are are very useful They are typically used for performance or power enhancements on a design so that you could Disable a certain feature and the processor still works just fine. It's maybe a little bit slower And it's worth noting about this that When processors are built There are some things that give you a ton of performance. I mean branch prediction everyone's got branch prediction nowadays but the way that x86 chips get the New performance that you see generation on generation Is generally by a sum of very very very small parts There will be features that get you 0.5 percent over here 0.25 percent over here, you know, maybe there's a big feature that gets you 1% These all stack up and then you get your 10 15 improvement whatever you're expecting If you need to disable one of those to fix a critical bug That's not always the end of the world And there have been cases where that's that's been the work around that had to go out You can find some of these in a document that AMD publishes called the bios and kernel developers guide I'm sure there's an intel equivalent of this as well In fact, I think we've seen screenshots of it in other presentations On x86 these sort of bits live in what's called the model specific registers or msr's This is an example of one The data cache configuration register And there's a few bits in here that are defined that can be used to disable Certain aspects of the hardware prefetcher, which is of course performance enhancement. There's also a bit to disable speculative tablewalks as well These features are useful not only for production if you have a bug with say the the hardware prefetcher They're also very useful in debugging because you can start disabling things until you get down to the root cause This does require that designers Kind of think about what failures they're going to have and what things they're going to want to disable down the road And it's one of these things where You might as well throw the kitchen sink at it because you much rather never set a bit Then have a bug that requires a three million dollar re-spin Another option that is available on modern cpu is something called microcode patch Microcode is like an on-chip firmware. It's used on processors typically for implementing things like complex x86 instructions so like irat rsm There's a whole bunch others harbour task switch things like that interrupt delivery And a lot of power management features and microcode Basically breaks up these complex flows into a sequence of smaller operations that the harbour can natively understand The way that microcode is built is that it's in an on-chip ROM that's physically present in the silicon But a very common practice is to put a small s-ram next to that ROM called a patch ram And that patch ram can then be used to replace some or maybe even all of the microcode If needed to either fix bugs or work around things in some way and so this is useful for Modifying instruction behavior. So for instance, if you had to add a serialization after a seal flush That's something that that microcode could do if there is some rare corner case that you've discovered There's a bug in the the microcode flow You can patch it through that There's not a lot of public documentation on microcode patches The best resource That you could probably find is going to be in the linux kernel. There's a path to where the microcode patch loaders are There's one for intel. There's one for amd One one thing i'll say about this is microcode patches are typically signed by the vendor. So i'm sorry, but it's not something that You can necessarily go off and write but These are a very useful tool that i'm sure you can imagine would be applicable to things besides just x86 cores as well For patching things in the field if necessary So putting this all together When dealing with hardware we've talked about j tag debugging and scan as two ways that you can help identify the problem when it comes to fixing things i use work around in there as well because Sometimes you got to get stuff out the door and you do whatever it takes and the line between fix and work around becomes very blurred But you obviously have silicon spins you have microcode patch you have chicken bits and If you need a quick fix you can always Go and get a fib done So since we are A lot of us are security people I felt like i should mention something about security All of the debug interfaces that i've mentioned here Might be considered more than debug interfaces to some and that's something that can't be ignored Debug interface security needs to be something that's part of the design and it's tested Some examples of the security that that i've seen in the past have been for instance to disable Some are all of the j tag commands on production parts A typical way this is done is that there are fuses that exist on the silicon Basically a one-time programmable memory Once apart is configured for production the fuse is blown those instructions are disabled another Another possibility could be to Ensure the debug access to sensitive information so they could be platform secrets like root keys or Firmware or something like that is blocked in production You can Have some sort of authentication done to use a debug interface like j tag Obviously you have to test that having to debug the debug authentication handshake is a real pain but that's Certainly a way that you could Add some security to this and sign cpu microcode updates are the common practice nowadays So There's some takeaways. I want to leave you with i'm I know that x86 cpu design may not be the project that you are about to go and start after You know midnight tonight, but I think a lot of the techniques here are hopefully still interesting and hopefully can be applied to other projects as well First off breaking down large designs into small chunks Seems somewhat obvious, but that's absolutely critical, especially when you're dealing with something that runs as slow as cpu does in simulation Using tools to get the most out of your test time is certainly important using coverage tools using formal tools Anything that you can get your hands on is very useful just for maximizing the Usefulness out of each compute cycle you're running But the biggest thing I would say is to just think about what the weaknesses in your testing flow are and Have some way of addressing those One thing you see with cpu designers is over the years as they work on multiple projects They know where the bugs are going to be even though they wrote the code They know they're still going to be bugs in there and they build the design accordingly So try to design for failures by building in as much into the original design as possible So building in debug features if you need to and securing those debug features Anticipating what the risk areas are going to be and you know with hardware you Never really have this option except with microcode of just telling your users to go and download a patch I mean if you actually had to fix A real hardware bug on the field you'd be shipping silicon to millions and millions of people in the world And that's not a position anyone wants to be in So you have to have these other features built into the parts so that you can address areas as they come up with software That sometimes can still be the case I'm not a software person so You know take that with a grain of salt, but I'm sure there are some situations where Just doing a software upgrade and asking users to download something may not be a practical solution for their environment And in those cases it's helpful to have some Way to deploy updates, especially critical ones if necessary So That is what I have here. I do have some additional links If people are interested in reading more about this the BIOS and kernel developers guide is a great resource it's Might be a thousand pages or more, but it's a fascinating read and it goes through Virtually every register that exists in x86 processors And and what those bits do the cpu revision guides are the erratic documents Both intel and amd publish them you need to make sure to find the one for your specific cpu version But they're very interesting to see Not only what the bugs are But you can also look at revision to revision and see kind of what bugs are so unimportant. They're never getting fixed And if you're interested in cpu verification, there's a lot of great resources There's some youtube links here To be honest, you can just google it. You'll find a lot of stuff It's it's an interesting field. There are plenty. There's plenty of work that's done in optimizing verification and doing more formal proofs and more circumstances doing Something called power aware verification is very important now when we're dealing with chips where parts of it will be powered down at different times And you can't use those parts without powering them up So there's a lot of interesting work being done in that space I would encourage anyone interested to go take a look at these And with that i'll take some questions One two Okay, thank you very much. David Um, can I please add that? No, I'm sorry. Would you please queue up on one and three? Something some glitch. I'm sorry Okay, first question from the room gentlemen under number three Uh, thanks of all first of all for the awesome talk Um, I don't know if you know anything about this or if this is outside your domain But i'm wondering how does the sort of layout aspect come into this? So if i'm programming in fpga, I just blast my my design in there and it's laid out automatically and everything just happens But rcpu is actually laid out manually or how does that look on the sort of analog side? Yeah, uh A bit of a bit of everything I would say There's been a It used to be that everything was laid out manually And that was because the tools at the time were simply not good at designs of that size Recently when I say recently I mean the last like probably five to ten years There has been much more of a push towards automated layout and automated synthesis and frankly the modern tools are really really good and What tends to happen is that you actually do best if you take Say an entire cpu and you just throw it at the tool and say figure out where stuff goes, right? And in some cases you don't even say here's where I want instruction fetch Here is where I want to multiply or things like that You just give it that and it has a good way of figuring out just based on the connections Where things need to be in relationship to each other. So it's I would say it's mostly automated but with some human input as well and You know, I think that uh, it's different from fpgas Because of the way it's built obviously with asics, but the tools Certainly have some similarities to them Okay, the gentleman number one So modern amd cpu at least phantom 2 consists of well phantom 2 doesn't include the third one Includes a lattice micro cpu for power management and of course an x86 core for general processing and The third core included in modern cpu says the Secure or whatever Do you test the whole package or just individual parts or? Yes so Typically the way it works is that Chip is built as a collection of what's called ip's and the x86 core is one ip The the power management controller is called the smu is one ip The security processor is called the psp platform security processor Is one ip and you have a whole bunch of others in there. You have memory controllers. You have southbridge, etc so those Do most of their verification on the rune But there is system level verification the thing that runs at one hertz that's done with all of those together and that Is more limited and because of the speed involved, but there certainly is verification done by on the whole piece um We'll have to include People outside do we have a question from the internet? yes, so where would Where would one actually set those? Chicken bits and can it be set in the operating system? so Yeah, so the chicken bits live in model specific registers, so they're set using the right msr command You need to be at ring zero to do that but That's it Okay gentlemen number three You I am very impressed with your talk because I'm a security guy and definitely not on the hardware guy But as a security guy, I see you I see this process that's having that's struggling with keeping out unintentional bugs So this process how susceptible is it to A person within your organization trying to introduce a really hard to detect Intentional bug Or how would you detect such a thing otherwise? right You know, I think that's probably an area. I can't talk too much about I'm trying to think if there's anything I can say about that I would say that You know, there There are a lot of different phases to the design process. There's a lot of eyes that see things Speaking as myself. I think it'd be Very difficult for someone to get something through kind of all the different checks and balances that there are but Beyond that There's not a whole lot. I can tell you one thing a little bit related to what you talked about is that There's also the whole piece of the fab right Let's say that your company produces a design that is perfect whatever It may not be the design that the fab sends you back And that's a whole issue called supply chain security Which is certainly something on our radar as well. It's you know, unfortunately, it can be very difficult to Well, let me say this when you get silicon back you tend to test for the features that you expect to be there It's very difficult to test for features that are there that you're not expecting Okay, thank you. The gentleman at number one is pre california Yeah, so we all know the pixel failure classes of our little monitors. We all bought Are there pixel fail? Are there failure classes for cpu's and I am able to give you a million dollars to get a better tested cpu Then I can buy on amazon No, they're not They're not failure classes anything like that the The cpu's are all functionally the same The you know, there can be differences depending on your bios version as to what Fixes are applied like what microcode version you're loading because unfortunately You know kind of like uh like trample was talking about Even if there is a bug and we release a Say a microcode update for something We can't force OEM to put in their bios. We can't force you to download it so that there's an issue there The the only thing I'll mention about kind of We call binning which is where you you test parts and you figure what bin they go into Is that when we do make parts There are not different speed grades or anything like that The way that you get a two gigahertz versus a 2.2 versus a 2.4 anything else Is just simply how it came out of the fab some parts just run faster than others Some parts burn more or less power than others So That one, you know, you have to get lucky if you Want to fast it like whether your part can run faster or not it is often just luck sorry We got something on the internet in in between Otherwise, all right. Um, so in in the verification stage, how do you distinguish design flaws from fabrication issues So in in the verification stage In the verification stage the design is not gone through fabrication yet. So you're just testing The verilog code There are mechanisms For testing when it comes back from the fab Whether the part was built correctly or not Sometimes, you know, that can be as simple as Reproducing the same bug on multiple different parts because chances are they weren't all Made incorrectly. There's a number of other features We build in that are under the giant category of design for test features that Functionally validate whether all the flip-flops and design are working things like that. That can be another talk Okay, gentlemen number three um, I would like to know How many of these design cycles is a typical x86 processor going through before it's finished So, uh, it varies significantly by how many new features, of course, were added in a particular generation I would say that sometimes it can be as little as one or two Sometimes it can be I would say between five and ten What one way of kind of tracking this is if you hear about things like a zero or b zero or b two parts the the first letter is Basically the base layer version and then the number is the metal layer version. So like a b two part is The second version of the base layer and the third version of the metal layer Gentleman at number one, please Forgive me for asking this, but i'm a security researcher So if you dramatically simplified the processor by removing all the legacy and other crap in it how Are you calling the designs crap? What are you calling the designs crap? No, no Say that but How would the testing change? so, uh There are a lot of legacy features in x86 one interesting thing is that It would not necessarily make things simpler and the reason is that If you take something out you have to take it out of all of your existing tests and out of all of your random test Generators and out of all of your models that check things and this sort of thing And believe it or not for some things that can end up being more work than it is to just put the darn thing in And test it again, which i know is a little counterintuitive, but that's the reality of it. Unfortunately It's really hard to take things out of x86 because there's so much software out there We finally got rid of 3d of 3d now And i think we're getting rid of a 20 which has been around since like the 286 so But yeah, it's it's a tough battle Gentleman at number three, please I actually have uh two questions The first one is uh, you mentioned that there's a piece of ram that you can program to modify Programming after the module has been manufactured Um Why burn the microcode into the silicon at all when there's a piece of ram that is big enough to hold the entire set of instructions So the the ram is not necessarily always big enough to hold the instructions the I would say the primary reason for building in well There's there's a few the first thing is that ram is much much smaller in silicon than than ram is So if you are not going to build a ram that's As big as everything could be then you are going to save area by putting the portion of it in ram There's also just a major security advantage to doing that You don't have to trust your loading process as much and you don't have to And of course that loading process if you didn't have any ram or need to be built completely in hardware Which means you got to get it right the first time which can be difficult So those tend to be the reasons it falls into ram and legacy um The second question was at what point in the design cycle do you decide which clock rate? the processor gets marketed under uh, or Like runs in typical operation, right? I mean it's typically part of the initial design specification that When you're going to create a design you you want to have a target performance envelope for that and Based on the process technology that tells you okay. You need to have this many gates per cycle or something like that Now of course when you actually fabricate the design you test it It you know it could be different. It depends on how good the early data was But it's typically part of you know kind of the day one specification There's a question from the internet in between I think Yes, so if the microcode updates are signed, what does the cpu check the signatures against so uh A typical implementation might have a public key burned into a rom That is used to check the signature, but I really can't go into too much detail on that Number one, please From the talk it seems the Walk up to the mic, please. Otherwise, we don't have you on tape. Yeah, that's good From from your talk, it shows that testing is a huge part of this process With cpus becoming more and more complex. How big will the impact be of testing? How much will it delay new cpu features? It's a major factor testing is the biggest issue with with cpus both in terms of the amount of time it takes The amount of people the amount of cost associated with it I mean things Things get slower as you add more stuff into it on the other hand sometimes new tools and emulation technologies will pop up to help mitigate some of that But You know when people look around they say well, why does it take so long for the cpu features to get into things? You know even when it comes to security features This is kind of the reason it it's a long process and Every new feature you add extends the time before you can start selling the device and you don't make money until you start doing that Okay Yeah, I said I know you guys don't like follow up questions, but maybe it's short answer Do you see any new testing methods in the on the horizon something more revolutionary than simulating or I can't say I do right now, but I'm not as much of an expert in kind of what's coming up in that field, but I think it's uh, There could be new stuff. Certainly that'd be helpful. Okay. Thank you Okay, thank you Number three, please Okay, um, I was wondering if we could able the amount of space needed on the silicon To implement the jtech device the chicken bits all the stuff Is it a percent or much much less? so the Chicken bits tend to be very very very minor because it tends to be kind of one register and a disable wire to some gate Jtag stuff I I couldn't quantify that Specifically, it's not that big I would say compared to the other stuff in cpu if you look at a diet photo of things Everything is small compared to the caches so You have that but you know a lot of this logic a lot of the jtech logic is not considered optional In some cases it's because an eye triple e spec requires it in some cases. It's because if you You can't debug the part then what what good is it at the end of the day? Okay, thank you gentlemen number one Um on the scale between the Full simulation and one end and then the hardware emulator in the middle and the silicon at the end Do you also use FPGAs where you basically partition the full system and stick them into FPGAs so There are some cases where that's useful the biggest challenge is FPGA capacity Most FPGAs are simply not big enough to handle designs like this and also Sometimes the the stuff in them Is designed for more of an ASIC flow and won't map into FPGAs as well Some of the emulator systems are based on very large FPGAs that are put together in something like that What I'd say with with xa6 cpus And I looked at it one time like trying to see you know, could you synthesize the sort of thing into a xilinx chip? and the answer was it was so Big I mean compared to even what the biggest xilinx chip was that there's just no way you could do it easily Not a single chip, but basically if you have a four core an octa core or whatever, yeah Split them and partition them over multiple That I've seen that work in some smaller designs not in anything as big as a core Okay, people if you're leaving before the talk ends, which is okay Can you please do it silently because there's still people asking questions? They're still can you sort of respect, you know, let's have some gentleman at number three, please Yeah, you told us about those in cpu debugging features Are they all left in in the final design or do you decide at some point? Oh, this scan dump thing is really expensive. We should remove it and now is the time to do it Well, you saw how expensive it was to modify hardware So maybe that answers your question Okay, gentlemen number one Any debug features for the timing so you can verify that Yeah, or that you can debug that where your clock does not hit your target if there's some things Uh To validate like if the part runs at the speed it's supposed to When it when it does not run at the speed where you expected to run which part is the fault then You got to figure that out I know so it's not an area that I've worked with personally I know that one thing that's sometimes used are lasers That you can if you shine a laser on a certain part It can heat that part up and make it run Um, I think of it faster or something like that And so you can use that to kind of help figure out where the slow path is in the design Because I mean the the simplest thing is it's supposed to run at three gigahertz You run it at two at three gigahertz and it doesn't work. So you run at 2.9. It does work and uh, you then kind of uh Have to figure out what circuit is causing the problem that happens sometimes typically it's not um Not a huge deal because the library is that you work with during the development process are very very good about Figuring out what the timing is of the different gates and making sure that you don't have any issues Okay, three more questions. Please keep them short and simple because we're out of time Number three, please. Um, yes, um, I wanted to ask your security specialist as I understood it Um, what's your job when you're designing a new cpu? Well, so my my current job is actually working On security features for the amd roadmap both including cpu features as well as the platform security processor and In that capacity We work with the different teams that are involved in in those security features to help them Develop the specifications and make sure that they're testing all the cases there that are necessary But I don't get to write code anymore Okay, did we leave out the internet or is there no more questions on the internet, which is okay Okay, gentlemen at number three, please Um, regarding to the fact that clock speed is a specification day one fact How likely is it to reduce the clock rate? for a fix in order to not have to pay the Three million mask process again and reduce it for for marketing In order to fix the system design that otherwise would not run on the target clock rate So all I'd say is that's a business decision? There you go. Yeah Okay, last question number one You were talking about formal verification And you said one of the issues is that you need to get a model to check against the specification So how do you do that in normal testing? How do you make sure that you're actually testing against the specification? Because I was where the issue is in the early smp days where actually there was no memory model and All cpu's were not doing anything useful Right, I mean the the functional checking is typically done with kind of a golden model Where you know say you put instruction in and you have the registers that need to be there and everything else The issue with formal verification Is that if you're going to apply it to a design size that the tools can work with say You're going to apply it to a scheduling unit or to a load store unit Those blocks are have hundreds of different ios that talk to other blocks You basically need to have a formal model not of the architecture But of those blocks and exactly how they behave which Can sometimes just turn into re-implementing those blocks So it can it can be a lot of work for that Okay, thank you and let's have a final hand for David Kaplan. Please


You may know how a rainbow forms. Sunlight gets reflected in raindrops at an angle of about 42 degrees. So we see the reflected light if we are somewhere on the scone of reflected rays. Put differently, we see the reflected light from those droplets that appear to be on an arc, which is centered around the point opposite to the sun. And we don't see reflected light from any droplets away from this arc. The angle of reflection is slightly different for different wavelengths of light, which we see as different colors. So instead of one circular arc of reflected sunlight, we see a rainbow. It's a nice explanation, and not entirely wrong, but the full truth is much more interesting. Let's look at what happens within a single raindrop. The sunlight coming in from the left in this diagram is broken or refracted as it enters the raindrop. Then it is reflected on the inside of the raindrop and finally refracted again when leaving it. The breaking of light is related to the fact that it moves more slowly in water than it does in air. The angle of refraction can be expressed using a formula called Snell's Law. If you know some trigonometry, it's actually a good exercise to calculate these angles. We won't need exact formulas for this explanation to make sense, but if you manage to do this exercise, you'll notice that the angle of the outbound ray depends on how far from the center the inbound ray hits the raindrop. The angle, which is called alpha here, depends on the distance d from the center. In hindsight, this shouldn't be surprising. The angle certainly can't always be 42 degrees, because if the ray hits a droplet perfectly in the center, it will reflect back exactly the way it came. It's true that the angles depend a little on the wavelength of the light too, but the effect of changing color is much smaller than the effect of moving to or from the center. Let's focus again on a single color and draw a graph to visualize the dependence of the angle alpha on the distance d. We start at t equal to zero, which means that the ray hits at the center and the angle is zero too. When d increases, at first the angle alpha increases too, but after a while the graph flattens out and the angle reaches a maximum. When the ray moves even further from the center, the angle actually becomes smaller again. We see that, depending on the value of d, reflection is possible at any angle up to about 42 degrees. This is a bit strange, because it seems to imply that the rainbow would be a filled disc in the sky, rather than a circular arc. The reason rainbows look the way they do is that this graph reaches a maximum value and then goes down again. Whenever a smooth graph has such a maximum, a large portion of the input values will have output values very close to the maximum. Another way to visualize this is to look at a lot of equally spaced incoming rays hitting our droplets. We see that the disproportionate amount of them reflects at or near the maximum angle. On the graph these rays correspond to input values evenly distributed over the horizontal axis. After moving them to their output values, we see that the outputs are concentrated near the maximum value. This effect becomes more obvious the more input rays we consider. Up to now we've only used light of a single wavelength. When the input rays are a mixture of wavelengths, we start to see separation of colors in the reflected rays near the maximum angle. We can play out the same story in our graph. If we pick very many points on the horizontal axis, their output values will accumulate even more clearly near the maximum value. The graphs for different wavelengths look very similar, with notable difference that the maximum value is slightly different for each one. Hence, the vertical bars representing our outputs will be of slightly different height depending on the color. Sunlight is a mixture of different colors, so what we really want to know is what these colored bars look like when they overlap. This will give us a visual indication of how much light of which color is reflected at each angle. Finally, the light does not only get reflected vertically but in all directions. So to visualize how the reflections actually look, we need to rotate this colored bar around its lowest point, which corresponds to the angle zero and would be exactly opposite to where the sun is in the sky. And voila, here's our rainbow. We see bright arcs of differently colored lights with a faint mix of colors inside of it, which looks more or less white to us. So next time you see a shiny rainbow, see if you can tell that the inside of it is slightly brighter than the outside.


Thanks for checking out this movie review video. This is for the 1992 film death becomes her and it was a big one I think it did relatively well in the theaters. It's a Robert Zemeckis film. I Watched on HBO Max if anyone wants to know when I'm doing this review. That's where I watched it We did one of our things where my wife and I watch a movie over the phone with some friends And one of the big things that was said that I was just like, oh, yeah, you know You're kind of right my buddy had said it's very weird to watch an older film with Bruce Willis because he has hair And I totally agree with that. It's so odd because we just kind of know Bruce Willis now is not having any hair So it's just weird. But anyway done by Robert Zemeckis Directed by he did monster house romancing the stone the back to the future films forest gump Contact and cast away. That's just some of the more better known films that he's done So obviously huge career. This is one of the lesser knowns of the films that he's done But one of the things I like about Zemeckis is he has this ability to Capture Creepiness or scariness with a level of fun to it There's like a playful a playful nature to it and I think that's fully on display with death becomes her It's also in a film like monster house, which is animated for kids But his aesthetic is kind of that like when it's dark or it's creepy or it's scary There's always still this level of fun and playfulness to it Which I kind of like and that works really well for death becomes her in particular Because it's got a comedic aspect to it as well And it also kind of for people who aren't as much into horror It kind of like takes that horror element and still presents it But makes it a lot softer a lot more digestible for people who aren't into horror. So This was written by Martin Donovan who wrote scripts for a lot of TV shows here and there He wasn't the biggest name on the script The other person who worked on the script was David Kopp who did scripts for Jurassic Park I think he did revisions on Jurassic Park Carlitos way mission impossible stir of echoes Panic room and you should have left which was his most recent those are that's just a smattering the more Better-known ones and more horror oriented for the most part Obviously stars Bruce Willis, but also has Goldie Hawn and Meryl Streep so huge cast especially at that time and very accomplished actor So obviously the acting is phenomenal in this film and that's one of the things like it looks awesome It looks amazing directing Cinematography acting just all that stuff so good the effects were good too and I'll talk about the effect specifically in a second This made some good money. It had a budget of 55 million dollars and it made a hundred and forty nine million dollars So nice for the studio who put it out It was the first film to use computer generated skin texture and it actually ended up pioneering a bunch of their of The effects that it used on this that would then go on to be used for Jurassic Park so you don't get the level of Effects for Jurassic Park without this film, which I think is a really cool tidbit of knowledge During the shovel fight scene with this film between Hawn and Streep Goldie Hawn's face was actually cut because they were using actual shovels And she got grazed at one point and she actually has a small a light scar From that shovel fight scene which I thought is interesting and it's important to point out that even with bigger budget films That you would assume accidents aren't happening Accidents happen. It's a film set and some things can go wrong So there was an original ending for this and I took a photo of it from the website I got it from because I didn't want to just write the whole thing over because it was a lot Okay, so most dramatically is talking about things that were different in the film Over the iterations of script the original ending was entirely redone after test audiences reacted negatively to it The ending featured Ernest after he has fled Les Lyles Liz Liz Lee's Whoever Isabella Rossellini's character after he fled her party meeting a bartender Who helps him fake his death to evade Madeline and Helen the two women in counter Ernest and the bartender 27 years later Living happily as a retired couple Zemeckis thought the ending was too happy and opted for the darker ending featured in the final cut Almond was one of the five actors with speaking roles in the film to be eliminated Other scenes that were eliminated included one in which Madeline talks to her agent Excuse me and one in which Ernest removes a frozen Madeline from the kitchen freezer He has stored her in none of the scenes have been released publicly But sequences can still be viewed in the original theatrical trailer. I thought that was interesting to note So they they originally had a happier ending and went for darker that which is Uncommon when you screen films usually it goes more people don't like the darker stuff So you make it happier. So I thought that was interesting that it went the opposite way this film opening with the musical sequence of Madeline singing in her, you know, what looked like a Broadway musical I Hate that beginning because there's no Quicker way to test the patience of your audience than doing an entire musical number right off the bat Unless the film is a musical so I hate that start to it That is one of my big criticisms of this film is that's a boring as hell way to start It does not grab the audience. It does not pull them in you need to start with something a little more attention grabbing So that did not happen the main conflict is quickly established though As well as the mental state of Helen's character You know the twisting of the cloth that she does when she's you know angry The facial expression she has like she's like about to lose it The time when she was twisting so hard on the piece of cloth that she started bleeding I assume that's from her nails digging into her hand watching scenes on repeat of Madeline getting strangled in whatever movie she was watching and then also just her living state and then you know She had packed on all those pounds. She looked like she wasn't taking care of herself She's living with all this cats which the whole crazy cat lady stereotype is overdone and ridiculous and stupid But I understand it was a thing back then so it's just a part of it But it's good that they established that mental state initially because you need that like you definitely need to know Who Helen is as a character how obsessed she is how she's not gonna give up And that obviously comes into play later when she's going hard at trying to get Ernest back Who I'm just gonna call Menville because he was referred to more as Menville than anything So I'm just gonna call Menville the scene where dr. Menville explains how to how he makes bodies look good with spray paint from the hardware store is a an interesting one and be a good social commentary because the woman he's talking to had just told him Oh, you did such an amazing job making my I think it was aunt look good for the funeral And then he tells her how she did it because she asks and the fact that it was spray paint from a hardware store like made the woman Appalled and that's an interesting thing because that happens in real life where people just They like the end state But it's this kind of thing of like how the sausage is made like you love the taste of sausage But when you find out how it's made people really don't like it anymore and they look at it very differently It's the same thing with getting people beautiful Cosmetically for funeral There's a lot of very intense stuff that goes into that stuff that if people knew they really wouldn't like it But they love the end state and I think this this scene in the film makes a really good point of that from us You know social standpoint. I love it. It's a very good scene Obviously strong for shadowing comes in when the thunder and lightning hit as Madeline You know takes those two pieces of the card and kind of puts them together and realizes You know, I can't keep aging. I'm losing my mojo basically because she just lost her lover to a younger woman And she's obviously not even all that interested in her own marriage anymore, which she had stolen him from her friend So it's a whole lot of cheating in this film Yeah, so but yeah heavy for shadowing but in general I think that actually lightning and thunder is used kind of too much in this film because it's used to not just do for shadowing, but it's that kind of like You know bop you over the head with the foreshadowing type thing that kind of says hey audience We don't think you're really that smart We're going to not just wink at you, but like wink at you and not stop winking at you until you Acknowledge back to us that we're winking to you So I hate that type of filmmaking where they just assume the audience is stupid So they need to bash them over the head with things because that's how that thunder and lightning use comes in Or how it plays out is it seems like that's what they're doing and I hate that Glowing liquid, especially when it's exquisitely displayed will never have a good outcome in the long run in film Although I do like how they made the liquid look. It's you know pink Glowing Aspect is really really cool looking and also the little vial they have it in looks beautiful And then the the extra step where they kind of like have the vial sit upright on its own at one point very cool I do like it. So design-wise nice During this time period people with European accents were actually used a lot to kind of be villains in films And that's kind of seen with Isabella Rossellini's character It's just this phenomena where all of a sudden like European accented people just started being viewed as Somehow not able to be trusted in movies and that just became a trope like a stereotype That just kept getting used over and over and over again I mean think also about you know going even further back bond villains a lot of bond villains had foreign accents And that was one of the big things is like oh, they're foreign, you know, you can't necessarily trust them You know your culture is different. So you don't know where they're coming from or what their motives are So just you know just a observation on that The montage of showing the actions while Helen lays out each step of the plan that she's proposing for getting rid of Madeleine Is a really cool way to have things done It's really nice because if you decide to go that route for the actual storyline Then you don't have to show the events again. You could just be like oh it happened and we're done So it's kind of a bit of a time-saver But obviously with this it's good because it shows you ideally how things were supposed to go And then obviously it doesn't go that way it goes totally different So it kind of creates this good comedic aspect of here's the perfect plan And you think that's the way it's actually going because they're actually showing you the scenes and then you realize Oh, no, it got super screwed up So it's a little bit funny. I like that The amount of time Madeleine is almost falling down the stairs is insanely drawn out now This happens twice because it's it's in the part where you know Menville decides he's not going to save Madeleine and he actually pushes her down the stairs And then when it happens at the very very end of the film where I get I think it's Madeleine pushes Helen down and it mirrors the scene pretty much exactly but I don't like that kind of cartoonish nature of it where it's not realistic at all I understand that you know the premise of this film is not realistic in the beginning But that the the potion is the only aspect of it. That's not realistic The whole like how physics work in the film The fact that they're gonna mess with that is is dumb because like her teetering Especially when you see the angle that her feet are at on the edge of that stair It's ridiculous like she can't balance like that for as long as she does So I hate that scene for that reason and then the fact that they use it the same way At the end I think it's dumb It's a good shot when it's focused on Menville and Madeleine is putting her body back together behind him I think that's one of those perfect moments I talk about where it's either scary or creepy but also fun and playful at the same time and Part of the reason that plays out like that is the musical choices too. It's more of like a fun playful type Piece of music playing at that point So I love that scene like you're seeing you know in focus Menville on the phone explaining to Helen how things went wrong And behind him over his shoulder like blurred you're seeing Madeleine You know getting all of her joints back in place basically finally standing up and getting herself together except for you know Her head being on backwards Good scene really good scene the scene with the doctor is really funny I love that scene because the acting that the doctor does and how freaked out He is with the fact that he's seeing all these breaks and she has no pain And he just like he can't even fathom what's going on and then the extra step of him going and then just taking a Drink from the flask that Menville has I think is is pretty pretty good touch. I like it I do think it's a little too far when they then show him having a heart attack because of it I think that's a little too much. You don't need that. It doesn't do much It's it's one of the another one of those like overkill moments where they're bashing you over the head with things The shotgun scene and this is awesome when Madeleine puts the shotgun to Helen's Abdomen and just blows her away It looks great the fact that there's a giant hole blown in her looks really good The fact that she goes flying out into the area where the fountain is and then lands in the water And then how all the blood just like slowly comes out below her Awesome seeing a lot of impact really fun interesting looking and then when you realize once she gets up and you're like Oh, no, she also must have taken this potion and now you have two women who Basically embody death like they cannot die even though their bodies get broken down so insanely much It becomes clear that the bad blood isn't really about Menville after a bunch of years. It started about stealing You know stealing boyfriends basically and then it became about Menville and the fact that Helen became so focused on I'm gonna get him back I'm gonna get him back But at the root of it we find out after she you know after they've had their knock-down drag drag-out shovel fight We found out that you know That's not the root of all the problems and they finally do get to the root of the problems They still can't really stand each other But they're in the situation where they have to be together now So they figure out how to make that work, but it's interesting because then at that point It feels like Menville is not even that important to them anymore They just need him around to make them look better because of his skills to use all that spray paint from the hardware store to Match their color tone of their skin and make them look decent forever Obviously, he doesn't want to keep doing that though.  I Know there are guys who fantasize about women fighting over them, but this shows how it can go really really poorly I don't I've never understand understood that fantasy of guys being like oh man I wish two women would fight over me Now I Just doesn't seem good, especially because then you have to make choices and a lot of drama Like I just don't like drama only like drama in my movies not in my life There are some people who are just driven by drama, and that's okay You can tell Menville isn't going to drink the potion when he's kind of like, you know hanging off the gutter over that big hole in in the Castle basically it looks like a castle you can tell he's not going to drink the potion because of how long they make the scene go It's one of those things where if you're watching it from a standpoint of like really paying attention to the film and Understanding that everything is for a reason Why would they focus on that scene as long as they do if he was actually just going to take the potion? Yeah, you just know based off how long it's going. Yeah, there's he's not going to take the potion at all now What you don't necessarily know is that he won't die So that was a good twist that you didn't didn't necessarily see coming And then obviously he gets away. He lives the rest of his life I mean while they're stuck because they were so vain and so concerned about their looks and aging and their mortality That they end up having a terrible life because this is this is something that's been in film for a long time the whole idea of Immortality not actually being everything. It's cracked up to be and this is just another one of those films I Don't understand how they popped apart at the end like mannequins I understand the idea behind it because when they were talking about using the spray paint to match the color tones for people Who are dead? He said like they do for mannequins and so I get that callback as a joke But it doesn't make sense once again much like the teetering on that stair before falling Popping apart like a mannequin makes absolutely no sense because they're still held together like normal human Beings for the most part so I didn't like that it kind of takes you out of things it kind It's just absurd. It's once again another one of those like you went too far type moments, and you didn't need to it's a little too out of Character for the actual story and just it's just too much. You don't need it There's a point of how people try to defy aging in this film and fight off death with cosmetic surgery And that's certainly a thing it's very much ingrained in society and a lot of that being that you know There's a there's a large focus on people's looks in society I think it's much less now than it has been in the past and hopefully it continues to be much less Because you know being that vain is obviously potentially self-destructive like this film is showing and It also portrays as pretty dark and creepy Like the glimpse of the person getting that blood transfusion when she first goes to talk about options Madeleine They closed the door and someone was in there like getting a blood transfusion and like this rotating circular thing Like that was creepy like real dark and creepy and I felt like that was an intentional thing to kind of be like look Cosmetic surgery is kind of dark and creepy like if you think about it It really is like do you even know how they do nose jobs that is brutal nose jobs are brutal They literally like chisel cartilage out of people's noses like I've seen some footage of it I One time and I was just like never again like they literally have a hammer and chisel and just like Whack at the cartilage in the nose like it is Violent and terrible and then you consider that people are doing that just for looks just to maintain a certain look or to change their look It's terrible. So, you know ultimately With the this is kind of speaking about the basic fear of mortality and with us being mortal as we age and we get closer To death our bodies breaking down and part of our body breaking down is our looks don't become as good You know, do you think you know all of these? Lines in my forehead were there like 10 years ago or so absolutely not and that's just gonna continue They're gonna become deeper and more pronounced over time the lines that I have here. That's another thing I didn't have these in my 20s. I'm almost 40 years old like you know the fact that you know I'm gonna end up like Bruce Willis at some point here. You know, it's That's what happens your body changes and not for the good. It goes downhill continually until you die and this film just kind of takes that because everyone's afraid of that to some degree and You know, ultimately, it's really about mortality about dying about getting closer to death But it's also a little bit about not feeling like you have value in the eyes of society Especially when society ends up focusing so much on how you physically look and not who you are up here Even though as you age up here ends up going as well. So, you know anyway My thoughts on this film overall with five stars possible half stars in play. I think it's a pretty solid film It's not the best. I already, you know, obviously gave some of my issues with it I'm gonna give it a solid three and a half star rating. I like it. I thought it was good. It was actually the first time I've ever seen it Solid film I could see myself watching it again I think it's fun to see what the characters are gonna have happened in them next and then how they're gonna try and Cover that up and what that end product is gonna look like So pretty pretty fun film Anyway, love to know your thoughts on it put some comments down there But first I would really love it if you would go ahead and subscribe to my channel if you haven't already Really doesn't mean a lot to me. This is my personal plea to help me grow this channel And then if we do I can do more fun videos do more engaging stuff And also if you have ideas for horror related videos, I would I would be open to that So please hit that subscribe button Also, make sure that you hit the notification bell at the same time because that'll let you know whenever you're putting up Whenever I'm putting up a new video unboxing movie review or doing live stream. So yeah But regardless, I appreciate you taking the time to watch this review and until next time keep it brutal


This review discusses the potential of porous carbon, PC, materials derived from biomass sources for electromagnetic wave absorption, highlighting their unique features such as hierarchical texture and periodic pattern. The challenge lies in large scale production through low cost and simple synthetic routes. The article summarizes EM wave absorption applications of biomass derived PC materials, discusses the corresponding synthetic mechanisms and development prospects and provides a perspective on the field. This article was authored by Huang Qinjiao, Yan Cheng, Wei Lu, and others.


Today we're gonna be cutting this frickin' shirt. Have you ever questioned your existence of life? Do you wanna find your purpose? Have you found your purpose? I think I'm closing in on it. It's to be a performer. In today's video, you will see me get to perform with the one and only Golden Bear. Handle here. He's taken this photo, he's taken that photo. He's a magician, AKA a creative genius. The energies amplifying each other's creativity, you get this magic. So come along, enjoy today's video. And I also dive into some fashion, high upscale fashion. Cutting the sleeves off my gym shirts.  Cut it into a million pieces. I don't care. Just enjoy your life. And notice that you're floating on a planet. Where we headed, huh? You tell me. After many inquiries, after many photo shoots, after such shredded physiques, the questions have come in, how do you do it? So today I'm going to attempt to show you how to cut the perfect sleeve-less shirt. If you came across this video, don't know who I am. Figure it out. I'm not going to spend time. I like the cuts that go here, right? Stay tuned, by the way. This is getting old news, by the way. We're going to make Dunk Life fricking sick gear. So if you see any of my, I'm a fashionista. Weird hoodies with the nips showing, all of it. I'm going to make a whole line of Dunk Life fashion. But it's for the gym, gym fashion. Gym shin?  Dunk shoot with the one and only golden bear today. Just hit me up. I was going to run to the beach, get some photos for my new brand shoot. I'm the sun now, I'm the sun, so I need a new brand shoot. I'm like, black and gold is kind of the new theme. I'm like, this is the perfect shirt. Let's do it. Problem is, I don't have my scissors. There is actually some technique. I've been doing it for years. And the thing I've learned is, just like a haircut, you can always go more. That's where you start and you just go down. But if you've cut too far in, then you're like fricking wearing a, do you want it right on the edge of the nip? That's the game we're playing. That's the balance, okay? I'm actually okay with it going all the way down. I have another shirt to be limitless shirt that is just, from taking it off, I kind of stretch it out, and it fricking is open all the way to the bottom, which is not ideal, like all the way to here. But that's okay too. It's more about the cut that you do here. Start small. We're like building a fricking Dunk journey. Okay, there's not really much to this. Don't underestimate the fricking treads. If you have shreds, you can cut it fricking down the middle. If you have friends, which I don't have on hand at the moment, it's a lot easier if someone does that. So I might actually use this. Shout out to Scott Jeffery, the artist, as a little weight. So just start out here. Obviously not there. I usually, I mean, I'm gambling a little bit.  All right, so I'm trying to get this seam right on the side so it's even. It's kind of hard. And also I don't care enough. I'm cutting my shirt so it doesn't have to be perfect. Maybe that's why I do so well at it. Cause I let it go, baby. Leave it to the universe to decide. The more in you go, the more nipple show. And you could quote me on that. Okay, so the scissor works. I had a scary moment for a second. See, I'm already going a little too much in. Oh, well, this is the tricky part. Really not much to it. You're just cutting the sleeves. Watch this video, get a million views. My goodness.  All right, so I may have gone a little too much in here but that's okay. You gotta own the nip. If you're cutting the sleeves off, own the nip. You try to get it equal as well, equal distance. Equal distance, equilibrium and equivalence. And then you'll be friggin' gender neutral. A good scissor would help. Try to make them even on both sides. And the main thing is really just focus when you're cutting cause I got focused on this side too much cutting that I went a little too in. So test number one. All right, first test. Let's see. I almost forgot about the back. I almost cut the believe in yourself. All right, so this is perfect. Okay, perfect right there. Peers go, I kind of want it like that. And then I, in the mirror, I can't see my shoulders. This shoulder feels nice. You're gonna get the friggin'. Again, don't underestimate this one. You don't want to be like this. What do we, in the 70s? What do I mean by this?  Right in the crevice of that thing. Now you're cooking. And I guess this is dunk tip too, is that? I don't even know. Okay, ooh, not bad. Okay, so this one's really smooth.  I cut a little bit here, just a little bit more. But yeah, this, if this was a little bit more like that, that's nice. This is a little bit more like that. This is how you tailor the shirt. See, they're custom tailors. So if you want me to custom tailor it, I'll do it for $3,000. All right, so I actually just looked in the mirror again. This side's almost perfect. I might just leave it, but remember that. It starts to just like naturally have that curl because it's just, I don't know, that's how cotton works. It's pretty simple. I'm freaking huge. I'm huge. I'm gonna do a little bit more on this right here.  Just like that, look at that. I would come really acting like this is professional. Okay, that's a little too much, Jesus. Hey guys, very well done. Very well done. And that's basically it.  You can wear whatever you want if you're flying. And look, when you push your arms like this, it's easy to stretch those cuts you just made. So remember that too. It's gonna get stretched out a little bit. Unless you're, I'm not gonna be so gingerly with this trick. All right, anyway. Dunk life shirts are on my website, by the way. You want the black one? I'll get you the black one. I don't like that. But it curls under. I would feel this mirror check. Dumpioned. And that's good enough, dude. I mean, like, let me find my purple shirt that might be my best one ever. The nips are really out, so, but wait. But it does cover it enough. I guess it doesn't at all. Look, it's like one at a time. So I might actually put that one more because I like how crazy it looks. Nice smooth curve right on the nip edge, dude. But this is definitely like the beach. I don't, I'm not really wearing this to, I do wear it to the gym. But my gym's basically outdoors. That one's almost like cut off enough and tucked under here like this where I can wear it as a sleeveless. It's more like that, which is a really good analogy. This one's more like, we're letting it fly. And I want to fly in that one, so I might let it fly. And that, okay, hello. And that leads me to the conclusion. You gotta let it fly. Have fun with it. Star small, build up. I don't even know why I need a conclusion for this video, but hope that was helpful.  Get yourself a dunk life tee. Represent the limitless family. What is that? That's us. That's where people believe in no limits. We don't to express that we have no limits. And that's it. Came out pretty good. I'm gonna cut more. Yo. Absolutely immaculate day. Little chilly here in Florida. Going to meet the one and only Golden Bear at the Fort Lauderdale Beach Corp. I got some photos there last time. We shall see.  This is a really impactful moment, but the wind was too strong. I had such a hard time letting go. I want to make the best YouTube videos I can. I want to make the best business I can. I didn't know what to do. My boy Brian hits me up to go dunk, get these photos. It wasn't even about me. It was about his project. And I said yes without thinking because it brought me joy. And when I got there, the freedom I felt led to more ideas and not only that, the bonus of capturing the photos. So this is a reminder that whatever you're doing, let go and go with the flow. And that's not as easy as it says. It's not just letting go and doing nothing. It's understanding you're doing things for the joy of being alive and being human. So that's the message I felt. I was in that energy and you only feel that gratitude and that joy once you let go and you act in that faith. So back to the dunk, enjoy. Been out here for almost three hours. Brian's taking top laps, he's making insane projects with some behind the scenes. But you guys gotta check out his top laps for that video drops. They're gonna give me a sneak peek here. But I'm gonna try and throw some down. Let's go. He pays off with the mental. Gotta make it where it doesn't come. That's it, don't lie, you see me that man? Y'all see me that man? Stay tuned for high level videos, professionally produced raps, podcasts, interviews, documentaries, comedic skits with clones and all types of cool medias. Celebrate every day, really tune into why aren't you going for your dream? I'm not saying do something drastic, but I am saying take a moment with your beautiful self and think, what could I do? Why am I not doing it? Listen to the fears, let them surface? Go for it. Just go for it.


You'll experience patient care that is specific to you with exceptional follow-up care that ensures your hearing and balance needs are being met. Audiology Associates at 1428 Northlake Drive in Prestonsburg. Billie Jean Osburn's Kentucky Opera Junior Pros will be holding their Halloween show at the Mountain Art Center on Saturday October 28th. This is one of those shows they get the headline and get to create and all their own selves. This is one of their two big shows of the year. So we'd like to consider this annual tradition a big part of the area of the area's October festivities. The Halloween show is one of the biggest shows of the year. A lot of hard work goes into creating the show and all the young performers involved get to showcase their talent in a fun and creative way. The Junior Pros Halloween show will begin at 7 p.m. with activities for children beginning in the Mountain Art Center lobby at 5 p.m. It's a huge part of their education because you know that's the education system of the Mountain Art Center and this is just another part of their education you know writing a show putting the set list together working the kinks out you know on stage and rehearsals and things like that and so it's that's part of the mission was to display the local young talent. For more information or to purchase tickets you can go to macarts.com. For Mountain Top News I'm Kelsey Fidell.


This is Jennifer Olden. You know, it's him over there. Hi. Nice to meet you. How are you? Nice to meet you. You can have the right here. Right at me. Thank you. Well, I hear your meetings. Yes. I've been here three months and I really enjoyed it. I think I really need to dance on this. Well, thank you for all that you've done. Thank you for what you've done for our country. Here's a little souvenir. I think you'll fit in with your new occupation. Not new.  I really appreciate all that you've done. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. Oh, I appreciate all that you've done. Really meant a lot to the country. I appreciate it all. Please do that to me. Thank you. Thank you. Thank you. Thank you. Yes, Julie. How are you? Mr. President? How are you, sir? Thank you. Are you ready to do it? Mary Margaret? We are really looking forward to your journey. We've been here for a long time. Yeah, you're on the other side. Thank you. Do it right here. Julie, you can smile. I'll do the scraiser. Thank you. Thank you. Thank you so much. Thank you. Well, you have a merry Christmas too. Thank you. Thank you, sir. Can I tell you a few more? But I came to get her this year. Last year she didn't come home. So I came to get her this year. All right. That's it.


Today we are revisiting my top 10 PSA graded returns. What's up guys, we're back with another epic video. Today I'm doing a top 10 for my best returns ever. Some of my best cards that I ever graded, we're going all the way back to 2019 for some of them through up to 2022. So there's a lot of crazy ones, but first we have to give away. I'll be giving away 20 Battles of Chaos packs.  Let me know your favorite return or your favorite return from my channel. I also want to mention I have sent out another PSA returns that we'll have another PSA video soon. Plus my bulk service from 2020 is getting close to finishing. So we're going to have a super long video upcoming, which I'm really excited about. Also, don't forget to check out ruckson34.com for any old school products that I may have listed and now a word from our sponsor. This video is sponsored by Magic Spoon. Sometimes I wake up late and these situations it can be hard to find a fast yet healthy meal. This is where Magic Spoon's new limited edition cereal bars come in. Bill, it's time to wake up. You've got to record your CMO. What am I going to eat for breakfast? I barely have any time. Too bad I don't have time to eat this zero grams of sugar, 13 to 14 grams of protein, only four net grams of carbs in each serving, only 140 calories per serving, keto-free, gluten-free, grain-free, soy-free and low carb cereal. Fortunately, Magic Spoon has came out with these grain-free cereal bars. They're healthy and I'll never be late to a recording again. These cereal bars are nutritional like a protein bar but a hundred times more enjoyable. They come in flavors like cookies and cream, cocoa and peanut butter. Each bar has 10 grams of protein, one gram of sugar and four net carbs. And that's tasty. If you guys want to try some of these for yourself, use code ruxin5 and get $5 off your order.  So click the link below and make sure to use code ruxin5 or magicspoon.com slash ruxin5 to get $5 off your order when you order cereal bars or cereal. And all you Canadian and British fans, they ship there now as well. Thanks again to Magic Spoon for sponsoring the video. McDonald's packs one of my favorite sets because it reminds me of back in the day when I pulled the Millennium Shield. Speaking of Millennium Shield, guys I've been trying to grade a Millennium Shield for forever like so long and I just can't get one. It's so annoying. And this one I had just sitting there. I was gonna sell it and I was like, this thing looks pretty good. Why haven't I submitted it? I don't know because it got a gym hit 10. And if you guys saw me on Instagram posts, I completed one of my collecting goals. It was grading one of these. Now the reveal. We have the Beast Skull Dragon. Let's check out the back. We can inspect the card like this. Do we see anything? Those old dots are on the case. I mean, it's just PSA card just get stuff all over them somehow. I mean, it looks pretty good from here. Check out the front. The sintering is pretty good on it. The card looks pretty clean. Let's reveal the gray guys. Here we go. Jimminton. Okay, it got it. I was expecting it, but you never know sometimes cards that you think are for sure 10s do not go back 10s. So now I have this one and I also have this one that I got from Vintage Yu-Gi-Oh. Oh Beast Skull, yeah. So I have two of these now and this could be the third one if we got a 10 on it, which would be pretty crazy. I don't remember what I thought about this one. Maybe there's some whitening on it slightly right there. My thumbs and I don't really need to cut my fingernails. Oh, yes. No way. Okay. So that slight whitening, I guess. Oh, it came off. It was on the case. No. You're kidding me. This is my third one now. I think I may be trading one of them to one of you guys actually. Ooh, the Beast Skull Dragon. We are starting off hot. It's a little faded. So let's see how they graded the faded. Occasionally the faded, they don't like to really give them good grades. We're about to find out if they did or not, but this guy was really nice. Let's check him out. I don't remember if we checked it out in the collection or not, but you guys can check that video out. It was insane. Let's see what it got. Good start. This is a good start. This is what, is this the fourth Beast Skull I've graded? Oh, guys. An epic Chaos Emperor Dragon Ultimate Rare. One of the coolest cards ever. I got this card out of a lot. Somebody had opened a Duelist Pack Kyber first edition box and they just opened the cards and then they just sold all of them. They didn't do anything. All they did was open them, pull the cards out and then they put this in a top loader and a couple other cards and then they posted on eBay for $200. Crazy. So I bought it obviously. I thought it was, they had zero feedback.  And they did and it was in great condition. And it got it. It's crazy. They literally opened the box and then sold it. So I got this and a Ring of Destruction Ultimate Rare that they had pulled. Okay, let's do this one first. Oh my gosh. All right, here's the thing with this one. The sintering is not great. If it gets a nine, that will be why because the card is really perfect. Look at the foil on this card. I think that there is a strong chance it gets a nine because of that. However, the rest of the card is incredible. Did they ding it up there? Oh my goodness. What happened to the corners? Oh no, there's no way it's gonna tip with corners like that. We might have even got an eight. Let's see. What? What? What? Wait a second. Okay guys. Okay, wait a second. Look at this. All right, first card. Dark Paladin. Looks pretty clean. Oh my goodness. What a good start. What a start. Oh my, this was one of the cleanest cards I think. So this is really nice. This card I think deserved it. The first edition Ginzo from the Pharaoh Servant box will open. This was such an amazing pull and I thought it had a really good chance of getting a 10. The centering on it was pretty good for especially for Pharaoh Servant and the card was beautiful. Let's see what we got on this thing. Pharaoh Servant, first edition Ginzo. Secret Rare. Gym Mint 10. Look at that Secret Rare. Gym Mint 10. Oh my goodness. This is so exciting. Oh, faded Ginzo. First edition. Wow. Centering is actually awesome on that guy. Wow, the centering is great. Wow, that's really good actually. Oh, dare I hope for a 10? No, this actually got it. Oh my goodness. No, that is crazy. Not because I don't think it deserves the 10, but I mean faded. Usually they're tough on the faded. The centering is actually really good for Pharaoh Servant. Oh. Guys, the one and only Cyber Dark Dragon. If you guys remember, if you guys are a very, very long time subscriber, I pulled this one when I had like 200 or 300 subs. I then graded it with my first ever PSA submission and it got a nine and I left it sealed as a nine for a year. Then I decided, you know what? That thing deserved a 10. I'm cracking it. I cracked it, sent it back in. As you can see, it does have this foil shift. So I'm thinking maybe that was part of the reason it got a nine before because if they're thinking maybe there was something wrong with this card, but really it's just foil shift. So it shouldn't count. The front of this card is immaculate. The centering is really good on it. And let's see the back. I think the back has a absolutely tiny blemish. Slight line from the Ultimate Rare. It's like this thing has a chance. I'm cracking it. It regrated a 10, yes. One of my favorite cards ever. One of my, definitely one of my favorite pulls on the channel. And it's a back as a 10. Oh, here we go. The last elemental hero, elemental hero, Tempest. This dude is massive. Super expensive raw card. I spent big money on it. Hopefully you get a gem on this. It was clean. There's more stuff in there from PSA, but they didn't kill me on the residue this time. And this dude gemmed. And look at that. Such an awesome, such an awesome card to get in 10. So I'm extremely excited. Morphing jar tournament pack two. One of the most iconic cards in all of Yu-Gi-Oh. This thing was used in all kinds of decks back in the day. I was looking at the card like this card is beautiful. It has a small factory line about this long across the front. And it has a little bit of back scratching and a tiny bit of edge wear up here. Probably a nine with how big the card is, but you never know. It could get a gem. I think it was Monday or Tuesday. I got the grade and I saw it. And it was a gem mint 10. Morphing jar. Gem mint 10. There's 21 of these in the world. 21 gem mint 10 Morphing jars. Okay, finally we have Gaia the dragon champion. Can we get a 10 on this huge secret rare? I mean, this card was nice. This card was nice. This would be big.  So I kind of regret that, but let's see. Gem mint Gaia the dragon champion. That is a huge, huge card. I don't even own this one. I don't own it at all. So a 10 is absolutely massive. That is big time. Oh my goodness. Okay, we have the one and only black rose. Let's check the back first of all. Looks like it is pretty decent. There's a couple of speckles. I think those are just on the sleeve. So I think we're okay there. All right, back looks pretty good. Let's check out the corners. The front, check this out guys. Centering's pretty good on the front. Foil. Absolutely beautiful. I mean, just a beauty on the foil. It looks super good. Let's check out the corners. There's no telling what the 10s are worth. I think the 9s are around like $4,000 or $5,000. So 9s still really good. 10s are insane. They're super high. Are you guys ready? I'm a little bit scared. I'm scared to look at this thing. Like button for a lot guys. Here we go.