99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

代做CS 211: Computer Architecture

時間:2024-04-15  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



CS 211: Computer Architecture, Spring 2024
Programming Assignment 5: Simulating Caches (100 points)
Instructor: Prof. Santosh Nagarakatte
Due: April 25, 2024 at 5pm Eastern Time.
Introduction
The goal of this assignment is to help you understand caches better. You are required to write a
cache simulator using the C programming language. The programs have to run on iLab machines.
We are providing real program memory traces as input to your cache simulator.
No cheating or copying will be tolerated in this class. Your assignments will be automatically
checked with plagiarism detection tools that are powerful. Hence, you should not look at your
friend’s code or use any code from the Internet or other sources such as Chegg/Freelancer. We
strongly recommend not to use any large language model and use the code sample provided by
it as it will likely trigger plagiarism violations. All violations will be reported to office of student
conduct. See Rutgers academic integrity policy at:
http://academicintegrity.rutgers.edu/
Memory Access Traces
The input to the cache simulator is a memory access trace, which we have generated by executing
real programs. The trace contains memory addresses accessed during program execution. Your
cache simulator will have to use these addresses to determine if the access is a hit or a miss, and
the actions to perform in each case. The memory trace file consists of multiple lines. Each line of
the trace file corresponds to a memory access performed by the program. Each line consists of two
columns, which are space separated. First column lists whether the memory access is a read (R)
or a write (W) operation. The second column reports the actual 48-bit memory address that has
been accessed by the program. Here is a sample trace file.
R 0x9cb3d40
W 0x9cb3d40
R 0x9cb3d44
W 0x9cb3d44
R 0xbf8ef498
Part One - One Level Cache - 50 points
You will implement a cache simulator to evaluate different configurations of caches. The followings
are the requirements for the first part of the cache simulator.
1
• Simulate only one level cache; i.e., an L1 cache.
• The cache size, associativity, the replacement policy, and the block size are input parameters.
Cache size and block size are specified in bytes.
• You have to simulate a write through cache.
• Replacement Algorithm: You have to support two replacement policies. The two replacement
policies are: First In First Out (FIFO) and Least Recently Used (LRU).
Next, you will learn more about cache replacement policies.
Cache Replacement Policies
The goal of the cache replacement policy is to decide which block has to be evicted in case there is no
space in the set for an incoming cache block. It is always preferable – to achieve the best performance
– to replace the block that will be re-referenced furthest in the future. In this assignment, you will
use two different ways to implement the cache replacement policy: FIFO and LRU.
FIFO
When the cache uses the FIFO replacement policy, it always evicts the block accessed first in the
set without considering how often or how many times the block was accessed before. So let us say
that your cache is empty initially and that each set has two ways. Now suppose that you access
blocks A, B, A, C. To make room for C, you would evict A since it was the first block to be brought
into the set.
LRU
When the cache used the LRU replacement policy, it discards the least recently used items first.
The cache with an LRU policy has to keep track of all accesses to a block and always evict the
block that been used (or accessed) least recently as the name suggests.
Cache Simulator Interface
You have to name your cache simulator first. Your program should support the following usage
interface:
./first <cachesize> <assoc:n> <cache policy> <block size> <trace file>
where:
• The parameter cache size is the total size of the cache in bytes. This number should be a
power of 2.
2
• The parameter assoc:n specifies the associativity. Here, n is a number of cache lines in a set.
• The parameter cache policy specifies the cache replacement policy, which is either fifo or
lru.
• The parameter block size is a power of 2 that specifies the size of the cache block in bytes.
• The parameter trace file is the name of the trace file.
Simulation Details
• When your program starts, there is nothing in the cache. So, all cache lines are empty.
• You can assume that the memory size is 248 . Therefore, memory addresses are at most 48
bit (zero extend the addresses in the trace file if they are less than 48-bit in length).
• The number of bits in the tag, cache address, and byte address are determined by the cache
size and the block size.
• For a write-through cache, there is the question of what should happen in case of a write
miss. In this assignment, the assumption is that the block is first read from memory (i.e.,
one memory read), and then followed by a memory write.
• You do not need to simulate data in the cache and memory in this assignment. Because,
the trace does not contain any information on data values transferred between memory and
caches.
Sample Run
Your program should print out the number of memory reads (per cache block), memory writes (per
cache block), cache hits, and cache misses. You should follow the exact same format shown below
(no space between letters), otherwise, the autograder can not grade your program properly.
./first ** assoc:2 fifo 4 trace1.txt
memread:336
memwrite:334
cachehit:664
cachemiss:336
The above example, simulates a 2-way set associate cache of size ** bytes. Each cache block is 4
bytes. The trace file name is trace1.txt.
Note: Some of the trace files are quite large. So it might take a few minutes for the autograder to
grade all testcases.
3
Part II - Two Level Cache - 50 points
Most modern CPUs have multiple level of caches. In the second part of the assignment, you have
to simulate a system with a two-level of cache (i.e., L1 and L2). Multi-level caches can be designed
in various ways depending on whether the content of one cache is present in other levels or not.
In this assignment you implement an exclusive cache: the lower level cache (i.e., L2) contains only
blocks that are not present in the upper level cache (i.e., L1).
Exclusive Cache
Consider the case when L2 is exclusive of L1. Suppose there is a read request for block X. If the
block is found in L1 cache, then the data is read from L1 cache. If the block is not found in the
L1 cache, but present in the L2 cache, then the cache block is moved from the L2 cache to the L1
cache. If this causes a block to be evicted from L1, the evicted block is then placed into L2. If the
block is not found in either L1 or L2, then it is read from main memory and placed just in L1 and
not in L2. In the exclusive cache configuration, the only way L2 gets populated is when a block is
evicted from L1. Hence, the L2 cache in this configuration is also called a victim cache for L1.
Sample Run
The details from Part 1 apply here to the second level L2 cache. Your program gets two separate
configurations (one for level 1 and one for level 2 cache). Both L1 and L2 have the same block size.
Your program should report the total number of memory reads and writes, followed by cache miss
and hit for L1 and L2 cache. Here is the format for part 2.
./second <L1 cache size> <L1 associativity> <L1 cache policy> <L1 block size>
<L2 cache size> <L2 associativity> <L2 cache policy> <trace file>
This is an example testcase for part 2.
./second ** assoc:2 fifo 4 64 assoc:16 lru trace2.txt
memread:**77
memwrite:2**
l1cachehit:6501
l1cachemiss:3499
l2cachehit:222
l2cachemiss:**77
The above example, simulates a 2-way set associate cache of size ** bytes. bytes with block size of
4 for L1 cache. Similarly, L2 cache is a fully associate cache of size 64 bytes. Further, the trace file
used for this run is trace2.txt. As you can see, the program outputs the memory read and memory
writes followed by the L1 and L2 cache hits and misses in the order shown above.
4
Structure of your submission
All files must be included in the pa5 folder. The pa5 directory in your tar file must contain 2
subdirectories, one each for each of the parts. The name of the directories should be named first
and second. Each directory should contain a c source file, a header file (optional) and a Makefile.
To create this file, put everything that you are submitting into a directory named pa5. Then, cd
into the directory containing pa5 (i.e., pa5’s parent directory) and run the following command:
tar cvf pa5.tar pa5
To check that you have correctly created the tar file, you should copy it (pa5.tar) into an empty
directory and run the following command:
tar xvf pa5.tar
This is how the folder structure should be.
* pa5
- first
* first.c
* first.h
* Makefile
- second
* second.c
* second.h
* Makefile
Autograder
First Mode
Testing when you are writing code with a pa5 folder.
• Let us say you have a pa5 folder with the directory substructure as described in the assignment
description.
• copy the pa5 folder to the directory of the autograder.
• Run the autograder with the following command.
python3 pa5_autograder.py
It will run the test cases and print your scores.
5
Second Mode
This mode is to test your final submission (i.e., pa5.tar)
• Copy pa5.tar to the autograder directory.
• Run the autograder with pa5.tar as the argument as shown below
python3 pa5_autograder.py pa5.tar
Grading Guidelines
This is a large class so that necessarily the most significant part of your grade will be based on
programmatic checking of your program. That is, we will build the binary using the Makefile and
source code that you submitted, and then test the binary for correct functionality against a set of
inputs. Thus:
• You should not see or use your friend’s code either partially or fully. We will run state of the
art plagiarism detectors. We will report everything caught by the tool to Office of Student
Conduct.
• You should make sure that we can build your program by just running make.
• Your compilation command with gcc should include the following flags: -Wall -Werror -
fsanitize=address
• You should test your code as thoroughly as you can. For example, programs should not crash
with memory errors.
• Your program should produce the output following the example format shown in previous
sections. Any variation in the output format can result in up to 100% penalty. Be especially
careful to not add extra whitespace or newlines. That means you will probably not get any
credit if you forgot to comment out some debugging message.
• Your folder names in the path should have not have any spaces. Autograder will not work if
any of the folder names have spaces.
Be careful to follow all instructions. If something doesn’t seem right, ask on Canvas discussion
forums or contact the TAs during office hours.
請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp

















 

