Upload
josiang
View
213
Download
0
Embed Size (px)
DESCRIPTION
computer architecture
Citation preview
Computer Architecture (ICE3003-42)
Homework #1
2013312707
Lee Suin
Explain the terms following.
- CISC vs RISC
CISC(Complex Instruction Set Computing) is a CPU design where single instructions can
execute several operations like memory storing, arithmetic operation. The compact instructions
result smaller program sizes and fewer main memory accesses. And it provides faster execution
because CISC reduced the number of main memory accessing which speed is slow. However, the
instructions are too complicated; the processing ability of CPU has a limit of increasing.
RISC(Reduced Instruction Set Computing) is based on the simplified instruct set, opposed to
CISC. It provides higher performance than CISC. Only about 10% of instructions of CISC remained
in RISC. Also the instructions are so simple, cost and length become regular. So they could easily
be pipelined, in order to achieve a single clock throughput at high frequencies. It has scaled up in
performance quickly and cheaply.
Below are the differences of RISC and CISC.
- Application Program Interface vs Application Binary Interface
ABI(Application Binary Interface) is the combination of the basic instruction set and the
operating system interface. It defines a standard for binary portability across computers. ABI
provides the interface between two program modules, one of which is often a library or operating
system, at the level of machine code, based on binary interface. It determines details like how
functions are called and which binary format information should be passed, or in case of a system
call, it passes to the OS. So ABI is usually the job of compiler.
API(Application Program Interface), however, defines interface between program components
at the source code level. API is a set of routines, protocols, and tools for building software
applications. API can ease the work using GUI components. It is able to make program building
blocks easier.
Below chart is the difference between API and ABI in the sight of Linux kernel system.
- Memory hierarchy
There are various types of memories: registers on CPU, Caches, Main memory, secondary
storage devices like network storage, and hard discs. These memories are related to each other.
The register on CPU is the smallest and fastest. Caches like L1, L2, L3 cache are followed by
register, HDD and SSD have huge capacity so slower than CPU and caches. To access data, each
memory level interacts with each other, and we call this process as caching. Memory system is
organized as a hierarchy in terms of speed, size, and cost. Below diagram shows the memory
hierarchy.
- DRAM vs SRAM
Random-access memory (RAM) means a form of computer data storage which allows data
items to be read and written in the similar amount of time.
DRAM(Dynamic Random Excess Memory) is a type of random-access memory which stores
each bit of data in a separate capacitor built as an integrated circuit. The capacitor can be
charged or discharged, and this represents bit of 0 and 1. Transistor usually leak a small amount,
the capacitors will slowly discharge. So the information eventually fades if the capacitor charge is
not refreshed periodically. This characteristic is the source of “dynamic” memory. Because of losing
the data when power is removed, DRAM is volatile memory. The advantage of DRAM is the
simplicity of structure. It needs only 1 transistor and a capacitor per bit.
SRAM is an abbreviation of Static Random Access Memory. SRAM is also an integrated circuit
memory like DRAM, but it is much faster than DRAM. And SRAM does not need refreshing unlike
DRAM. The term “static” comes from this characteristic. SRAM is more expensive and less dense
than DRAM. SRAM needs 4 or 6 transitions per bit. Therefor SRAM is not used for high capacity,
low cost applications such as the main memory in PCs.
Below chart is comparing about SRAM and DRAM.
- Instruction cycle
Instruction cycle is the basic operation cycle of a computer. A computer receives a program
instruction from its memory, and determines the action appropriate to the given instruction, and
carries out those actions. This cycle is repeated continuously by the CPU.
In the simple CPU, the instruction cycle is executed sequentially. Each instruction is completely
processed after previous instruction is done. Nowadays, most modern CPUs process the
instructions in parallel, as an instruction pipeline. Next instruction starts when current instruction
is being processed when the cycle is possible to break up into separate steps.
- Cloud computing
Cloud computing is a computing technology based on groups of utilities. Cloud computing
involves software networks that can centralize data storage and online access to resources. Also it
involves deploying groups of remote servers with various deployment models, such as Hybrid
Clouds, Private Cloud, Community Cloud, Public Cloud. Cloud computing needs broad network
access, and because of its definition and characteristics, they have resource pooling.
Since cloud computing centralize huge amount of data, security can improve with increased
security-focused techniques. But it also has concerns if it lose the control over data, the lack of
security for stored kernels.
Cost reductions is one of characteristics of cloud computing. A public-cloud delivery model
converts capital expenditure to operational expenditure. This lowers barriers to entry; it does not
need to be purchased for one-time or infrequent intensive computing tasks.
There are lots of characteristics of cloud computing, but the main thing is cloud computing is
trying and making users to take benefit from cluster of technologies without the need for deep
knowledge.
- Programming language structures
Structured programming is a programming paradigm aimed at improving the clarity, quality,
and development time of a computer program. Jumping codes such as goto statement make the
program dangerous and complex; however, structured programming uses subroutines, block
structures, for and while loops extensively.
References
- http://en.wikipedia.org/wiki/Static_random-access_memory
- http://en.wikipedia.org/wiki/Dynamic_random-access_memory
- http://en.wikipedia.org/wiki/Random-access_memory
- http://en.wikipedia.org/wiki/Complex_instruction_set_computing
- http://en.wikipedia.org/wiki/Reduced_instruction_set_computing
- http://en.wikipedia.org/wiki/Processor_design
- http://en.wikipedia.org/wiki/Instruction_cycle
- http://en.wikipedia.org/wiki/Cloud_computing
- http://cse1.net/recaps/4-memory.html
- http://en.wikipedia.org/wiki/Structured_programming#Structured_programming_languages
- http://en.wikipedia.org/wiki/Application_binary_interface
- http://en.wikipedia.org/wiki/Application_programming_interface
- http://csarassignment.files.wordpress.com/2013/05/risc-vs-cisc.png
- David A. Patterson, et al., Computer Organization And Design: The Hardware and Software
Interface, 4th ed.