Computer Architecture

Computer Architecture

In today's age we can find computers that range in size from a building to a one inch by one inch chip.  We also find several different styles and configurations.  There are different manufacturers and designers.  However all these different systems have most if not all of the same internal components and at the base of them they all work in a similar way.

When a program is written in any high level language it needs to be compiled into Machine Language.  Machine Language is the actual code a CPU understands.  Every CPU architecture has different commands available to perform.  The computer itself can not understand writing or words as we read them.  For this reason each Machine Language Command has an associated binary value.  This binary numerical code is referred to as an operation code or Op-Code for short.  The assignment asked to discuss the term Control Code but there is no reference to this code anywhere in our books nor did I fond it through web searches.  Considering the structure of the required paper and the required final result I assumed we were supposed to consider Control Codes to be Op-Codes.  Op-Codes are simple instructions that tells the CPU what to perform.  The Op-codes instruct the system to preform duties like read or write a value to memory or an output device and to perform mathematical operations.  Since the Op-Codes vary in size based on the system architecture, when we read the Op-code output (say from a memory dump) the code is portrayed in hexadecimal fashion.  In this case every four binary digits of the Op-code is represented by a single hexadecimal digit.  This saves space and makes it a little easier for humans to read.

A demultiplexer accepts multiple signals and outputs a single signal or signals based on the combination of the inputs.  A computer uses a demultiplexer to decode the binary versions of the Opcode into particular functions. This demultiplexer is called the Instruction Decoder.  The Instruction decoder receives the binary Op-codes on the data bus and translates those into a specific function.

An important part of the CPU is the Control Unit.  The Control Unit directs the operation of the memory, ALU and input/output devices.  The Control Unit works hand in hand with the Instruction Decoder to direct all the other devices on how to operate.  The Control Unit will use the Op-code from the decoder and the operands to generate a sequence of signals that control other parts of the CPU and memory(The MIPS architecture, n.d.).  The use and design of the Control Unit varies from CPU to

CPU.          

Almost everyone has heard of the term CPU or Central Processing Unit.  What most don't know is that the CPU is actually composed of several smaller components.  The arguably key component in the CPU is a device called and ALU short for Arithmetic Logic Unit.  The primary responsibility of the ALU is to perform specific mathematical procedures on numbers represented in binary form and output the final result.  The typical ALU will have inputs for two binary numbers, the number of inputs is determined by the architecture of the system.  For this paper we will assume all the components refer to a 8-bit system.  The ALU will have eight input lines for one number and eight input lines for a second.  Another single optional input can be found for adding a single one to the procedure.  This can be used when having to change one number to two's compliment.  You will also find enough input lines as control lines, the binary value placed on these control lines will determine what function will be performed on the two input number values.  Each function will pass the binary numbers through several and different logic gates and finally produce a result which will be output.  The ALU also has the job of informing the system if certain condition occurred during the last function.  These conditions are portrayed by setting a flag.  Different ALU's have different flags.

Computer Architecture

Flags are basically changes on a  specific output.  For example almost every ALU has what is called an “Overflow” flag.  This happens when the output number is greater then the architecture of the system will allow.  In our 8-bit system we can have any number to a maximum of 11111111b (255 decimal or FF in hexadecimal).   If the result of the specified operation is a  number greater then 255 then an output pin will show a voltage or be considered high, this pin is considered the “Overflow” flag.  Some of the other flags that might be present are Zero for when the result works out to a null or zero value, Negative to tell the system the resulted number is a negative value.  There are several others possible and are interdependent on the specific ALU and needs.  The over all concept to remember is the ALU uses logic gate design to perform mathematical and logic operations on one or more operands to produce a result that can be used in further operations.

Computers use several small storage devices called registers to store a single element of data for different purposes.  One of these registers is called the Program Counter.  The Program Counter has one major job; to store the address to the next Op-code.  During each clock count the address will increase by one.  The Counter has multiple other available operations.  The Program counter can be reset to the first address and in the case of the jump instructions the address can be manually set.  On each clock sequence the address being stored is sent to the decoder and either the address is increased by one, the CPU resets the Counter to the first instruction or the CPU will manually set the next address that will need to be processed.

Every computer system has a Clock.  The Clock emits signal pulses that control the speed of the data in the system.  Every pulse or rise will cause each system to cause a single operation.  On each clock pulse a single instruction will be executed.  The clock speed is measured in hertz.  Central Processing unit's of these days are in the range between 1mhz and 3mhz.  This means between 1 and 3 million instructions can be executed per second.  In some CPU's architecture designs have been made in which the instruction can be executed on the rise and fall of the clock pulse, effectively doubling the processing speed.

Computers basically run in a three step procedure commonly referred to as “Fetch, Decode, Execute”.  The CPU fetches the instruction, the decoder decodes the instructions into signals and the rest of the system executes the code and the sequence is repeated.   All the above components all work together to run the complex systems and programs we build today.  Is it not funny how from day one of Computer Science we are taught that the purpose of a computer and a computer program is to take large problems and separate them into smaller ones.  If you look how all these components work together the large problems are separated into small signals running through chips designed based on the construction of simple logical gates.

Powered by TCPDF (www.tcpdf.org)

Want latest solution of this assignment