作者TWkobe (中华柯比)
看板Grad-ProbAsk
标题Re: [理工] 计概 Memory计算问题
时间Sat Oct 24 15:25:53 2020
※ 引述《wayneshiau (Wayne)》之铭言:
: 跟朋友看到一题计概题目如下:
: https://imgur.com/a/byDFqa6
: 有点没有头绪该如何计算
: 目前已知A小题应该分别是
: 36 (64GB=2^36)
: 2^36/2^12 = 2^24 Frames
: 2^32/2^12=2^20
: 想请问 B C小题应该要如何计算?
: 谢谢
有错请指正
由题目得知page size 为 4kb(12bits)
因此 32bits virtual address 一定可以先分割成
------------------
| 20bits | 12bits |
------------------
但是 physical space 实际上为 64GB, virtual space 为4GB
所以要完整利用 physical space, 因此实际上分为 64/4 = 16个区块
因此可以用 4 bits 来表示区块offset
--------------------------
| 4bits | 16 bits | 12bits |
---------------------------
因此这样就完成 single level mapping :
用 2^16 个 size 为 8bytes 的 mapping entries 组成的 page table
来指向 64GB physical memory
block 8bytes physical mem
----- -------- --------------
| 0 |----> | 0 | ---------> | |
----- -------- | 4KB |
| ... | | 1 | |-------------
----- --------
| 15 | | .... | ......
----- -------- -------------
| 2^16-1 | | |
--------- | 4KB |
--------------
因为 single level page table 需要一次放在memory 中太大了
共需要 2^16 * 8bytes = 2^19 = 512KB
因此假若我把 page table 当成一般的资料看待, 我一样把page table切块
每一块大小依然是 4KB, 因此可以切成 512KB/4KB = 128 个 pages
换句话说也就是 16bits - 7bits = 9 bits
也就是说多加一层的 2 level mapping 会产生:
上层为一个 2^9 个 entries 的 mapping table
而上层 mapping table 的每个 entries 可指到下一层大小为 128 entries 的mapping
而 bottom mapping table 共有 512 个
若我使用 demand paging
实际上我在 memory 中只要放一个完整的 upper mapping + 一个 bottom mapping
共消耗 512*8bytes + 128*8bytes = 5120bytes
也就是下面图
---------------------------------
| 4bits | 9bits | 7bits | 12bits|
--------------------------------
block upper bottom phy mem
------ -------- ------- ---------
| 0 | ---> | 0 | -----> | 0 | --------> | |
------- --------- ------- | 4kb |
| ... | | 1 | | 1 | |------- |
------- -------- ------- | |
| 15 | | ..... | | .... | | .... |
------- --------- -------- | |
| 511 | --- | 127 | --------
--------- | --------- | |
| | 4kb |
| | |
| ---------
--> ---------
| 0 |
-------
| 1 |
-------
| ..... |
---------
| 127 |
---------
然後继续切成 level 3(以最後的mapping对齐)
-----------------------------------------
| 4bits | 2bits | 7bits | 7bits | 12bits |
------------------------------------------
因此应该是可以形成 3 level mapping
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.175.69.238 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1603524355.A.51C.html
1F:推 wayneshiau: 谢谢大大,讲解得非常详细!! 10/25 09:23
2F:推 tv1245987: 推 10/28 22:32