Title: Subroutines and Parameters
1(No Transcript)
2Subroutines and Parameters
- Call and return
- Parameter passing
- Return values
- Leaf subroutines
- Combining C and assembly modules
3Separate Assembly
- Separate Assembly Language Modules
- Command line parameters are passed like any
others  - External Data
4Example
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 . . .
5 .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 . . .
6 . . . set fmt, o0
call printf ! printf(fmt, sum)
ld fp sum, o1 ! Delay slot
end_fn
7(No Transcript)
87. Instruction Encoding
- All instructions 32 bits long
- Three formats
9Format 1
10Format 2
11Format 3
- Arithmetic, Logical, Load, Store, etc.
12(No Transcript)
13Computer ArchitectureA Quantitative Approach
- (Based on Hennessy and Patterson, 3rd Ed.)
14Fundamentals of Computer Design
- Improvement in computer performance comes from
two areas - Technological improvements
- Architectural improvements
- Since the 1980s development of new architectures
has been encouraged by - High-level languages
- Standardised operating systems
15Background
- Since 1985 new architectures have led to
startling performance improvements - Fig 1.1 (p. 3)
- Microprocessors rule!
- Workstations and PCs
- Minicomputers
- Mainframes
- Supercomputers
16Computing 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
17The 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.)
18Task of a Designer (cont.)
- Strive to minimise complexity and
cost/performance ratio - Track future trends
19Technology 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
20Technology 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
21Power
- A major headache!
- Packing more transistors closer together greatly
increases power consumption - 1970s microprocessors a few tenths of a watt
- 2GHz P4 100W
22Cost/Price Trends
- Critical for desktop and embedded markets
- Time
- Learning curve decreases price
- Volume
- Commodification
- Competition in high volume markets decreases price
23Cost 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
24Balancing 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
25(No Transcript)