I am a COMPUTER ARCHITECT, which means I design computers. I was trained at a great school (UW-Madison), and I worked in industry (Intel) before I became a professor (University of Michigan). Despite these rarefied experiences, I first came to know computer architecture in the KITCHEN, working for 4 years as a COOK. Let me explain.
As a cook, you are the control logic of a complex multi-issue machine, which operates with many of the optimizations found in today’s CPUs:
IN-ORDER FETCH: The meal orders come in-order from the wait staff, and this order must be preserved.
OUT-OF-ORDER ISSUE: With a big menu, the latency to cook items will vary greatly, from fast salads to medium-latency burgers to long-latency steaks. Cooks will scan the upcoming orders and “issue” long latency items first, medium later, and short last, to make sure all items finish at roughly the same time.
IN-ORDER RETIREMENT: Importantly, the meal orders have to finish IN-ORDER. Wait staff will get very annoyed if any out-of-order completion occurs—no one wants to see the table that sat down after them get their food first! BTW, Tapas restaurants break this rule, which greatly improves the efficiency of their kitchens. What is the computer architecture dual to the tapas restaurant?
PREFETCH: Occasionally, someone from the wait staff will run into the kitchen and yell “BUS!” (typically with the same vigor as someone running into a beach bar and yelling “TSUNAMI!”), which means 50+ additional orders are coming to your line. When this happens, you turn on all the stoves and steak burners and start frying staples, etc.
CACHING and SPECULATION: Many of the “specials” for the night are pre-cooked and kept in an oven (cache). This is optimizing the common case, since these popular meals take seconds to make. Often, if there are specials left over at the end of the night (mispeculation), they are donated to local food shelters.
NON-DETERMINISTIC LATENCY: Efficient architectures try to avoid all non-deterministic latencies, since they stymie schedulers and gum up the works. Kitchens operate the same way: everything is prepped to give deterministic cook times. Once, I put a steak on a grill shared with the short-order cook window. Later, when I checked on my steak, it was gone… I confronted the short-order cook, and he said, “Do you want to fight me for it?” A non-deterministic latency made my line a mess that night!
PRECISE INTERRUPTS: When the shift changes, the incoming cook will negotiate which order to transition on. The working cook will finish all their orders, after which the new cook takes over. This is called a precise interrupt, and it is similar to how out-of-order processors effectuate a process switch.
POWER GATING: Kitchens are HOT. If stoves are not needed, they are powered down!
Besides architecture training, working as a cook is a great way to start a career. All later jobs you will have will be MUCH EASIER and LESS DANGEROUS!
About the Author: Todd Austin is the S. Jack Hu Collegiate Professor of Computer Science and Engineering at the University of Michigan. His research focuses on computer architecture, hardware security, and dependable systems, with contributions spanning secure processors, memory systems, and AI hardware. He is a Fellow of the IEEE, and his work has been widely recognized for advancing the performance, security, and reliability of modern computing systems. To see more of Todd’s content, please follow him on LinkedIn: https://www.linkedin.com/in/prof-todd-austin/
Disclaimer: These posts are written by individual contributors to share their thoughts on the Computer Architecture Today blog for the benefit of the community. Any views or opinions represented in this blog are personal, belong solely to the blog author and do not represent those of ACM SIGARCH or its parent organization, ACM.