1. Working with CPI for a specific program.A Program Consists of the following Instruction Mix for a specific program:
Type Specific Instructions Distribution Clock Cycles Per Instruction R-Format All (Add, etc) 37% 3 I-Format
LW All Others (SW, etc.)
22% 20%
5 4 J-Format All (Jmp, etc.) 21% 4 A) How many clock cycles will the program take if it consists of 150,900,000 instructions?2. Performance vs. Cost Shopping & Purchasing Evaluation
(.37*3+.22*5+.20*4+.21*4)*150900000 insts = 580,965,000 cycles
B) How long will it take with a 1500MHz clock?
580965000.00 cycles / (1500000000 cycles/s) = 0.38731 s
C) Assuming that the CPU's clock speed can be changed, what's the minimum speed the clock would need to be to complete the program in 0.3s?
580965000 cycles/X = .3s
X=580965000cycles/.3s = 1,936,550,000 cycles/s
1,937 MHz = 1.937 GHGo to your favorite Internet Hardware shopping site (I chose www.pricewatch.com), and get the prices of nine different size EIDE Hard Drives. Try to get a price on a drive that's close to each of the following sizes:20Gig, 25Gig, 30Gig, 40 Gig, 45 Gig, 60Gig, 75Gig, 80Gig, 100Gig, 120G, 160G, and 180G
(Find the cheapest price - ignore factors like rpms, cache, etc.)
- Find the Dollars/Gigabyte for each.
- Graph the Cost vs. Capacity. (Capacity on Horizontal Axis, Cost on Vertical Axis)
- Graph the Capacity vs. the Dollars/Gigabyte for each. (Again, Capacity on Horizontal Axis)
- Why do you think the graph is shaped the way it is?
(Does marketing have anything to do with it? What about Brand Name? What about Production/Material Costs?)
Most units have about the same cost for materials and manufacturing (I.e. the same base cost for most drives)
- What is your recommendation if I need 200Gb of space and I currently have room for 2 drives? Why?
- What is your recommendation if I have a budget of about $400 and whish to spend it all on Drive Capacity? Why?
- List your sources
3. Consumer Exercise: Examining Overclocking
- Look-up and, in your own words, explain the idea of "Overclocking".
(Provide a reference to your information)
Overclocking is the process of running a CPU at a higher clock speed than it is
- Is overclocking beneficial
It can allow one to get a higher performence for less cost. So, it can be beneficial as long as the chip is actually stable at teh speed that it is being run at.
4. Download and run "PerformanceTest" on at least two different computers (try to find computers with different processors).
a) Is this a synthetic or non-synthetic benchmark?
Synthetic
b) How did the computers choosen compare? Was one clearly better than the other? Are these the results you expected?
c) What components (types of performance) does this benchmark measure?
d) Write a breif summary of your findings
e) Do you think this is a useful benchmark? Why or Why Not?
5. Perform the following data-type conversions:
a) Hex Integers:
32-bit signed numbers: 0x000005C3, 0xFFFFE826b) Convert the following to 32-bit 2's compliment and write in HEX:
32-bit UNsigned numbers: 0x001005C3, 0xFFFFE826
Convert Each Decimal:
Signed:
0x000005C3 = 3*16^0+12*16^1+5*16^2 = 1475
0xFFFFE826 = (2's comp trick) -0x000017DA = -(10*16^0+13*16^1+7*16^2+1*16^3) = -6106
UnSigned:
0x001005C3 = 1*16^5+3*16^0+12*16^1+5*16^2 = 1050051
0xFFFFE826 = 6*16^0+2*16^1+8*16^2+14*16^3+15*16^4+15*16^5+15*16^6+15*16^7 = 4294961190
201545c) Convert the following decimal numbers into IEEE-754 and express in hexadecimal:
201545 / 2 = 100772 r 1From Bottom to Top: 11 0001 0011 0100 1001b
100772 / 2 = 50386 r 0
50386 / 2 = 25193 r 0
25193 / 2 = 12596 r 1
12596 / 2 = 6298 r 0
6298 / 2 = 3149 r 0
3149 / 2 = 1574 r 1
1574 / 2 = 787 r 0
787 / 2 = 393 r 1
393 / 2 = 196 r 1
196 / 2 = 98 r 0
98 / 2 = 49 r 0
49 / 2 = 24 r 1
24 / 2 = 12 r 0
12 / 2 = 6 r 0
6 / 2 = 3 r 0
3 / 2 = 1 r 1
1 / 2 = 0 r 1
= 0x00031349
-1
-1 = -0000 0000 0000 0000 0000 0000 0000 0001
2's compliment trick: = 1111 1111 1111 1111 1111 1111 1111 1111 b
= 0xFFFFFFFF
1,638.291015625d) Convert the following from IEEE-754 single precision floating point into deciamal:
1. Represent Integer Portion in Binary:-1244.65625
1638/2 = 819 r 0
819/2 = 409 r 1
409/2 = 204 r 1
204/2 = 102 r 0
102/2 = 51 r 0
51/2 = 25 r 1
25/2 = 12 r 1
12/2 = 6 r 0
6/2 = 3 r 0
3/2 = 1 r 1
1/2 = 0 r 1
= 11001100110b2. Represent Decimal Protion in binary:
.291015625*2 = 0.582031250
.582031250*2 = 1.164062500
.164062500*2 = 0.328125000
.328125000*2 = 0.656250000
.656250000*2 = 1.312500000
.312500000*2 = 0.625000000
.625000000*2 = 1.250000000
.250000000*2 = 0.500000000
.500000000*2 = 1.000000000
.010010101b = .291015625d3. Write Whold Number and convert to Sci Not.:
11001100110.010010101b
=1.1001100110010010101b * 2^104. Convert to Fields in IEEE Format:
Sign = Pos = 0
Stored Exp = Real Exp + 127 = 10+127 = 137 = 1000 1001b
Significand (remember to drop leading 1 from sci-not): 1001100110010010101b5. Put in format:
0 1000 1001 1001100110010010101b
Make significand field 23 bits: 0 1000 1001 100 1100 1100 1001 0101 0000b
6. Write in hex:
0100 0100 1100 1100 1100 1001 0101 0000b
0x44CCC950
1. Represent Integer Portion in Binary:
1244/2 = 622 r 0
622/2 = 311 r 0
311/2 = 155 r 1
155/2 = 77 r 1
77/2 = 38 r 1
38/2 = 19 r 0
19/2 = 9 r 1
9/2 = 4 r 1
4/2 = 2 r 0
2/2 = 1 r 0
1/2 = 0 r 1
1244d = 100 1101 1100b2. Represent Decimal Portion in Binary:
.65625*2 = 1.31250
.31250*2 = 0.62500
.62500*2 = 1.25000
.25000*2 = 0.50000
.50000*2 = 1.00000
.65625d = 0.10101b3. Write Whold Number and convert to Sci Not.:
10011011100.10101b
=1.001101110010101b*2^104. Convert to Fields in IEEE Format:
Sign = neg = 1
Stored Exp = Real Exp + 127 = 10+127 = 137 = 1000 1001b
Significand (remember to drop leading 1 from sci-not): 001101110010101b5. Put in format:
1 1000 1001 001101110010101b
Make significand field 23 bits: 1 1000 1001 00110111001010100000000b6. Write in hex:
1100 0100 1001 1011 1001 0101 0000 0000b
0xC49B9500
0x400A22FAe) The following sequence of hexadecimal numbers is also ASCII text, find it's meaning:
1. Convert to Binary: 0100 0000 0000 1010 0010 0010 1111 10100xC23BA45F
2. Seperate Fields:
Sign = 0
Stored Exponent = 1000 0000b =
Significand = 1.000 1010 0010 0010 1111 1010
000 1001 0010 0010 1111 1010
3. Assign Meanings:
Real Exp = Stored-127 = 128-127=1 (Multiply by 2^1 = 2)
Significand = 1+2^-4+2^-6+2^-10+2^-14+2^-16+2^-17+2^-18+2^-19+2^-20+2^-22
=1.07919239997863769531
4. Final Result = +(1.07919239997863769531*2)
= 2.15838479995727539062
1. Convert to binary: 1100 0010 0011 1011 1010 0100 0101 1111b
2. Seperate Fields:
Sign = 1 (Negative)
Stored Exponent=1000 0100b = 132d
Significand = 1.011 1011 1010 0100 0101 1111
011 1100 1010 0100 0101 1111b
3. Assign Meanings:
Real Exp = Stored-127 = 132-127 = 5 (Multiply by 2^5)
Significand = 1+2^-2+2^-3+2^-4+2^-6+2^-7+2^-8+2^-10+2^-13+2^-17+2^-19+2^-20+2^-21+2^-22+2^-23
= 1.465953707695007324214. Final Result = -(1.46595370769500732421*2^5)
=-46.91051864624023437472
f) The following sequence of hexadecimal numbers is ASCII text, find it's meaning:0x42696720 => "Big "
0x456e6469 => "Endi"
0x616e204c => "an L"
0x6f6f6b73 => "ooks"
0x206c696b => " lik"
0x65207468 => "e th"
0x69730000 => "is\0\0"Message: "Big Endian Looks like this
0x7474694c => "ttiL" => Sequential Byte Order = "Litt"
0x4520656c => "E el" => Sequential Byte Order = "le E"
0x6169646e => "aidn" => Sequential Byte Order = "ndia"
0x7942206e => "yB n" => Sequential Byte Order = "n By"
0x4f206574 => "O et" => Sequential Byte Order = "te O"
0x72656472 => "redr" => Sequential Byte Order = "rder"Message: "Little Endian Byte Order"