
Concept explainers
A.
Virtual address:
Virtual page number (VPN) and virtual page offset (VPO) are the two components of virtual address. Virtual address is “14 bits” format.
A.

Explanation of Solution
Given data:
Virtual address = 0x027C
The given virtual address is in hexadecimal format; convert it into binary format. Convert each Hexadecimal digit to a 4 bit binary equivalent:
0 | 2 | 7 | C |
0000 | 0010 | 0111 | 1100 |
The above binary values are filled in the virtual address 14 bits format as follows,
Virtual address format:
13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
B.
The page size (P) is 64bytes; using the page size finds the number of bits in VPN.
The formula for page size as follows:
Substitute “P = 64” in the above formula
Therefore, the “p” value represents virtual page offset (VPO) and physical page offset (PPO).
Number of bits in VPN is calculated as follows:
n = 14
p = 6
The VPN has additional two more components. They are TLB tag (TLBT) and TLB index (TLBI). The TLB is “4 ways” associative with “16” entries totally. Using the TLB find the value of TLBI and TLBT.
The formula for TLB as follows:
Substitute “T = 4” in the above formula
Therefore, the “t” value represents TLBI.
TLBI and TLBT are calculated as follows:
The “t” value represents TLBI. Therefore, the value of TLBI is “2”.
TLBI = 2
VPN = 8
Therefore, the value of TLBT is “6”.
B.

Explanation of Solution
Virtual address format:
13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
The higher-order “8 bits” of the virtual address represents “VPN” and the lower-order “6 bits” of the virtual address represents “VPO”. The higher-order “6 bits” of the VPN represents “TLBT” and the lower-order “2 bits” of the VPN represents “TLBI”
Value of VPN:
13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
VPN = 0000 1001 = 0x9
Value of TLB index:
7 | 6 |
0 | 1 |
TLB index = 01 = 0x1
Value of TLB tag:
13 | 12 | 11 | 10 | 9 | 8 |
0 | 0 | 0 | 0 | 1 | 0 |
TLB tag = 00 0010 = 0x2
TLB hit: No
There is a no valid match in the virtual address.
Page fault: No
There is a valid PTE and returns the cached PPN from the page table (PTE).
Value of PPN:
The cached PPN from the page table is “0x17”.
Value of VPO:
5 | 4 | 3 | 2 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
VPO = 11 1100 = 3C
Completed Table:
Parameter | Value |
VPN | 0x9 |
TLB index | 0x1 |
TLB tag | 0x2 |
TLB hit? (Y/N) | N |
Page fault? (Y/N) | N |
PPN | 0x17 |
C.
Physical address:
Physical page number (PPN) and physical page offset (PPO) are the two components of physical address. Physical address is “12 bits” format. The physical page offset (PPO) is identical to the virtual page offset (VPO).
C.

Explanation of Solution
Physical address format:
To form the physical address, concatenate the physical page number (PPN) from the PTE with virtual page offset (VPO) from the virtual address, which forms “0x05FC”.
Physical address = 0x05FC
The physical address is in hexadecimal format; convert it into binary format. Convert each Hexadecimal digit to a 4 bit binary equivalent:
0 | 5 | F | C |
0000 | 1011 | 1111 | 1100 |
The above binary values are filled in the physical address 12 bits format as follows,
11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
D.
The physical address has additional three more components. They are Byte offset within cache block (CO), Cache index (CI) and Cache tag (CT).
D.

Explanation of Solution
Physical address format:
11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
The lower-order “2 bits” of the physical address represents “CO”, the next “4 bits” represents “CI” and the remaining “6 bits” represents “CT”.
Value of Byte offset (CO):
1 | 0 |
0 | 0 |
CO = 11 = 0x0
Value of Cache index (CI):
5 | 4 | 3 | 2 |
1 | 1 | 1 | 1 |
CI = 1111 = 0xF
Value of Cache tag (CT):
11 | 10 | 9 | 8 | 7 | 6 |
0 | 1 | 0 | 1 | 1 | 1 |
CT = 01 0111 = 0x17
Cache hit: No
The cache index is not matches the cache tag.
Value of Cache byte:
The cached byte is not returned because the cache index is not matches the cache tag.
Completed Table:
Parameter | Value |
Byte offset | 0x0 |
Cache index | 0xF |
Cache tag | 0x17 |
Cache hit? (Y/N) | N |
Cache byte returned | --- |
Want to see more full solutions like this?
Chapter 9 Solutions
Computer Systems: A Programmer's Perspective Plus Mastering Engineering With Pearson Etext -- Access Card Package (3rd Edition)
- Write the following in C# WinForms. Implement a function in the main menu that makes the poacher move to random directions. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize);arrow_forwardWrite the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize); Write the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize);arrow_forwardWrite the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The poacher can be drew by the following in the main menu. e.Graphics.DrawImage(poacherImage, poacher.X, poacherY, tileSize, tileSize);arrow_forward
- Write the following in C# WinForms. Create a poacher class that has random x and y values when created, private set function for x and y values. Implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. The picture of the poacher is drew by e.Graphics.DrawImage(poacherImage, poacher.X, poacher.Y, tileSize, tileSize);arrow_forwardCreate a poacher class that has random x and y values when created, private set function for x and y values, and implement a function in the main menu that makes the poacher move into random direction. The movement should seem seamless. Write it in C# WinFormsarrow_forwardHi, please solve this trying to follow this criteria. (use Keil) Abstract describing the requirements and goals of the assignment. List file with no errors or warnings. Brief description of your implementation design and code. Debugging screen shots for different scenarios with your reference and comments. Conclusionarrow_forward
- Compute a Monte Carlo estimate of 0.8 by sampling from Uniform(0,0.8) and estimate the variance of ⑦.arrow_forwardWrite a C program using embedded assembler with a function to convert a digit (0 – 15) to the corresponding ASCII character representing the value in hexadecimal. For numbers 0 – 9, the output will be the characters '0' – '9', for numbers 10 – 15 the characters 'A' – 'F'. The entire core of the program must be written in symbolic instruction language; arrays may not be used. You may only use C to print the result. Tip: This piece of C program will do the same thing: character = number < 10 ? number + '0' : number + 55; As a basis, you can use this program again , which increments a variable. Just replace the INC instruction with ADD and add a test (CMP) with some conditional jump.arrow_forwardAnswer the question fully and accurately by providing the required files(Java Code, Two output files and written answers to questions 1-3 in a word document)meaning question 1 to 3 also provide correct answers for those questions.(note: this quetion is not graded).arrow_forward
- Systems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage LearningC++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrMicrosoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningOperations Research : Applications and AlgorithmsComputer ScienceISBN:9780534380588Author:Wayne L. WinstonPublisher:Brooks ColeProgramming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:Cengage




