In: Computer Science
As part of your final project for this course, you researched different types of processors and instruction sets. In addition, you created your own computer architecture including processor architecture, memory structure and algorithms, and an instruction set. You wrote a final report explaining your computer architecture and programming language characteristics and parameters. The project is an opportunity for you to synthesize the concepts you are learning in this course. Up to this point in the course, you communicated within your individual project group. There was no communication among different groups. In this activity, the goal is to communicate among different groups to you will share your project details, explore the group work dynamic within teams, and integrate knowledge gained from other groups. Explain your group project computer architecture and its proposed structure. Each team member should explain a part of the project. What are the unique points of your design? Discuss the similarities and differences between your design and that of other groups. Discuss challenges you encountered, useful online sources found and utilized. Discuss how you coordinated team work and distribute tasks.
1). ANSWER :
GIVENTHAT :
Basic Computer Instructions :
The basic computer has 16 bit instruction register (IR) which can denote either memory reference or register reference or input-output instruction.
Example –
IR register contains = 0001XXXXXXXXXXXX, i.e. ADD after fetching
and decoding of instruction we find out that it is a memory
reference instruction for ADD operation.
Hence, DR <- M[AR] AC <- AC+ DR, SC <- 0
2 Register Reference – These instructions perform operations on registers rather than memory addresses. The IR(14-12) is 111 (differentiates it from memory reference) and IR(15) is 0 (differentiates it from input/output instructions). The rest 12 bits specify register operation.
Example –
IR register contains = 0111001000000000, i.e. CMA after fetch and
decode cycle we find out that it is a register reference
instruction for complement accumulator.
Hence, AC <- ~AC
3 Input/Output – These instructions are for communication between computer and outside environment. The IR(14-12) is 111 (differentiates it from memory reference) and IR(15) is 1 (differentiates it from register reference instructions). The rest 12 bits specify I/O operation.
Example –
IR register contains = 1111100000000000, i.e. INP after fetch and
decode cycle we find out that it is an input/output instruction for
inputing character. Hence, INPUT character from peripheral
device.
The set of instructions incorporated in16 bit IR register are:
Addressing Modes
Addressing Modes– The term addressing modes refers to the way in which the operand of an instruction is specified. The addressing mode specifies a rule for interpreting or modifying the address field of the instruction before the operand is actually executed.
Computer Organization | Von Neumann architecture
Historically there have been 2 types of Computers:
The modern computers are based on a stored-program concept introduced by John Von Neumann. In this stored-program concept, programs and data are stored in a separate storage unit called memories and are treated the same. This novel idea meant that a computer built with this architecture would be much easier to reprogram.
Memory structure and algorithem:
Memory is the best essential element of a computer because computer can’t perform simple tasks. Computer memory is of two basic type – Primary memory / Volatile memory and Secondary memory / non-volatile memory. Random Access Memory (RAM) is volatile memory and Read Only Memory (ROM) is non-volatile memory
1. Random Access Memory (RAM) –
2. Read Only Memory (ROM) –
Types of Read Only Memory (ROM) –
Although a memory hierarchy adds to the complexity of a memory system, it does not necessarily add to the latency for any particular request. There are efficient hardware algorithms for the logic that looks up addresses to see if items are present in a memory and to help implement replacement policies, and in most cases these circuits can work in parallel with other circuits so the total time spent in the fetch-decode-execute cycle is not lengthened.
Processor architecture :
The main components in a typical computer system are the processor, memory, input/output devices, and the communication channels that connect them.
The processor is the workhorse of the system; it is the component that executes a program by performing arithmetic and logical operations on data. It is the only component that creates new information by combining or modifying current information. In a typical system there will be only one processor, known at the central processing unit, or CPU. Modern high performance systems, for example vector processors and parallel processors, often have more than one processor. Systems with only one processor are serial processors, or, especially among computational scientists, scalar processors.
The operation of a processor is characterized by a fetch-decode-execute cycle. In the first phase of the cycle, the processor fetches an instruction from memory. The address of the instruction to fetch is stored in an internal register named the program counter, or PC. As the processor is waiting for the memory to respond with the instruction, it increments the PC. This means the fetch phase of the next cycle will fetch the instruction in the next sequential location in memory (unless the PC is modified by a later phase of the cycle).
In the decode phase the processor stores the information returned by the memory in another internal register, known as the instruction register, or IR. The IR now holds a single machine instruction, encoded as a binary number. The processor decodes the value in the IR in order to figure out which operations to perform in the next stage.
In the execution stage the processor actually carries out the instruction. This step often requires further memory operations; for example, the instruction may direct the processor to fetch two operands from memory, add them, and store the result in a third location (the addresses of the operands and the result are also encoded as part of the instruction). At the end of this phase the machine starts the cycle over again by entering the fetch phase for the next instruction.
Instructions can be classified as one of three major types: arithmetic/logic, data transfer, and control. Arithmetic and logic instructions apply primitive functions of one or two arguments, for example addition, multiplication, or logical AND. In some machines the arguments are fetched from main memory and the result is returned to main memory, but more often the operands are all in registers inside the CPU. Most machines have a set of general purpose registers that can be used for holding such operands. For example the HP-PA processor in Hewlett-Packard workstations has 32 such registers, each of which holds a single number.
Computer architecture and programming language characteristics and parameters :
1) Clarity, Simplicity And Unity: A Programming language
provides both a conceptual framework for Algorithm planning and
means of expressing them. It should provide a clear, simple and
unified set of concepts that can be used as primitives in
developing algorithms.
• It has minimum number of different concepts
• with Rules for their combina-tion being
• simple and regular.
2) Orthogonality: It is one of the most important feature of PL
orthogonality is the property that means " Changing A does not
change B".
If I take Real world example of an orthogonal system Would be a
radio, where changing the station does not change the volume and
vice versa.
When the features of a language are orthogonal, language is easier
to learn and programs are easier to write because only few
exceptions and special cases to be remembered.
3) Support for Abstraction:- There is always found that a substantial gap remaining between the abstract data structure and operations that characterize the solution to a problem and their particular data structure and operations built into a language.
4) Programming Environment: An appropriate programming environment adds an extra utility and make language to be implemented easily like The availability of- Reliable- Efficient - Well documentation
5) Ease of program verification:- Reusability:
The reusability of program written in a language is always a
central concern. A program is checked by various testing technique
like Formal verification method Desk checking Input output test
checking.
We verify the program by many more techniques. A language that
makes program verification difficult maybe far more troublesome to
use. Simplicity of semantic and syntactic structure is a primary
aspect that tends to simplify program verification.
6) portability of programs: Programming language should be portable means it should be easy to transfer a program from which they are developed to the other computer.