掃一掃在手機打開當前頁
  • 上一篇:CS 2550代做、代寫SQL設計編程
  • 下一篇:菲律賓國旗(國旗的含義是什么)
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務-企業/產品研發/客戶要求/設計優化
    有限元分析 CAE仿真分析服務-企業/產品研發
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
  • 短信驗證碼 trae 豆包網頁版入口 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                国产精品免费观看视频| 麻豆免费精品视频| 精品综合久久久久久8888| 欧美日韩久久不卡| 肉丝袜脚交视频一区二区| 欧美一区二区三区免费大片| 免费成人在线网站| 久久久国产综合精品女国产盗摄| 麻豆免费精品视频| 国产女同性恋一区二区| 91免费在线视频观看| 亚洲第一福利视频在线| 精品精品国产高清a毛片牛牛| 捆绑调教美女网站视频一区| 欧美激情在线观看视频免费| 欧美性色欧美a在线播放| 久久国产夜色精品鲁鲁99| 国产日韩精品一区| 欧美亚洲国产bt| 国产精品一区在线观看乱码| 亚洲少妇最新在线视频| 91精品国产综合久久精品图片| 蜜桃一区二区三区四区| 国产精品免费视频一区| 欧美日韩不卡在线| av综合在线播放| 秋霞成人午夜伦在线观看| 中文字幕av一区二区三区免费看 | 亚洲视频免费在线观看| 日韩一级视频免费观看在线| 99国产欧美久久久精品| 久草这里只有精品视频| 亚洲成人久久影院| 亚洲欧美日韩人成在线播放| 久久久久99精品一区| 日韩视频在线观看一区二区| 91精品1区2区| 91香蕉视频污| 9i在线看片成人免费| 国模少妇一区二区三区| 美女视频一区二区三区| 日韩av不卡一区二区| 一区二区免费在线播放| 亚洲素人一区二区| 国产精品不卡一区| 国产精品女同互慰在线看 | 欧美xxxx老人做受| 欧美亚洲一区二区在线观看| 99久久99久久综合| 成人黄色免费短视频| 狠狠色狠狠色综合系列| 精品写真视频在线观看| 六月婷婷色综合| 欧美96一区二区免费视频| 亚洲v精品v日韩v欧美v专区| 一区二区三区在线免费视频| 亚洲欧美自拍偷拍| 亚洲精品写真福利| 亚洲激情图片qvod| 亚洲国产精品麻豆| 日韩高清不卡一区二区| 婷婷六月综合亚洲| 蜜芽一区二区三区| 国产一区二区在线看| 国产不卡在线一区| 成人av资源在线观看| 波波电影院一区二区三区| 91色综合久久久久婷婷| 欧美午夜寂寞影院| 日韩免费一区二区| 国产欧美日韩在线| 亚洲最大成人综合| 男男gaygay亚洲| 韩国av一区二区三区在线观看| 久久99九九99精品| 成人av网站免费观看| 欧美自拍偷拍一区| 精品美女在线播放| 最近中文字幕一区二区三区| 亚洲成人777| 国产精品一区二区不卡| 色琪琪一区二区三区亚洲区| 91精品国产综合久久香蕉的特点| 国产婷婷精品av在线| 亚洲一区二区三区精品在线| 麻豆精品在线视频| 97超碰欧美中文字幕| 欧美一三区三区四区免费在线看| 欧美高清在线一区二区| 视频一区二区国产| 国产·精品毛片| 7777精品伊人久久久大香线蕉完整版 | 日韩欧美色电影| 国产精品女同一区二区三区| 亚洲国产精品欧美一二99| 精品制服美女丁香| 欧美伊人久久久久久午夜久久久久| 日韩欧美www| 亚洲小说欧美激情另类| 国产在线一区二区综合免费视频| 日本久久电影网| 国产精品美女久久福利网站| 日韩黄色一级片| 日本大香伊一区二区三区| 久久久久亚洲综合| 美腿丝袜在线亚洲一区| 在线欧美日韩精品| 日韩一区在线免费观看| 国产一区二区在线看| 欧美精品国产精品| 一区二区三区免费观看| 成a人片国产精品| 国产欧美精品国产国产专区| 久久国产尿小便嘘嘘| 日韩一级免费观看| 婷婷开心激情综合| 欧美日韩精品一区二区在线播放| 亚洲欧美视频在线观看| av电影一区二区| 国产精品第13页| 99re成人精品视频| 一区视频在线播放| 成人av免费观看| 国产精品私人影院| 99久久精品国产观看| 1024成人网| 91浏览器在线视频| 亚洲精品videosex极品| 色综合天天狠狠| 亚洲久草在线视频| 在线精品亚洲一区二区不卡| 亚洲精品国久久99热| 一本色道综合亚洲| 一区二区日韩av| 欧美卡1卡2卡| 美女www一区二区| 久久久久综合网| a4yy欧美一区二区三区| 亚洲欧美国产77777| 欧美在线你懂的| 日本欧美一区二区三区| 欧美精品一区男女天堂| 国产成人日日夜夜| 亚洲精品中文在线观看| 欧美老女人在线| 国产成人小视频| 亚洲主播在线观看| 日韩欧美黄色影院| 成人一级黄色片| 亚洲成av人片| 精品国产乱码久久久久久浪潮| 丁香一区二区三区| 亚洲成人av在线电影| 精品裸体舞一区二区三区| a美女胸又www黄视频久久| 肉丝袜脚交视频一区二区| 亚洲精品在线免费观看视频| 99久免费精品视频在线观看| 性欧美大战久久久久久久久| 久久久国产精华| 精品视频1区2区| 福利一区在线观看| 日本欧美在线看| 亚洲女爱视频在线| 精品国产乱码久久久久久1区2区 | 国产色一区二区| 欧美日韩成人在线一区| 国产综合色视频| 亚洲福利一二三区| 中文字幕高清不卡| 91精品国产麻豆| 色综合天天综合在线视频| 日韩精品色哟哟| 亚洲欧美偷拍卡通变态| 欧美精品一区二区久久久| 欧美性猛片xxxx免费看久爱| 国产成人免费网站| 蜜臀va亚洲va欧美va天堂| 一区二区三区欧美激情| 国产女同互慰高潮91漫画| 日韩午夜激情av| 在线一区二区三区四区五区| 成人激情午夜影院| 精品一区二区三区在线播放 | 亚洲成av人影院| 中文字幕在线不卡视频| 久久先锋影音av鲁色资源网| 欧美一区二区三区在线观看| 色哟哟日韩精品| 97se亚洲国产综合自在线观| 成人免费毛片嘿嘿连载视频| 精品一区二区日韩| 蜜桃一区二区三区在线| 日韩av不卡在线观看| 视频在线在亚洲| 一区二区在线看| 亚洲一区二区三区在线| 亚洲欧美偷拍另类a∨色屁股| 国产精品毛片久久久久久久| 国产精品女同互慰在线看|