\(5.1.\)Von Neumman Architect

1.Stored program computer

  • Memory: It's used to do two things:

    1. Store all the kind of the data that we're going to use in the computation
    2. Hold the program as a sequence of instructions that are going to be executed one by one.
  • CPU: Carry out these instructions, run them and control everything.

  The detailed CPU instrcture is as below:

  • ALU: A piece of hardware that is able to add numbers and subtract numbers maybe do logical operations and so on.
  • A bunch of Register: Store data that we're going to use for the rest of computation.

2.Information flow

  \(a.\)Intro

  • The memory itself has two part: the part that stores the program and the part that stores the data.
  • We can consider these things as a flow of data.

  There are three types of information passed around the system:

  1. Data: When we do addition, for example, the number needs to be moved from the data in memory to the other systematic logic unit that is going to do something with them, and send them back.
  2. Address: The data we need to access now lies in address.
  3. Control: It tells each part of the system what to do at this particular point.
  • Data bus, address bus and control bus.

  \(b.\)ALU info flow

  • Data bus: ALU needs to have some information from the data bus, and then feeds the output value back into the data bus. It's going to go to other places that also connect to the data bus, such as memory.

  • Control bus: ALU needs to know what kind of operation it dose every time, so it has to get information from the control bus specifying the type of operation it does. On the other hand, according to the results of the operations it did, it should be able to tell other part of the system what to do.

    • For example, if it sees that a certain number is greater than 0, it can control the jump to the next instruction.

  \(c.\)Registers

  • Data bus: The same as ALU.

  • Address bus: The way we achieve indirect addressing into a RAM or ROM is putting number address into a register that specifies where we want to access. So we are going to have registers control a connection to the address bus which controls memories, and feeds into memory.

    • We'll have registers either exclusively or both address and data registers.

  \(d.\)Memory

  • The memory needs to specify what address we are going to work with.

  • Once we actually work with a certain address, we are going to be needed to be able to read it or write into it, get information from it or put information into it. This means we need to be connected to data bus.

    • Data memory gets an address of a data piece that needs to be operated on.

    • Program memory requires us to put the address of the next program instruction into the memory. We need to be able to put an address into the program memory, and get instructions from there.

      • The instructions we get from the program memory may have data as well. But it's of great importance that they tell the rest of the system what to do.
      • We need to be able to take information from the next instruction from the data output of the program memory and feed it into the control bus.