FPGA Soft CPU Is Superscalar

We will admit it: mostly when we see a homebrew CPU design on an FPGA, it is a simple design that wouldn’t raise any eyebrows in the 1970s or 1980s. Not so with [Henry Wong’s] design, though. His x86-like design does superscalar out-of-order execution, just like big commercial modern CPUs. Of course [Henry] designs CPU architectures for Intel, so that’s not surprising. You can see a very detailed talk on the design in the video, below. You can also read the entire thesis project.

[Henry] starts out with a description of FPGAs and soft processors. He also covers the use of multiple instruction issue to increase the virtual clock rate of a CPU. In other words, if a 100 MHz CPU can do one instruction at a time, it won’t be any faster — in theory — than a 50 MHz CPU that can do two instructions at once. Of course, trying to do two at once has some overhead, so that won’t be completely true.

Continue reading “FPGA Soft CPU Is Superscalar”

The Atomic Pi: Is It Worth It?

Several months ago, a strange Kickstarter project from ‘Team IoT’ appeared that seemed too good to be true. The Atomic Pi was billed as a high-power alternative to the Raspberry Pi, and the specs are amazing. For thirty five American buckaroos, you get a single board computer with an Intel processor. You get 16 Gigs of eMMC Flash, more than enough for a basic Linux system and even a cut-down version of Windows 10. You have WiFi, you have Bluetooth, you have a real time clock, something so many of the other single board computers forget. The best part? It’s only thirty five dollars.

Naturally, people lost their minds. There are many challengers to the Raspberry Pi, but nothing so far can beat the Pi on both price and performance. Could the Atomic Pi be the single board computer that finally brings the folks from Cambridge to their knees? Is this the computer that will revolutionize STEM education, get on a postage stamp, and sell tens of millions of units?

No. The answer is no. While I’m not allowed to call the Atomic Pi “literal garbage” because our editors insist on the technicality that it’s “surplus” because they were purchased before they hit the trash cans, there will be no community built around this thirty five dollar single board computer. This is a piece of electronic flotsam that will go down in history right next to the Ouya console. There will be no new Atomic Pis made, and I highly doubt there will ever be any software updates. Come throw your money away on silicon, fiberglass and metal detritus! Or maybe you have a use for this thing. Meet the Atomic Pi!

Continue reading “The Atomic Pi: Is It Worth It?”

This Atomic Pi Eats Other Pis For Lunch

The world is full of single board computers that want a slice of the Raspberry Pi action. Most of them are terrible. But fools and their money, yadda yadda, and there’s a new sucker born every minute. The latest contender to the Raspberry Pi is the Atomic Pi. It’s an x86-based single board computer that costs $35, shipped to your door. Is it worth it? Is it even in the same market as a Raspberry Pi? Or is it just a small budget computer without a box? I have no idea.

With that said, the Atomic Pi comes with an Intel Atom x5-Z8350 with Intel HD Graphics (Cherry Trail). There is 2 GB of DDR3L-16000, 16 GB of eMMC, and an SD slot for storage. Connectivity is a full HDMI port (primary audio out), USB 3.0 and 2.0 ports, a Mediatec RT5572 used for WiFi, a Qualcomm CSR8510 for Bluetooth 4.0, a “Legitimate licensed BIOS”, and a real-time clock. Overall, you’re looking at a top-of-the-line tablet computer from four years ago. One that would run Windows.

To use all the features of the Atomic Pi, you will need to buy a $15 breakout board to supply power to the board, and use a large industrial power supply, the kind you would normally find bolted to a RepRap or a homemade CNC machine. You will need to supply both 5 V and 12 V to the board if you would like to use the Class D audio amplifier, but if you only want to use audio over HDMI, supplying only 5 V will do. If you want to boot this board, it looks like you’ll need to bring a USB/TTL cable to make everything work. This may be a tough sell to a crowd with zero experience booting a bare Linux system. That said, it runs Nintendo 64 emulators well, which is the only reason people buy Raspberry Pis anyway.

Is the Atomic Pi the single board computer you need? I don’t know. But we’ve got an Atomic Pi on order, and we’re ready to go with a full review when it show up.

Show Your Skills With A Bootable CV

It’s a thankless task, searching for a job. You send off your CV, or resume, and it joins a thousand other destined for the round file. What on earth can you do to make your career stand out, and catch the eye of the recruiter?

