1 / 25

Subroutines and Parameters

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)

london
Télécharger la présentation

Subroutines and Parameters

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Subroutines and Parameters • Call and return • Parameter passing • Return values • Leaf subroutines • Combining C and assembly modules

  2. Separate Assembly • Separate Assembly Language Modules • Command line parameters are passed like any others   • External Data

  3. 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 . . .

  4. .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++; . . .

  5. . . . set fmt, %o0 call printf ! printf(fmt, sum); ld [%fp + sum], %o1 ! Delay slot end_fn

  6. 7. Instruction Encoding • All instructions 32 bits long • Three “formats”

  7. 01 displacement 30 Format 1 • The call instruction

  8. 00 rd op2 immediate 22 00 a cond op2 displacement 22 Format 2 • Branch and sethi

  9. xx rd op3 rs1 0 asi rs2 xx rd op3 rs1 1 immediate 13 Format 3 • Arithmetic, Logical, Load, Store, etc.

  10. Computer ArchitectureA Quantitative Approach (Based on Hennessy and Patterson, 3rd Ed.)

  11. 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

  12. 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

  13. 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

  14. } 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.)

  15. Task of a Designer (cont.) • Strive to minimise complexity and cost/performance ratio • Track future trends

  16. 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

  17. 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

  18. 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

  19. Cost/Price Trends • Critical for desktop and embedded markets • Time • “Learning curve” decreases price • Volume • Commodification • Competition in high volume markets decreases price

  20. 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%

  21. 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

More Related