地址线和内存之间的关系是什么?
What is the relation between address lines and memory?
这些是我的作业:
Write a program to find the number of address lines in an n
Kbytes of memory. Assume that n
is always to the power of 2.
示例输入: 2
示例输出: 11
我不需要具体的编码帮助,但我不知道地址线和内存之间的关系。
用非常简单的术语表达,没有任何总线多路复用,寻址内存所需的位数就是访问所需的行(地址或数据)数那段记忆。
引用 Wikipedia 文章,
a system with a 32-bit address bus can address 232 (4,294,967,296) memory locations.
举个简单的例子,考虑一下,你有3条地址线(A
,B
,C
),所以可以用3位组成的值是
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
共8个值。因此,使用 ABC
,您可以访问这八个值中的任何一个,即,您可以 到达 任何这些内存地址。
所以,TL;DR,简单的关系是,n
行行,我们可以表示2 n 个地址。
地址线通常是指CPU/chipset和内存之间的物理连接。它们指定要访问内存中的哪个地址。所以任务是找出将输入数字作为地址传递需要多少位。
在您的示例中,输入为 2 KB = 2048 = 2^11,因此答案为 11。如果您的输入为 64 KB,则答案为 16 (65536 = 2^16)。
这些是我的作业:
Write a program to find the number of address lines in an
n
Kbytes of memory. Assume thatn
is always to the power of 2.
示例输入: 2
示例输出: 11
我不需要具体的编码帮助,但我不知道地址线和内存之间的关系。
用非常简单的术语表达,没有任何总线多路复用,寻址内存所需的位数就是访问所需的行(地址或数据)数那段记忆。
引用 Wikipedia 文章,
a system with a 32-bit address bus can address 232 (4,294,967,296) memory locations.
举个简单的例子,考虑一下,你有3条地址线(A
,B
,C
),所以可以用3位组成的值是
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
共8个值。因此,使用 ABC
,您可以访问这八个值中的任何一个,即,您可以 到达 任何这些内存地址。
所以,TL;DR,简单的关系是,n
行行,我们可以表示2 n 个地址。
地址线通常是指CPU/chipset和内存之间的物理连接。它们指定要访问内存中的哪个地址。所以任务是找出将输入数字作为地址传递需要多少位。
在您的示例中,输入为 2 KB = 2048 = 2^11,因此答案为 11。如果您的输入为 64 KB,则答案为 16 (65536 = 2^16)。