Your bootable CV isn't eye-catching if the recruiter uses GitHub to view the PDF.
Your bootable CV isn’t eye-catching if the recruiter uses GitHub to view the PDF.

If you are [Pablo Jiménez Mateo], the answer is straightforward enough. Simply combine the document as a PDF with an x86 bootloader, to make a readable document that will also boot an x86 computer system. He can do this relatively easily by prepending the bootloader file to the PDF, as long as the “%PDF” header of the CV remains within the first 1024 bytes it will remain a readable document. Which it does, though as our GitHub screenshot shows, not in all PDF readers.

A bootable PDF is pretty cool and we have to salute his effort in getting it in front of us in the hope of  career boost, but it would be fair to admit that it’s a trick that has been done before. So it’s time to turn attention to the bootloader itself, whose code comes in the form of an extremely well-commented assembly file that loads some sprites and a border to a VGA screen that looks as though it might be the first room in a top-down adventure game. Through the code we can gain an appreciation of just how simple a bootloader can be, and that in itself makes this project worth a second look.

If writing your own bootloader interests you, that’s certainly a subject we’ve covered in the past. It’s possible to make bootable images very small indeed, even down to fitting in a Tweet.

Unlocking God Mode On X86 Processors

We missed this Blackhat talk back in August, but it’s so good we’re glad to find out about it now. [Christopher Domas] details his obsession with hidden processor instructions, and how he discovered an intentional backdoor in certain x86 processors. These processors have a secondary RISC core, and an undocumented procedure to run code on that core, bypassing the normal user/kernel separation mechanisms.

The result is that these specific processors have an intentional mechanism that allows any unprivileged user to jump directly to root level access. The most fascinating part of the talk is the methodical approach [Domas] took to discover the details of this undocumented feature. Once he had an idea of what he was looking for, he automated the process of checking every possible x86 instruction, looking for the one instruction that allowed running code on that extra core. The whole talk is entertaining and instructional, check it out after the break!

There’s a ton of research poking at the instruction level of complication processors. One of our favorites, also by [Domas], is sandsifter which searches for undocumented instructions.

Continue reading “Unlocking God Mode On X86 Processors”

35C3: A Deep Dive Into DOS Viruses And Pranks

Oh, the hijinks that the early days of the PC revolution allowed. Back in the days when a 20MB hard drive was a big deal and MS-DOS 3.1 ruled over every plain beige PC-clone cobbled together by enthusiasts like myself, it was great fun to “set up” someone else’s machine to do something unexpected. This generally amounted to finding an unattended PC — the rooms of the residence hall where I lived in my undergrad days were a target-rich environment in this regard — and throwing something annoying in the AUTOEXEC.BAT file. Hilarity ensued when the mark next booted the machine and was greeted with something like an inverted display or a faked hard drive formatting. Control-G was good to me too.

So it was with a sense of great nostalgia that I watched [Ben Cartwright-Cox]’s recent 35C3 talk on the anatomy and physiology of viruses from the DOS days. Fair warning to the seasoned reader that a sense of temporal distortion is inevitable while watching someone who was born almost a decade after the last meaningful release of MS-DOS discuss its inner workings with such ease. After a great overview of the DOS API elements that were key to getting anything done back then, malware or regular programs alike, he dives into his efforts to mine an archive of old DOS viruses, the payloads of most of which were harmless pranks. He built some tools to find viruses that triggered based on the system date, and used an x86 emulator he designed to test every day between 1980 and 2005. He found about 10,000 malware samples and explored their payloads, everything from well-wishes for the New Year to a bizarre foreshadowing of the Navy Seal Copypasta meme.

We found [Ben]’s talk a real treat, and it’s good to see someone from the current generation take such a deep dive into the ways many of us cut our teeth in the computing world.

Continue reading “35C3: A Deep Dive Into DOS Viruses And Pranks”

Bootstrapping An MSDOS Assembler With Batch Files

You have a clean MSDOS system, and you need to write some software for it. What do you do? You could use debug, of course. But there are no labels so while you can get machine code from mnemonics, you’ll still need to figure out the addresses on your own. That wasn’t good enough for [mniip], who created an assembler using mostly batch files. There are a few .COM files and it looks as if the first time you use debug to create those, but there’s also source you can assemble on subsequent builds with the assembler.

Why? We aren’t entirely sure. But it is definitely a hack. The technique sort of reminded us of our own universal cross assembler — sort of.

Continue reading “Bootstrapping An MSDOS Assembler With Batch Files”