Lab 09 - The house that fetch/execute built

The advent of the integrated circuit fundamentally changed how we interact with our surroundings. The ability to make computations on an ever-more microscopic scale has led to pocketable devices more powerful than the computers that powered the moon landing. Even so, those devices still use a fundamental structure - the fetch/execute cycle, engine of computation. Even some recent technology advancements rely on that same computational engine.

To consider:

Large tasks, simple instructions

In this ninth lab, you'll look at new technology, and more closely examine the fetch/execute cycle. As you explore, review your answers from the To consider: section above. Have you changed your mind about any of them?

Learning more

  1. Let's start with a look at Google Glass:

    This video was made before Google Glass was available as a product. It shows the imagined implementation of a product that would bring web-browser-like functionality to a wearable display platform integrated into a pair of glasses. Now you can buy a variety of models available publicly from the Google Glass website. Recently, some Google Glass wearers have been subjects of news stories, including negative publicity around how wearers/users take advantage of the product's video capturing abilities.

    • Would you wear something like this? Why or why not?
    • Think about which groups of people might react negatively to use of this specific technology, and why. How could you change Google Glass to help them have a more positive reaction?

  2. Many e-readers (a number of Amazon's Kindle series, as well as e-readers from Sony, Kobo, and Nook) use e-ink technology, a proprietary e-paper technology from the E Ink Corporation. E-ink, or electrophoretic ink, uses tiny charged capsules to display text and images.

    The following closeup image of those capsules is from Wikimedia Commons user HorsePunchKid:

    Closeup of e-ink capsules on a Kindle

    E-ink has been available in products available for purchase for some time, but it is still seen by many as continuing to be revolutionary.

    • Why do you think this technology might be thought of as revolutionary? Can you name one way the world has chamged because this technology exists? Explain.
    • Take a closer look at the Wikipedia entry for e-ink. How do you think the e-reader software uses the fetch/execute cycle to interact with the hardware? Give one example.

  3. From prosthetic limbs that can be controlled by thoughts, to retinal and cochlear implants that restore impaired vision, to robotic legs that can help paralyzed ones move, technology can also interact with and support the needs of human bodies.

    • What other technologies can you find that directly interact with human bodies?
    • Do you think it's a good idea to develop these technologies? What are some concerns you might have?
    • These technologies are very expensive to develop. Do you think everybody who needs them should have access to them? Why or why not?

  4. Let's move on now to a review of the fetch/execute cycle. The cycle's five steps are:

    • Instruction Fetch (IF). The controller, or ALU - Arithmetic Logic Unit - goes to the instruction's location in memory and retrieves it.
    • Instruction Decode (ID). The ALU reads the instruction and identifies actions to take and memory locations to act on.
    • Data Fetch (DF). The ALU goes to the location in memory to be acted on, and gets that data.
    • Instruction Execution (EX). The ALU performs the instruction, such as adding the contents of two memory locations, or testing to see if a specific bit has a value of zero.
    • Result Return (RR). The ALU returns the result of the instruction to the destination address in memory.

    The cycle repeats until the controller is given instructions to stop. These five simple steps, along with a very small number of instructions, are the foundation of practically every modern digital technology.

    Try IT: Creating a fetch/execute cycle of your own
    It can be useful to use the fetch/execute cycle to break down complex tasks into more manageable steps. Imagine you have a student who is visiting you from another country. He or she does not speak your language, and you do not understand hers or his. You are trying to teach this student how to do something he or she has never done before - let's use making a pizza as an example. While the average student will learn more quickly than a computer, and will be able to guess at next steps when computers can't, assume that following the fetch/execute cycle is the best way to show the student how to complete the complex task. You can get as detailed as you like, but you may find that you want to take a higher-level approach than a pizza making computer might need.

    • As you begin, consider how each step in the pizza making process relates to a step in the fetch/execute cycle. For example, how would you model applying pizza sauce to the pizza dough? What is the data? What is the location in memory?
    • As you work through the steps, are you finding that you need to go back and be more specific in your instructions? Or are you getting the right precision the first time?
    • Once you have a few cycles completed, ask a friend to try to follow them. How did you do? Were there any places where your friend was unsure, or did something you didn't expect?

Moving on

Sometimes it's hard to believe that the simple instructions and five steps of the fetch/execute cycle could have enabled so much innovation. You may have grown up with smart phones and e-readers and bionic legs, but those products were not possible even fifty years ago. Consider what technology was available to you as in 1962, without the integrated circuit to miniaturize the machines that managed the fetch/execute cycles. The Computer History Museum has a good example of what a computer workroom looked like that year. If things have changed so quickly in the fifty-plus years since, where do you are we headed from here?

Consider reading howstuffworks.com's Introduction to Quantum Computing. Quantum computers don't use bits, with their binary states of 1 and 0, or presence and absence. Instead they use qubits, which can have a state of both 0 and 1, allowing for computation (or instructions) to take place on both states at the same time. What do you think the processing cycle will look like when quantum computers replace the binary-based digital ones we know today?