0

我正在为我的计算机科学课上的一个测验做准备,但我不知道如何找到正确的答案。问题有 4 种类型,例如——

假设以下系统:辅助存储器包含 4 GB,内存块相当于 4 KB,字大小相当于 4 字节。

  1. 一个块中有多少个单词,表示为 2^_?(写出指数)
  2. 表示该系统辅助存储器中一个字的地址所需的位数是多少?
  3. 表示该系统块中字节地址所需的位数是多少?
  4. 如果一个文件包含 32 兆字节,那么文件中包含多少个块,表示为 2^_?

任何想法如何找到解决方案?老师没有给我们任何解决方案的例子,所以我无法通过向后工作或其他任何东西来弄清楚如何做到这一点,我也没有在网上找到任何好的资源。

有什么想法吗?

4

2 回答 2

0

向后工作。这实际上是非常简单的数学。(忽略“辅助”一词。)

  1. 一千字节是多少?4 KB 是多少?尝试在 2^x 中输入一些数字,比如 x == 4。2^4 个单词是多少?2^8?
  2. 如果你有 4GB 内存,最高地址是多少?你能用 8 位表示多大的数?16位?提示:4GB 是 2 的偶数次幂。哪个?
  3. 这实际上是与 2 相同的问题,但输入参数不同。
  4. 一兆字节是多少千字节?以千字节表示 32 兆字节。除法会有用。
于 2010-09-04T06:42:57.197 回答
0

像这样的问题基本上可以归结为使用指数并了解不同部分如何组合在一起。例如,从您的示例问题中,我们会:

一个块中有多少个单词,表示为 2^_?(写出指数)

根据您的描述,我们知道一个单词是 4 个字节(2^2 个字节),一个块是 4 KB(2^12 个字节)。为了找到一个块中的单词数,我们只需将块的大小除以一个单词的大小 (2^12 / 2^2),这告诉我们每个块有 2^10 个单词。

表示该系统辅助存储器中一个字的地址所需的位数是多少?

这种类型的问题本质上是前一个问题的延伸。首先,您需要找到内存中包含的单词数。从中您可以获得在内存中表示一个单词所需的位数。所以我们被告知内存包含 4 GB(2^32 字节),而单词是 4 字节(2^2 字节);因此内存中的字数为 2^32/2^2 = 2^30 个字。由此我们可以推断出在内存中表示一个单词需要 30 位,因为每个位可以表示两个位置,我们需要 2^30 个位置。

由于这被标记为作业,我将把剩下的问题留作练习:)

于 2010-09-04T06:51:29.510 回答