260 likes | 389 Views
Subroutines and Parameters. Call and return Parameter passing Return values Leaf subroutines Combining C and assembly modules. Separate Assembly. Separate Assembly Language Modules Command line parameters are passed like any others External Data. Example. include(macro_defs.m)
E N D
Subroutines and Parameters • Call and return • Parameter passing • Return values • Leaf subroutines • Combining C and assembly modules
Separate Assembly • Separate Assembly Language Modules • Command line parameters are passed like any others • External Data
Example include(macro_defs.m) ! Some symbolic constants for readability. define(argc, i0) define(argv, i1) local_vars var(sum, 4) fmt: .asciz "sum is %d\n" ! Read-only string ! for printf . . .
.align 4 begin st %g0, [%fp + sum] ! sum = 0; b test ! while test nop ! Delay slot loop: add %fp, sum, %o0 ! &sum call summer ld [%argv], %o1 ! ptr to 1st num test: subcc %argc, 1, %argc ! argc--; bg,a loop add %argv, 4, %argv ! argv++; . . .
. . . set fmt, %o0 call printf ! printf(fmt, sum); ld [%fp + sum], %o1 ! Delay slot end_fn
7. Instruction Encoding • All instructions 32 bits long • Three “formats”
01 displacement 30 Format 1 • The call instruction
00 rd op2 immediate 22 00 a cond op2 displacement 22 Format 2 • Branch and sethi
xx rd op3 rs1 0 asi rs2 xx rd op3 rs1 1 immediate 13 Format 3 • Arithmetic, Logical, Load, Store, etc.
Computer ArchitectureA Quantitative Approach (Based on Hennessy and Patterson, 3rd Ed.)
Fundamentals of Computer Design • Improvement in computer performance comes from two areas: • Technological improvements • Architectural improvements • Since the 1980’s development of new architectures has been encouraged by: • High-level languages • Standardised operating systems
Background • Since 1985 new architectures have led to startling performance improvements • Fig 1.1 (p. 3) • Microprocessors rule! • Workstations and PC’s • Minicomputers • Mainframes • Supercomputers
Computing Markets • Desktop machines • Price/performance is critical • Use newest technology • Servers • Availability, scalability, throughput • Embedded computers • Fastest growing market segment • Huge range of price/performance • Real-time requirements • Memory and power are limited
} Architecture The Task of a Computer Designer • Instruction Set Architecture • Organisation • Hardware • Must meet functional requirements: • Intended application area • Compatibility with existing software • Support required for operating system(s) • Standards (IEEE floating point, busses, networks, programming languages, etc.)
Task of a Designer (cont.) • Strive to minimise complexity and cost/performance ratio • Track future trends
Technology Trends • Processors: • transistor counts increase +/–55% each year • RAM: • rapid increase in density (but not speed) • Disks: • density increases at 100+% each year • Networks: • bandwidth increasing rapidly
Technology Trends (cont.) • Life span of a processor +/–5 years • Must plan for changes in technologies • May design for future technology! • Trends are continuous, but sometimes observed as discrete leaps • E.g. transistor density → on-chip caches
Power • A major headache! • Packing more transistors closer together greatly increases power consumption • 1970’s microprocessors: a few tenths of a watt • 2GHz P4: 100W
Cost/Price Trends • Critical for desktop and embedded markets • Time • “Learning curve” decreases price • Volume • Commodification • Competition in high volume markets decreases price
Cost Issues • Complex and rapidly changing area • Cost of integrated circuits • Significant impact on cost differentiation • Overall (desktop PC): • Cabinet: 6% • Processor and motherboard: 37% • Processor: 22% • I/O Devices: 37% • Software: 20%
Balancing Cost/Performance • No one answer • Supercomputers • Cost is of little concern • Some embedded areas (e.g. cell phones) • Cost is critical • Workstations and servers • Cost and performance must be balanced