Posts

Showing posts from March, 2020

Project Part 1

Image
For the first phase of the final project, we have been instructed to find and build an open source software package, as well as benchmarking the software on both x86_64 and AArch64 machines. We need to find a test case that takes a minimum of four minutes to complete, and prove it's consistency. I'll start this post with a bit of my project discovery process. Since we worked with a volume adjustment program in class during our benchmarking lessons, I decided to work with a software package focused on audio. Coincidentally, i've been playing around with Audacity in my free time, and given that Audacity is open source it was a strong candidate for this project. Audacity leverages the portaudio library, which was my initial choice for this project. Portaudio uses the ALSA  library for it's functionality on Linux, which became my second choice for this project. Finally, after trying and failing to build both previous libraries, I settled on a dependency that they both

Lab 5 x86_64 Update

This post will serve as a follow up post to the previous. The second part of lab 5 was fairly straightforward, and therefore this post will be fairly short since most of the content was covered in the previous post. The logic between the AArch64 version and x86_64 version has barely changed, the main notable difference is the use of the rax and rdx registers as the division quotient and remainder. This also removes the msub logic required on the AArch64 version, meaning that the code is very slightly smaller. Finally, instead of using the 48 decimal value to convert to ascii, I opted to use the hexadecimal 0x30. This produces the same result, but I decided on hex just to prove that I can do it. You can take a look at the x86_64 version  here .

Lab 5 SSH & Update

Lab 5 is the first lab where we are required to program on an x86_64 or AArch64 processor. Naturally, this will present a moderate challenge as we will be working with a more complicated instruction set. Before we begin writing any code, we will have to access an x86_64 or AArch64 machine. Since the machines provided by the college are mostly AArch (with only one of the machines being x86_64), AArch seemed like a good place to start. Before I write about the actual lab content, I would like to detail some entertaining details of the prior class where we actually accessed the machine. At the beginning of the semester, one of the firsts tasks that the class was given was to generate a pair of SSH keys and send the public key to our professor. This would be used in the future to enable our access to the college machines, where we would write code for this lab. However, when we were instructed to access the machines in class, pretty much everyone with a machine had either misplaced or fo