![]() We'd written our own simulator, compiler, and assembler from Arm's documentation. But, apart from a small problem with flushing the instruction cache and an issue with floating-point flags, it all worked! I was astonished. I was so comfortable with our little AArch64 simulator that I was very happy for someone else to debug our work on the real machine. Edward Nevill, a Java expert formerly of Arm Ltd., joined the project from Linaro. This was an important day: To get as far as outputting "Hello, World!" to the console, Java has to execute about three-quarters of a million bytecodes without crashing, and exercise much of the virtual machine.īy the summer of 2013, three of us were working on the project. Looking back at the logs, I see an entry of "Enough for Hello, World!" on Oct 4, 2012. As a result, the initial porting went quickly. We could create complex breakpoint conditions and even record instruction traces so that we could see the instruction history when the JVM crashed. The idea of writing our own simulator had been inspired. After a couple of months, we were executing Java bytecodes. It took Andrew Dinn a little while to write the simulator, while I got on with writing the assembler and initial startup code. But where would we get an AArch64 simulator library? "We'll write one," I said. Every call from C++ to Java would enter the simulator, and every call from Java back to C++ would leave the simulator and return to x86 code. We could run that natively at full speed on an Intel x86-based PC. We'd use a simple, functional instruction set simulator, but just for the AArch64 code that we generated ourselves. We would need to bootstrap all of Linux on the simulator before we could fire up Java.Īndrew Dinn remembers us being at breakfast at a conference when I excitedly told him that, while in the shower that morning, I'd figured out what to do. What's worse, OpenJDK has to call out to the operating system. It is possible to run all of OpenJDK under simulation, but the simulators at the time were painfully slow. Persistence and help from Arm's Philippe Robin solved the documentation problem, but the lack of hardware was more difficult. to give us the detailed information we needed was not easy. First, there was no AArch64 processor in existence. Get it done fast, do it well, and make it free. The only way to prevent that disaster was to gain first-mover advantage and do the work in public. One thing worried me: What if someone else did a port first? Then the whole effort might be wasted, along with any hope of glory. He'd worked on Java for a long time and had experience writing compilers for Lisp machines and logic languages. Fortunately, Andrew Dinn was about to join our Java team. I was determined to be one of the engineers on this project, but I couldn't do it alone. Red Hat's management agreed (and has consistently supported the project ever since), so we were good to go. By writing an entire port, we'd gain experience that we could not get any other way. We'd been building up a support team for OpenJDK. But there was another, deeper reason to keep it in-house. That would cost lots, so why not save money by doing it ourselves? It would be good publicity, and we'd be able to build alliances. I was thrilled at the prospect of getting my teeth into such a substantial piece of work, but how could Red Hat justify starting this big project with no guarantee of success? I argued that unless we did it, we'd have to pay someone. If my team were going to do it, we'd have to learn on the job. I had heard that two experts could write a bare-bones port of OpenJDK in about a year, but that was all I knew. ![]() Java is a key component of much enterprise software, so this news was a pretty big deal. The software then available for the new 64-bit architecture did not include Java. We'd need to solve quite a few problems to get this done, but one was particularly difficult. He had exciting news to share: Arm would produce a 64-bit architecture, and Red Hat was going to port Red Hat Enterprise Linux (RHEL) to it. tech community's favorite Thai eatery) with Jon Masters, Red Hat's lead Arm architect. I was having lunch at The Wrestlers (the Cambridge U.K. ![]() In June 2020, Apple announced its plans to move Macintosh computers over to Apple silicon-which means Arm.įor those of us who have worked for years on Arm servers, this shift has been a long time coming. At the end of 2019, Amazon Web Services announced Arm-based Graviton2 servers. The news that Arm-based computers will be important for the foreseeable future has even reached the mainstream media. It has been quite a year for Arm Ltd., the firm that designs reduced instruction set computing (RISC) architectures for computer processors. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |