(好吧,实际上是在回答这个问题,我想承认这是一个家庭作业问题,请考虑一下并帮助我提高我的理解力。)
我最近开始学习计算机组织和架构。我已经对如何组织缓存,如何发生缓存和主存储器之间的映射(直接,完全和组关联映射),什么是页表(什么是页面,块等)获得了公平的理解,我可以说我对分段,分页,虚拟地址和物理地址有基本了解(在基础层面)。
我已经遇到过这个问题:
A computer has 46-bit virtual address ,32- bit physical address, and a three level
page table organisation. The page table base-register stores the base address of the
first level table(t1), which occupies exactly one page.Each entry of t1 stores the base
address of the page of second level table t2. Each entry of t2 stores the base address
of the page of the third level table t3. Each entry of t3 stores a page table entry
(PTE). The PTE is 32 bit in size. The processor used in the computer has a 1MB
16-way set associative virtually indexed physically tagged cache. The cache block size
is 64 Bytes.
首先,我在想象这种类型的虚拟计算机时遇到了困难。 任何人都可以通过简单的步骤来帮助我如何在纸上实现这样的虚拟计算机,或者只是如何理解问题中给出的内容。有什么问题? 如何表示具有46位虚拟地址且具有三级页表的计算机。
what is virtually indexed and physically tagged cache.
在阅读了上面给出的内容之后,我觉得我只知道这些条款,但我无法将它们联系起来解决问题。 我很高兴如果有人试图解释我的思维过程应该如何理解并实际应用这些概念来解决这类问题。
基于以上段落的一些问题:
1) What is the size of a page in KB in this computer?
2) what is the minimum number of page colours needed to guarantee that no two synonyms
map to different sets in the processor cache of this computer?
实际上教会解决此类问题的良好资源将受到赞赏。 非常欢迎好的文章和观点。
提前谢谢!!
答案 0 :(得分:0)
我们知道所有级别页面表必须完全填满,除了最外层,最外层页面表可能占用整页或更少。但问题是,最外面的页面表占据了整个页面。
现在让页面大小为2 字节。
鉴于PTE = 32位= 4字节= 2 2 字节。
任何pagetable的任何页面中的条目数=页面大小/ PTE = 2 p / 2 2 = 2 p-2 。
因此逻辑地址拆分为
|---------------------|------------------|---------------------|-------------|
| p-2 | p-2 | p-2 | p |
|---------------------|------------------|---------------------|-------------|
逻辑地址空间为46位。
因此等式成为,
(p-2)+(p-2)+(p-2)+ p = 46
⇒p= 13
前页大小为2 13 字节= 8KB 。
答案 1 :(得分:-1)
我可以帮你解决第一个问题。
让页面大小为2 ^ x。 T1的每个条目是32位意味着4个字节。总大小为2 ^ X字节(1页)。 T1包含2 ^ X / 4 = 2 ^(X-2)个条目。 因此,我们使用46位虚拟地址的第一个X-2位来索引T1中的一个条目。它给出了一个T2的地址。
T2还包含2 ^(X-2)个条目。(与T1相同)。因此,我们使用下一个X-2位来索引到T2并获得T3的地址。
给出T3的每个条目是32个字节(包括标志和全部)。总页面大小为1页= 2 ^ X字节。条目数不是2 ^(X-2)。因此,我们再次使用X-2位索引到T3并获得帧的凝视地址。
然后我们需要偏移量。由于页面大小为2 ^ X,因此偏移量为X位长。
第一个(x-2)位给出T2的地址。
下一个(x-2)位给出T3的地址。
下一个(x-2)位给出T3的帧地址。
剩余的x位在帧中给出偏移量。
总计是46位
x-2 + x-2 + x-2 + X = 46
4X - 6 = 46
X = 13
页面大小= 2 ^ 13个字节。