加勒比久久综合,国产精品伦一区二区,66精品视频在线观看,一区二区电影

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

代做CS 211: Computer Architecture

時間:2024-04-15  來源:合肥網(wǎng)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

















 

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

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)/客戶要求/設(shè)計(jì)優(yōu)化
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    出評 開團(tuán)工具
    出評 開團(tuán)工具
    挖掘機(jī)濾芯提升發(fā)動機(jī)性能
    挖掘機(jī)濾芯提升發(fā)動機(jī)性能
    海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
    海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
    合肥機(jī)場巴士4號線
    合肥機(jī)場巴士4號線
    合肥機(jī)場巴士3號線
    合肥機(jī)場巴士3號線
  • 短信驗(yàn)證碼 目錄網(wǎng) 排行網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號-3 公安備 42010502001045

    日本网站在线观看一区二区三区| 色爱综合网欧美| 国产一区二区三区免费观看在线 | 女人色偷偷aa久久天堂| 国产精品嫩草影院在线看| 伊人久久视频| 激情一区二区| 日韩有码一区| 亚洲国产激情| 亚洲一级少妇| 亚洲一区成人| 亚洲91精品| 日韩不卡一区二区| 国产日韩一区二区三区在线播放 | 黄毛片在线观看| 欧美不卡在线| 韩国女主播一区二区三区| 久久香蕉网站| 日本肉肉一区| 国产精品福利在线观看播放| 香蕉久久99| 视频亚洲一区二区| 韩国一区二区三区视频| 日韩一级特黄| 日韩欧美视频| 亚洲欧美视频一区二区三区| 伊人久久大香线蕉综合网蜜芽| 精品中文字幕一区二区三区| 欧美日本中文| 99精品视频免费观看视频| 伊人久久视频| 色呦哟—国产精品| 水蜜桃久久夜色精品一区的特点 | 久久福利综合| 一区二区三区高清在线观看| 欧美欧美在线| 欧美精品播放| 亚洲国产一区二区三区a毛片| 亚洲国产精选| 精精国产xxxx视频在线野外| 国产精品论坛| 视频一区视频二区中文| 在线亚洲免费| 日韩一区二区久久| 欧美精品一卡| 欧美伦理影院| 欧美成人日韩| 极品中文字幕一区| 中文字幕亚洲影视| 精品免费在线| 中文字幕av一区二区三区人| 91欧美日韩在线| 粉嫩久久久久久久极品| av动漫精品一区二区| 日韩影片在线观看| 亚洲国产视频二区| 极品尤物一区| 久久精品影视| 欧美日韩中文一区二区| 99久久婷婷国产综合精品电影√| 久久婷婷av| 久久国产精品成人免费观看的软件| 欧美国产不卡| 久久免费黄色| 在线观看日韩| 亚洲一区亚洲| 日本一区二区高清不卡| h片在线观看视频免费| 天堂在线中文网官网| 免费高清视频在线一区| 99精品国产在热久久婷婷| 麻豆成人免费电影| 国产精品一区二区精品视频观看| 伊人久久大香伊蕉在人线观看热v| 一区二区三区网站| 欧洲大片精品免费永久看nba| 婷婷精品在线| 成人台湾亚洲精品一区二区| 99成人在线视频| 亚洲第一偷拍| 视频一区在线播放| 日日av拍夜夜添久久免费| 成人国产综合| 国内精品久久久久久久97牛牛 | 久久激情网站| 五月婷婷六月综合| 免费观看在线色综合| 交100部在线观看| 看片网站欧美日韩| 韩国一区二区三区视频| 亚洲国产视频二区| 亚洲国产不卡| 色一区二区三区四区| 九九热这里有精品| 亚洲天天综合| 免费一级欧美片在线观看网站 | 国产在视频一区二区三区吞精| 久久精品亚洲| 日韩电影在线观看电影| 欧美日韩亚洲在线观看| 日韩精品一卡二卡三卡四卡无卡 | 在线观看亚洲| 日韩av综合| 婷婷综合激情| 欧美91看片特黄aaaa| 亚洲日本视频| 欧美国产极品| 免费精品视频在线| 99精品国产一区二区青青牛奶| 欧美猛男同性videos| 伊人精品一区| 97se综合| 国产探花一区二区| 一区二区美女| 极品美女一区| 精品一区二区三区中文字幕| 久久精品av| 日韩久久久久| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲a一区二区三区| 日韩av在线中文字幕| 六月婷婷色综合| 欧美人成在线观看ccc36| 玖玖精品视频| 欧美激情aⅴ一区二区三区| 精品福利久久久| 色婷婷综合网| 欧美激情精品| 亚洲美女少妇无套啪啪呻吟| 香蕉久久一区| 成人h动漫精品一区二区器材| 噜噜噜在线观看免费视频日韩| 日韩精品电影一区亚洲| 欧美高清视频看片在线观看| 毛片在线网站| 日韩精品免费一区二区夜夜嗨| 女人天堂亚洲aⅴ在线观看| 欧美成人毛片| 天堂日韩电影| 福利精品一区| 欧美中文一区| 欧洲午夜精品| 精品国产中文字幕第一页| 亚洲啊v在线| 一区三区自拍| 在线男人天堂| 三级欧美日韩| 性欧美freesex顶级少妇| 精品国产一区二区三区性色av| 免费中文字幕日韩欧美| 国产亚洲精aa在线看| 美日韩精品视频| 国产乱码精品一区二区三区四区| 婷婷久久综合| 中文字幕日韩亚洲| 亚洲免费在线| 亚洲aaa级| 三上亚洲一区二区| 日韩欧美久久| 在线亚洲人成| 欧美日韩麻豆| 免费亚洲视频| 激情婷婷综合| 91精品在线免费视频| 99亚洲一区二区| 国产在线一区不卡| 毛片电影在线| 欧美人体视频| 日韩精品免费视频人成| 亚洲美女视频在线免费观看 | 青青草91视频| av成人毛片| 日本一区二区乱| 亚洲国产一区二区久久| 亚洲高清毛片| 成人在线分类| 鲁鲁在线中文| 日韩精品一区二区三区免费观看| 一区二区三区国产盗摄| 狠狠综合久久| 国产一区二区观看| 日韩免费小视频| 欧美搞黄网站| 国产一区网站| 成人在线免费av| 在线视频免费在线观看一区二区| 欧美男gay| 成人在线中文| 免费国产自线拍一欧美视频| 久久久91麻豆精品国产一区| 久久99久久久精品欧美| 久久aⅴ国产紧身牛仔裤| 高潮久久久久久久久久久久久久| 99久久精品一区二区成人| 亚洲精品1区| 伊人久久噜噜噜躁狠狠躁| 久久精品人人| 日本不卡1234视频| 狠久久av成人天堂| 91精品国产自产精品男人的天堂 |