I probably won’t be posting as much this week because of exams, but I did want to just make an update to the blog.
My computer architecture professor gave us an essay prompt asking us to take a stance on whether computer architecture has seen any major advances in the last decade, which I thought would make for a good post. By the way, this was the first essay I’ve had to write as a CS student and it made me realize that my formal writing has gotten a lot worse, but regardless here’s the essay:
Computer architecture has experienced several revolutionary advances in the past decade that have increased performance for users in a number of ways.
One important feature of modern architectures that greatly improves performance for intensive tasks such as gaming or video rendering is the combination of multicore processors and hyperthreading. First, multicore processors places multiple computing “cores” onto a single chip which greatly increases the throughput of programs by allowing instructions to be simultaneously executed. While this type of architecture requires extra handling from the operating system and software, it can quickly enhance performance if executed properly. In fact, “a dual-core chip running multiple applications is about 1.5 times faster than a chip with just one comparable core (Geer 1).”
Unfortunately, adding the hardware for multiple cores can be costly, thus enhancing the performance of a single core can be quite valuable. Hyperthreaded processors queue up instructions of different threads so that the processor is never left idle while the next instruction is found. Hyperthreading was introduced by Intel with their Pentium 4 line of processors and have allowed processors to “[show] speedups of individual benchmarks of up to 30 to 40%… compared to sequential execution (Bulpin 9).” While hyperthreading provides a sense of parallel computing with just a single core, it seems that experimentally, “throughput is always higher with multicore processing than with Hyperthreading (Bulpin 9).” While having multiple cores is preferable, combining multiple processors and hyperthreading has greatly boosted performance on intensive processes and has drastically increased computing power over the past decade.
At the external storage level, solid state drives have also increased the speed of file IO and disk operations. Traditional hard disks were bulky, required defragmentation, and are far slower at reading and writing than modern solid state drives due to the requirement of moving components. A principal advantage of solid state drives over hard disk drives is the ability to access data in random access time whereas with hard disks, the data locality oh the previous drive access affects the next access. This is confirmed by results by experiments that compared SSDs to HDDs and concluded that “all… SSDs significantly outperform the HDD (0.54MB/sec) by over 31 times higher bandwidths (Chen 4).” These experiments also concluded that the latency for reads and writes for SSDs have mostly uniform latency. Unfortunately, SSDs are more expensive per gigabyte and usually don’t offer as much space as a single HDD. Although, limited space on SSDs is more prominently being used to store system files and applications rather than photos, music, and user files. This makes general user operations on the computer load and execute up to 4 times faster.
Finally, over the past decade the inclusion of graphical processing units along with CPUs has become more prominent. GPUs offer a number of advantages over CPUs. Namely, while CPUs may usually have 2-6 cores, GPUs have over a hundred cores that process thousands of threads. The inclusion of GPUs has been able to speed up software nearly 100-fold in several instances. GPUs are best suited for users that plan to do lots of gaming or video rendering. However, a GPU is not a replacement for a CPU because each of the individual cores in a GPU are slower than that of a CPU. For this reason GPUs are good at performing intensive and repetitive calculations over and over again such as rendering because the process of rendering a series of images will be the same for each one. However, the more complex calculations that won’t be done over and over again (everyday computing use) will not be done in an intensive or repetitive manner. Here it is preferable to have the speed that a CPUs cores offer.
These are only a few of the major advancements that computer architecture has experienced in the past decade, but it’s clear that speed, efficiency, and computing power have massively increased due to these innovations.
Bulpin, James. “Multiprogramming Performance of the Pentium 4 with Hyper-Threading.” (n.d.): n. pag. Web. http://pharm.ece.wisc.edu/wddd/2004/06_bulpin.pdf
Chen, Feng. “Understanding Intrinsic Characteristics and System Implications of Flash Memory Based Solid State Drives.” N.p., n.d. Web. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.151.8491&rep=rep1&type=pdf
Geer, David. “Chip Makers Turn to Multicore Processors.” N.p., n.d. Web. http://www.itu.dk/~jhh/thesis/references/36%20-%20Chip%20Makers%20Turn%20to%20Multicore%20Processors.pdf