不理解内存分页的机制

2019-03-24 09:46发布

本帖最后由 无知的萝卜 于 2015-9-19 14:46 编辑

在TMS320C28x Assembly Language Tools里看到
TMS320C28x devices have separate memory spaces (pages) that occupy the same address ranges
(overlay).

在其他书上也有看到DSP的内存分页,但是不明白,为什么不同的页可以用同样的地址?
比如一个变量a储存在PAGE1的0x000021;
那么另一个变量b也能储存在PAGE2的0x000021吗?
但是在实际的内存中肯定只存在一个唯一一个地址0x000021呀?


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
Aragorn
1楼-- · 2019-03-24 13:38
这其实就是一个绝对地址和相对地址的概念。举个栗子,有一片内存总共1024个字节,分成4页(编号0~3页),每页256个字节(地址编号0~255)。那么问题来了,假设有一个字节变量A在第1页的地址21,这就是一个相对地址,因为是相对于页地址来说的。而绝对地址,就是指他在整个内存中的地址,所以变量A在内存中的绝对地址是:256(第1页的页地址)+21(变量地址) = 277。

每个变量在内存中的实际绝对地址=页地址*页字节数 + 变量地址。所以第0页的地址21,在内存中的绝对地址是21,而第1页的地址21,在内存中的绝对地址是277。
无知的萝卜
2楼-- · 2019-03-24 16:45
 精彩回答 2  元偷偷看……
kata
3楼-- · 2019-03-24 20:50
DSP内存分页这个说法和PC机分页的说法不是同一个概念。PC机是在唯一的一个物理地址空间进行分页;DSP内存的页实际是上不同的物理地址空间。打个比方说,PC机分页是在同一栋楼的,楼层和房间号;DSP是分页,更像是三栋不同楼的楼层和房间号。
无知的萝卜
4楼-- · 2019-03-24 21:29
Aragorn 发表于 2015-9-19 17:00
这其实就是一个绝对地址和相对地址的概念。举个栗子,有一片内存总共1024个字节,分成4页(编号0~3页),每 ...

不过后来想了下还是没想通。
这是文档里的一个例子:
捕获.PNG
可以看到红框框住的是PAGE1和PAGE2地址重叠的部分。如果是想对地址的话,感觉就没意义了,因为我们可以从memory map上看到的是绝对地址,这样我们才知道把数据或者程序分配到哪里了。如果是相对地址的话我们怎么知道数据和程序到底分配到哪里了?
Aragorn
5楼-- · 2019-03-25 00:21
 精彩回答 2  元偷偷看……
无知的萝卜
6楼-- · 2019-03-25 02:20
Aragorn 发表于 2015-9-28 14:02
你看的是哪个文档?

204页

一周热门 更多>

相关问题

    相关文章