|
Learn
| Upgrade Your Skills |
|
|
|
Imagesource: https://www.intel.com/
|
|
|
A few months back, in Issue #44, we introduced the current pet project of Bruno Levy - @BrunoLevy01 on Twitter. While his RISC-V implementation has about as much in common with 8 bit systems as an ant has with space travel, the topic is nevertheless not that far away for many of our readers. After all, 8 bit CPUs in particular can still be fully understood by a single person in their lifetime - due to their simple construction. For the modern counterparts from Intel, AMD and Co, this is not true anymore for a long, long time. Especially since most IP cores of current SoCs are external developments, and their complexity is hidden behind a cheque with a whole lot of zeros. Well, for RISC-V systems the whole thing is true again. The simplest, but also the more complex RISC-V implementations are so (more or less) trivial, that they are relatively quickly overlooked and just as quickly implemented in an emulator or an FPGA. And thanks to a RISC-V capable C compiler, you can also enjoy high-level languages on your homebrew without breaking your own brain’s … brain, trying to figure out assembly instructions using pencil, paper. 🧠 And for exactly this reason, we currently have to refer to Bruno and his DIY RISC-V CPU again. Bruno has been busy, very busy. And since the initial release of his architecture for e.g. the IceStick, he has added a second part, in which you extend the simple architecture into a pipelined processor, with register forwarding and branch prediction. If this is not enough, you can build your own (to be precise Bruno's own) FPU in part III. Yeah, floating point arithmetic 🧮. One of the best resources to get started with RISC-V and/or FPGAs. And completely free of charge. Thank you Mr. Levy!
|
|
Compiler Creation Step-by-Step
|
|
|
Imagesource: https://unsplash.com/
|
|
|
Compiler construction is not necessarily one of the favorite disciplines of most CS students. On the other hand, you only really fully understand the functionality of the machines, we love so much, once you've put together your very own compiler. Lex and yacc ... what memories 😵💫. Yair Haimovitch also known as @yairhaimo approaches the subject from a completely new angle. In his browser-based tutorial, he gives a basic but structured and very clear introduction to the topic. The reader builds a compiler, that translates a subset of Lisp to Javascript. The usefulness of this in production is completely left aside, but if you replace Lisp with X and Javascript with Assembly, you are only one assembler and linker step away from executable binary of your own language. The whole project is based on Javascript, which is also used for the implementation of the compiler in the interactive examples. Great lecture. Should be something for anyone who has always been asleep in "compiler construction“, or just fancies the subject. (Who does not? 🤓)
|
|
|
Imagesource: https://robertheaton.com/
|
|
|
Robert Heaton - tweeting as @RobJHeaton - describes himself as a one-track lover down a two-way lane. I love that kind of linguistic creativity. But that's not all. Robert also has a heart for developers. Namely, for the very special subset of developers, for whom a very special part of hell is also reserved - developers of Gameboy emulators. 👹 Robert's project Gameboy Doctor is a tool, that belongs to the debugger species, but must have taken a turn somewhere, sometime in evolution. And in a good sense. The software helps you identify bugs in your own emu faster and easier by letting you run test ROMs, and simply log the register contents after each instruction. Due to the deterministic nature of our little friends made of silicone and plastic, the respective state after an operation can be compared to the "should-be", and Voilà, ready is the debugging recipe. Great idea. Ingenious implementation. Real killer for ... Gameboy emu developers.
|
|
|
Imagesource: https://www.bigmessowires.com/
|
|
|
Why build an 8 bit CPU with audiovisual support from Ben Eater when you can have a fully functional 4 bit powerhouse with Steve Chamberlin aka Big Mess o' Wires? Even if math says that 4 is less than 8 ... math sometimes an a33hole, and Steve's 4 bit thingy is more than worth looking at! 12 bit address space and therefor 4kB RAM, Harvard architecture (!), 2.46 MHz clockspeed and only two cycles per instruction are still sub-scalar, but make this thing seriously interesting. In addition, there are 4 push buttons, a 16x2 LCD and a small speaker that you can control. Curious? Then say an inner prayer and mumble a friendly Hello to Nibbler. (Appropriate name btw.) Steve's site has all the information you need to build your own. And if you need some food for the upcoming Christmas season, this project might be perfect for you.
|
|
|
Imagesource: https://unsplash.com/
|
|
|
It's MS-DOS time again. And yes, this topic has rather less or even nothing in common with our 8 bit systems. Only the timeframe of their significance has a certain intersection. But for the following exactly this circumstance should be sufficient. Who did not take the MS-DOS road into the modern age? 🙋♂️ And who can still remember the difference between "Real Mode" and the "Protected Mode" introduced with the 286? Well? I don't see any hands up. Gustavo Pezzi alas @pikuma still remembered, and addresses this very delta in his latest article. And by the way, one learns how a CPU with only 8 bit wide address bus could access 1MB RAM at all. And what happened to DMA? And what-the-lavender is a DOS Extender? These are all questions that should be answered during your lifetime, otherwise you won't rest in peace. And: Gustavo.Clarifies.Everything. In - as always - a competent and entertaining way. Nice read.
|
|
|