Bring out the difference between the following pairs of terms by clearly definin
ID: 3837382 • Letter: B
Question
Bring out the difference between the following pairs of terms by clearly defining what they refer to: Harvard versus Von Neumann Architecture Computer Architecture versus Computer Organization RISC versus CISC computers Compiler versus Assembler Desk/Laptops versus Embedded systems Write MIPS code to perform addition of two unsigned numbers in registers $t1 and $t2 and then verify whether the result has overflowed the 32-bit long destination register $t3. Explain the overflow logic with comments to elaborate upon each line of MIPs code. Indicate with a diagram how the same logic can be implemented in hardware. Explain with a flow chart and architecture diagram hardware efficient division algorithm may be performed Explain why massively parallel implementation of the division algorithm not possible? Describe the IEEE 754 standard for representing single precision and double precision formats, and illustrate it with the number (-0.875)_10. Describe with flow chart and architecture diagram how the floating point addition algorithm works.Explanation / Answer
1) a. Harvard versus Von Neumann Architecture:
Harvard architecture has Seperate data and instrustion buses, allowing transfers to be performed simultaneously on both buses. It is possible to have two seperate memory systems for a Harvard architecture. As long as data and instructions cab be fed in at the same time, then it doesn't matter whether it comes from a cache or memory. But there are problems with this. Compilers generally embed data(literal pools) within the code, and it is often also necessary to be able to write to the instruction memory space , for ex: in the case of self modifying code, or, if an ARM debugger is used , to set software breakpoints in memory, if there are two completely seperate, isolated memory systems, this is not possible. There must be some kind of bridge between the memory systems to allow this. Using a simple, unified memory system together with a Harvard architecture is highly inefficient. Unless it is possible to feed data into both busses at the same time, it might be better to use a Von neumann architecture.
At the higher clock speeds, catches are useful as the memory speed is proportionally slower. Harvard architectures tend to be targeted at higher performance systems, it might be better to use a von neumann architecture processor.
A Von Neumann architecture has only one bus which is used for both data transfers and instruction fetches, and therefore data transfers and instruction fetches must be scheduled- they cannot be performed at the same time. These are usually have a single unified cache, which stores both instructions and data. The proportion of each in the cache is variable, it would in possible to have seperate instruction and data catches, storing data, and instructions seperately. This probably would not be very useful as it would only be possible to ever access one cache at a time.
b) Computer Architecture Versus Computer Organization:
Computer Architecture:
Computer Architecture a bit higher level
Programeer view that is Programmer has to be aware of which instruction st used.
Logic(Instruction set, Addressing modes, Data types, Cache optimization)
What to do?? (Instruction set)
Computer Organization:
Often called microachitecture (low level)
Transparent from programmer (ex: A programmer doesn't worry much how addition is implemented in hardware)
Physical components (circuit design, Adders, Signals, peripherals)
How to do?? (Implementation of the architecture)
1)c. RISC versus CISC Computers:
CISC:
Emphasis on computer
Includes multi clock
complex instructions
memory-to-memory: "LOAD" and "STORE" incorporated in instructions
high cycles per second, small code sizes
Transistors used for storing complex instructions
Risc:
Emphasis on computer
Single-clock
reduced instruction only
Register-to-register: "LOAD" and "STORE" are independent instructions
Low cycles per second, large code sizes
Spends more transistors on memory registers
1.d)Compiler vs Assembler:
Compiler is a computer program that reads a program written in one language ang translates it into another language, while an assembler can be considered a special type of compiler which transltes only assembly language to machine code.
Compilers usually produce the machine executable code directly from a high level language, but assemblers produce an object code which might have to be linked using linker programs inorder to run on a machine. Because Assembly language has a one to one mapping with machine code, an assembler may be used for producing code that runs very efficiently for occasions in which performance is very important(for EX: graphics engines, embedded systems with limited hardware resources compared to a personal computer like microwaves, washing machines etc...)
1) e.Desk/Laptops vs Embedded Systems:
The difference between an embedded system and a general purpose computer system is one of purpose, and to a much lesser extent, design. while a general purpose system can be used for many things, an embedded system is only meant for one purpose.
The real-time systems are an important subset of embedded systems. Generally any real-time system is also an embedded system, as well as any RTOS is considered to be also an embedded OS.
Note: I don't have much time to complete all these questions, If you repost the questions , deffenitly I Will give my best, Thank you.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.