代做EECE7352 Computer Architecture Homework 2帮做Python语言程序

Computer Architecture

EECE7352

Homework 2:

For part A of this homework, you will need to use the BRISC-V simulator.  The simulator is located online at:

https://ascslab.org/research/briscv/simulator/simulator.html

For this lab we will only be using the 32-bit base RISC-V ISA (RV32I). This base ISA supports simple integer operations, including load, store, branch and jump instructions. Instructions for floating point and integer multiply may not be included in RV32I.  Read the RISC-V specification on Canvas to see which instructions are available in the RV32I base instruction set.  Note that the instruction sheet and RISC- V specification both include instructions for extensions, in addition to the base RV32I instructions. Do not use instructions from any extensions, they may not be supported by the simulator we are using.

There are two example programs on Canvas (the assembly code is already provided with the simulator). We provide source code (gcd.c and fibonacci.c) and assembly code (gcd.s and fibonacci.s) in order to show you example programs in RISC-V assembly.  These programs also provide you with examples of the calling convention used by RISC-V. These programs are provided here for your reference.

Pay attention to three things in the assembly code:

• How is the stack pointer managed?

• How is the frame pointer (s0) managed?

• How are function arguments and return values passed?

To test your assembly code, load it in the BRISC-V simulator.  A manual with directions for the simulator can be found here:

https://ascslab.org/research/briscv/simulator/manual.html

Part A:  (40 points)

1)  Write a RISC-V assembly program to return the largest of three integer

values.  The two input values should be initialized in main().  The main() function should call the largest(int x, int y, int z) function, passing three integer values as arguments. The largest function should return the largest of the three integer values.  If there are two equal-valued inputs that are largest, then return a value of zero.  If all three values are equal, then return the input value squared.

a.   Write a RISC-V assembly program to implement and test the

largest(int x, int y, int z) function.  Submit your assembly code on Canvas.

b.   What is the largest number that the largest program can accept as input and still produce an accurate answer?

2)  Write a recursive RISC-V assembly program to convert a base8 octal number to binary.  Assume that you initialize the octal number in main().  We provide a recursive dectobin program as a C program example on Canvas, that converts a decimal number to a binary number.

a.   Submit your assembly code on Canvas.

b.   Modify your assembly code to convert a base 8 octal number to base10.  Submit your assembly code on Canvas.

Part B: (30 points)

For this problem you will use the bfs.c (bfs) program provided, and you need to produce a dynamic instruction mix table (similar to Figure A.29 in your textbook) to characterize the execution of the quicksort program. You can perform this study on any architecture of your choice. There are a number of approaches you can take to  produce this data.

1)  You could instrument the code to capture the execution frequency of each basic block, and then, using an assembly listing of the program, provide instruction counts (this is slightly imprecise, but very acceptable for this assignment).

2)  You could find a tracing program that can capture an instruction trace. You would then have to write a program to count individual instructions (challenging, but not impossible).

3)  You could find a tool out on the Internet that provides this capability already for you. While this sounds easy, it may be a bit of work to learn the particular tool you have chosen to use.

4)  Try compiling bfs.c with and without optimization and report on how this changes your instruction mix.

You should compile and run bfs.c on the COE x86-64 system (gateway machines). You will need to run the program using the provided graph dataset that is in RMAT format.  To run the program, you need to issue: cat sample.txt | ./bfs 1

Please make sure to explain how you produced the data in your table and provide details of the tools that you used.

Part C. (15 points)

For this part ofthe assignment, write two different benchmark programs on your own that contain significant floating-point content.  Compile the programs on X86 and generate an assembly listing of the benchmarks.  Then identify 4 different floating-point instructions used in each program (a total of 8) and explain both the operands used by each instruction and the operation performed on the operands by the instruction.

Part D. (15 points)

For this problem you will need to read through Appendix K in your text, covering a number of instructions sets, and then answer the following questions:

1)  Name 2 CISC instruction set architectures and 2 RISC instruction set architectures.

2)  Describe 3 characteristics of the DEC Alpha instruction set.

3)  Discuss the differences/similarities between MIPS and PowerPC in terms of how they handle conditional branches.

4)  Provide an example of how register windows work on the SPARC ISA.

5)  In your opinion, which generation of the Intel x86 architecture provided the most significant advances as compared to the previous generations ofthe ISA.

Part E.  (20 points of Extra Credit to your quiz grade)

Read the Amdahl, Blaauw and Brooks 1964 paper on the IBM 360 Architecture.

Given the timeframe. of the paper, what do you find the most impressive feature of the architecture as described by the authors?  Justify why you feel this is such a great feature.  Also, discuss the representation of the various data types supported on this important ISA, and contrast it with the RISC-V.


热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图