Two Cents on Computer Architecture Research -103 [Gollu’s Computer Architecture Research Exploration]

Biswabandan Panda
5 min readJun 8, 2020

--

Preamble: This blog is a continuation of my previous blogs: Two cents on Computer Architecture Research [1][2]. Mostly meant for Indian undergraduate/early graduate students who have taken a course on computer organization/architecture and want to pursue research in the field of computer architecture.

In this blog, we will delve into the process/path/journey of kick-starting research. To make the path a bit entertaining, let’s introduce a fictional character named Gollu. Gollu just finished his UG and wants to explore Computer Architecture research. Note that Gollu is excellent in terms of basics on Computer Architecture. Let’s start the journey then.

Step 1 (Where to find the topics?): Gollu’s friend Golli informed him that he should look at the journals for finding a topic of interest. There comes the first wrong step. Although Indian higher education system is obsessed with journals and all, Gollu should look at the top conferences in the field of Computer Architecture. Why? In computer science, in contrast to other fields and disciplines, conferences are the most prestigious venues in terms of quality/impact/state-of-the-art. Note that many Indian institutions do publish in low quality journals/forums and students like Gollu get confused. Also, just because some conferences have an IEEE tag it does not mean they are of good quality, either. Serious students like Gollu should be aware of this so called game of quantity over quality played by the academicians.

The top three conferences in the field of Computer Architecture are ISCA [3], MICRO [4], and HPCA [5]. If Gollu is interested in a bit of intersection of compilers, OS, and programming languages with Computer Architecture, then ASPLOS [6] and PACT [7] are the two other conferences of interest. Some of the co-located workshops with these conferences are also good to explore. IEEE CAL [8] is one of the awesome venues that publishes early impactful ideas, and yes CAL is a journal. Last but not the least SIGARCH blogs [9] is a one-stop place for awesome information about Computer Architecture.

Step 2 (How to find the topics?): As ISCA is one of the top forums in the field of Computer architecture, let’s browse ISCA 2020 program [10]. The program contains research papers partitioned based on a theme: for example, microarchitecture, IOT/mobile, ……. And many more. Gollu should try to find his interest from the papers mentioned at the ISCA site. Note that it can be a daunting and frustrating experience to read and understand these papers.

So Gollu should look at the themes and may read the abstracts. If the program looks a bit more overwhelming, then Gollu should look at the workshops and tutorials [11]. Workshops and tutorials usually contain early-stage ideas, relatively more comfortable to read and understand compared to the ISCA program. And Guess what, Gollu finally found his interesting theme/problem he wants to explore and that is to design a secure memory hierarchy. From now onwards, I will be taking secure memory hierarchy as an explicit example problem for the rest of the blog.

Step 3 (The right set of questions): What does it mean when someone says a secure memory hierarchy. What is secure? How to define it? Are there any attackers that attack through memory hierarchy? What are the different ways an attacker can attack? Is there a generic threat model or a specific threat model? What are the trade-offs? Does the secure memory hierarchy come for free or it affects performance, power, and many more trade-offs. And then the two most important questions: What is the ideal/perfect solution for this problem? What is the state-of-the-art (best solution proposed so far)? Gollu started looking at the papers that appeared in the top conferences in the last few years and found some early works through the references.

Step 4 (World of tools, simulators, and benchmarks): Gollu is motivated now and wants to solve his favorite research problem. The next step for Gollu is to find out the right set of tools/simulators/benchmarks to prove his point. Gollu can use simulators like gem5 [12], ChampSim [13], and many more that simulates a memory-hierarchy. Why simulation? Why not the actual system? Well, Gollu wants to propose a new and secure memory hierarchy. So it is not there inside the real Intel/AMD/ARM/IBM/… machines. If his idea works in the simulator then these companies may adopt his idea, and Gollu will be famous for his contributions in a few years. However, Gollu can use the real machines to see how attacks can be mounted on memory hierarchy. Overall, Gollu needs to showcase that his idea thwarts all kinds of attacks but at the same time his idea does not affect system performance. So, Gollu can use benchmark suites like SPEC CPU 2017 [14], CloudSuite [15], and many more. These benchmarks are representatives of applications that users use. So, a security guarantee that does not compromise performance will seal the deal for Gollu.

Step 5 (The journey of problem-solving): Compared to other research areas, architecture research is mostly an empirical/experimental field of research. To propose an idea, Gollu should not prove things on pen and paper, instead Gollu has to demonstrate empirically that his idea works. Gollu started his journey and implemented the state-of-the-art idea on a simulator and found that the idea works for most of the attacks but fails if an attacker does something different. Gollu wrote the new attacker code and tested it on a real system and then mimic the same on a simulator. After many days/months of experiments/insights Gollu found a new way of handling the attack. Bingo !! But then he realized his idea is worse than the previous idea in terms of system performance. Performance usually is affected because of two keywords: latency and bandwidth. Gollu needs to find out where exactly the problem is and how to tackle it. Gollu started again, made changes to his ideas, ran more experiments to demonstrate the robustness of his idea and finally he found that his idea is similar to others in terms of performance but it thwarts all the attacks.

Step 6 (Time to communicate): Gollu started writing his findings and planned to communicate to ISCA 2021. After a few days of writing he found that his idea has a subtle flaw, and is not robust. So he went again to his simulation and experiment set up and started the Step 5 again.

A better way to solve a problem is to write, code, experiment, in a loop. This way Gollu will be in the closure of regular feedback as writing provides the best initial feedback. Paper writing at a 10K feet view involves the following: (i) this is my idea, (ii) how my idea works and why my idea is the best or better than the previous ideas. Gollu can use the tips mentioned here [16] for better writing/communicating his ideas.

Step 7: You know it. Gollu got his idea accepted in MICRO 2021. It got rejected in ISCA 2021 and Gollu worked on the reviews/comments, and submitted to MICRO 2021 :) Yippee moment :)

A lightweight flow of the steps mentioned above is here:

  1. https://medium.com/@__biswa/two-cents-on-computer-architecture-research-101-4f00957c312a
  2. https://medium.com/@__biswa/two-cents-on-computer-architecture-research-102-8ec0e127b25d
  3. https://iscaconf.org/
  4. https://www.microarch.org/
  5. https://hpca-conf.org/2021/
  6. https://asplos-conference.org/
  7. https://pact20.cc.gatech.edu/
  8. https://www.computer.org/csdl/journal/ca
  9. https://www.sigarch.org/blog/
  10. https://www.iscaconf.org/isca2020/program/
  11. https://www.iscaconf.org/isca2020/program/workshops.php
  12. https://www.gem5.org/
  13. https://github.com/ChampSim/ChampSim
  14. https://www.spec.org/cpu2017/
  15. https://www.cloudsuite.ch/
  16. https://www.cse.iitk.ac.in/users/biswap/tips.html

--

--

Biswabandan Panda
Biswabandan Panda

Written by Biswabandan Panda

Assistant Professor CSE-IITB, Computer Architecture/Systems && Computer Science Education

No responses yet