Representative System (Part 2) - Computer Hardware
We are continuing our discussion of a representative system and we're going to observe how a simple program is executed. In order to do this, we're going to need to utilize the two major component of a computer system. The first one here is computer hardware and then we're going to need computer software. The software that we'll be using is going to be that very simple program that we just looked at where we had an input, an output, and a jump command.
Before we do that we're going to need to discuss a bit about our hardware configuration here. We've added two external chips to serve as our IO part, now IO is for input/output. A port is simply a method for data to be either inputted or outputted out of a PC and a port is the place where it either goes in or goes out. The input device is simply an eight-bit buffer. Here we have this eight-bit buffer that's going to serve as our input device. The thing that will enable this we need to have a high on EN1 and a low on EN2.
When that occurs then the inputs, which we have the simple switches here, will be connected to the data bus. When we have this, remember this is from the address bus and the control bus, when those controls are set then the microprocessors says okay, feed me input and then these inputs will feed through the system to the microprocessor. These are tristate buffers so in the event that you don't have the high and the low here then this data will not interfere. It will just be high NP's and it will not interfere with other things that are going on in the bus. The output part up here is an eight-bit latch, or register, whenever the two enables are active low in this case; the input data bus is latched to the output. If we have a low here and a low here then the data from the microprocessor is latched to the output and we have an output feeding to our output port. We have two LED's here that would indicate that we have an output. Again, the output would only be enabled if we have a low on EN1 and a low on EN2.
Over here we have an oscillator and this provides the clock pulse necessary for the microprocessor to operate because the clock has to have a speed that it operates at. This will come from an oscillator of some type, usually, this is a crystal and very typically the crystal will start at a low frequency. It will be multiplied several times to provide the specific clock frequency that the microprocessor is designed to operate. This could be a few hundred megahertz to thousands of megahertz and thousands of megahertz would be talking about gigahertz possibly. Many microprocessors multiply the clock internally for high-speed operation. Finally, we have the reset input and this is the reset right down here. We shall assume that our representative microprocessor goes to … that's going to be zero, zero, zero, h, and that's for hex when the reset pin is pulled low. This is to say when we activate reset we will force the program counter to 0, 0, 0, h and then it's going to begin to execute the commands, load the start at 0, 0, 0, h.
We also have a ROM, right here. This is an abbreviation for read-only memory. This type of memory device retains its memory even when no power is supplied. For this example, we will assume our program is stored in ROM. The microprocessor cannot store new data to a ROM, hence the name read-only. Here we have a ROM chip and this is typically when a PC starts up it will go to a very specific address. It's usually not this one, by the way, we're using this one for our purposes, but it will go to a very specific address and begin reading information from ROM. This is fed into the microprocessor and the microprocessor will execute the, for example, the power on self-test that's not an issue for this course, but it will start the computer and when it finishes this post program it will call the operating system and then the operating system starts up and we will have a PC operate.
In the next section, we're going to talk … we mainly introduce the hardware in this section. The next section we're going to be introducing how is it that this software program can interact with this hardware.