0% found this document useful (0 votes)
5 views4 pages

Homework 4

Homework 4 focuses on caches and virtual memory, assigned on May 22, 2013, with a suggested completion date of May 29, 2013. It includes various problems related to cache behavior, process outputs, page table entries, and address translation, encouraging discussion among peers as solutions will not be provided. The assignment aims to enhance understanding of topics covered in lectures and readings, preparing students for examinations.

Uploaded by

yihuangece
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views4 pages

Homework 4

Homework 4 focuses on caches and virtual memory, assigned on May 22, 2013, with a suggested completion date of May 29, 2013. It includes various problems related to cache behavior, process outputs, page table entries, and address translation, encouraging discussion among peers as solutions will not be provided. The assignment aims to enhance understanding of topics covered in lectures and readings, preparing students for examinations.

Uploaded by

yihuangece
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

7/10/13 Wiki - Homework 4 | The Hardware/Software Interface

Homework 4

Caches and Virtual Memory


Assigned Wednesday, May 22, 2013
Suggested Completion Date Wednesday, May 29, 2013

Introduction
The purpose of written homework assignments is to get you thinking about the topics being covered
in lecture and in readings in the textbook which are not represented in the hands-on, programming
lab assignments. These written assignments also better prepare you for course examinations. It is
worth noting that the book contains many practice problems similar to the problems we ask on these
written assignments. The solutions for those practice problems are located at the end of each
chapter and should give you a feel for the kind of answers we expect you to turn in for these kind of
assignments.

Logistics
These written homeworks will not turned in for credit like the programming lab assignments. There
also won't be solutions provided, but the forums are open to all discussion about the homework. We
encourage you to complete the homework to the best of your ability and then discuss your
findings/questions with your peers on the forums.

Questions
Answer the following problems:

1. Homework Problem 6.37 (pg 636)


This problem tests your ability to predict the cache behavior of C code. You are given the
following code to analyze:

1 int x[2][128];
2 int i;
3 int sum = 0;
4
5 for (i = 0; i < 128; i++) {
6 sum += x[0][i] * x[1][i];
7 }

Assume we execute this under the following conditions:

sizeof(int) = 4
Array x begins at memory address 0x0 and is stored in row-major order.
In each case below, the cache is initially empty.
The only memory accesses are to the entries of the array x

https://class.coursera.org/hwswinterface-001/wiki/view?page=Homework4 1/4
7/10/13 Wiki - Homework 4 | The Hardware/Software Interface

Given these assumptions, estimate the miss rates for the following cases:

A. Case 1: Assume the cache is 512 bytes, direct-mapped, with 16-byte cache blocks. What is
the miss rate?
B. Case 2: What is the miss rate if we double the cache size to 1024 bytes?
C. Case 3: Now assume the cache is 512 bytes, two-way set associative using an LRU
replacement policy, with 16-byte cache blocks. What is the cache miss rate?
D. For Case 2, will a larger cache size help to reduce the miss rate? Why or why not?
E. For Case 3, will a larger block size help to reduce the miss rate? Why or why not?
2. The following program may have different outputs depending on the order that processes run in;
list all of the possible outputs. Assume that the fork() call cannot fail.

1 int main() {
2 int x = 3;
3
4 if (fork() != 0) {
5 x++;
6 printf("x=%d\n", x);
7 }
8
9 x--;
10 printf("x=%d\n", x);
11 exit(0);
12 }

3. Practice Problem 9.2 (pg 781)


Determine the number of page table entries (PTEs) that are needed for the following
combinations of virtual address size (n) and page size (P):

n P=2p No. PTEs


16 4K ___________
16 8K ___________
32 4K ___________
32 8K ___________
64 4K* ___________
64 4096K** ___________
* An x86-64 system with standard pages
** An x86-64 system with huge pages

4. Practice Problem 9.3 (pg 790)


Given a 32-bit virtual address space and a 24-bit physical address, determine the number of bits
in the VPN, VPO, PPN, and PPO for the following page sizes P:

P No. VPN bits No. VPO bits No. PPN bits No. PPO bits
1 KB _________ _________ _________ _________
2 KB _________ _________ _________ _________
4 KB _________ _________ _________ _________
8 KB _________ _________ _________ _________
Also, consider a 64-bit virtual address space and a 36-bit physical address; repeat this problem

https://class.coursera.org/hwswinterface-001/wiki/view?page=Homework4 2/4
7/10/13 Wiki - Homework 4 | The Hardware/Software Interface

for P = 4 KB and P = 4096 KB.

5. Homework Problem 9.11 (pg 849)


In the following series of problems, you are to show how the example memory system in Section
9.6.4 translates a virtual address into a physical address and accesses the cache. For the given
virtual address, indicate the TLB entry accessed, the physical address, and the cache byte value
returned. Indicate whether the TLB misses, whether a page fault occurs, and whether a cache
miss occurs. If there is a cache miss, enter "-" for "Cache Byte returned". If there is a page fault,
enter "-" for "PPN" and leave parts C and D blank.

The book's solution to practice problem 9.4 could be very helpful to understand before working
on these problems.

Virtual address: 0x027c

A. Virtual address format:


13 12 11 10 9 8 7 6 5 4 3 2 1 0

B. Address translation:
Parameter Value
VPN _________
TLB index _________
TLB tag _________
TLB hit? (Y/N) _________
Page fault? (Y/N) _________
PPN _________
C. Physical address format:
11 10 9 8 7 6 5 4 3 2 1 0

D. Physical memory reference:


Parameter Value
Byte offset _________
Cache index _________
Cache tag _________
Cache hit? (Y/N) _________
Cache byte returned _________
6. Homework Problem 9.12 (pg 850)
Repeat Problem 9.11 for the following address:

Virtual address: 0x03a9

A. Virtual address format:


13 12 11 10 9 8 7 6 5 4 3 2 1 0

B. Address translation:
Parameter Value
VPN _________
TLB index _________

https://class.coursera.org/hwswinterface-001/wiki/view?page=Homework4 3/4
7/10/13 Wiki - Homework 4 | The Hardware/Software Interface

TLB tag _________


TLB hit? (Y/N) _________
Page fault? (Y/N) _________
PPN _________
C. Physical address format:
11 10 9 8 7 6 5 4 3 2 1 0

D. Physical memory reference:


Parameter Value
Byte offset _________
Cache index _________
Cache tag _________
Cache hit? (Y/N) _________
Cache byte returned _________
7. Homework Problem 9.13 (pg 851)
Repeat Problem 9.11 for the following address:

Virtual address: 0x0040

A. Virtual address format:


13 12 11 10 9 8 7 6 5 4 3 2 1 0

B. Address translation:
Parameter Value
VPN _________
TLB index _________
TLB tag _________
TLB hit? (Y/N) _________
Page fault? (Y/N) _________
PPN _________
C. Physical address format:
11 10 9 8 7 6 5 4 3 2 1 0

D. Physical memory reference:


Parameter Value
Byte offset _________
Cache index _________
Cache tag _________
Cache hit? (Y/N) _________
Cache byte returned _________

Created Thu 23 May 2013 5:52 AM CST (UTC +0800)

Last Modified Thu 23 May 2013 5:56 AM CST (UTC +0800)

https://class.coursera.org/hwswinterface-001/wiki/view?page=Homework4 4/4

You might also like