以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 网友互助 』  (http://bbs.xml.org.cn/list.asp?boardid=76)
----  [求助]OS原理之内存地址映射问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=76&rootid=&id=35615)


--  作者:DavidPotter
--  发布时间:7/14/2006 9:46:00 AM

--  [求助]OS原理之内存地址映射问题
我想不出什么好的题目了,只好乱写了。问题如下:

在通过段表映射物理地址过程时,是通过cpu执行os的指令,还是通过硬件直接得到(不需要cpu计算)?

谢谢!


--  作者:elfstone
--  发布时间:7/14/2006 4:12:00 PM

--  
CPU的运算不都是通过硬件实现的么 。。。
--  作者:DavidPotter
--  发布时间:7/14/2006 6:36:00 PM

--  
我问映射的过程是不是不要通过cpu了
--  作者:elfstone
--  发布时间:7/15/2006 5:41:00 PM

--  
以下是引用DavidPotter在2006-7-14 18:36:00的发言:
我问映射的过程是不是不要通过cpu了


分段系统地址转换机构得到的物理地址存放在段表寄存器中,然后通过总线传送到地址寄存器,然后在内存中取出数据。。。
不通过CPU怎么拿到实际的物理地址,怎么完成映射呢
--  作者:DavidPotter
--  发布时间:7/17/2006 10:22:00 AM

--  
不好意思,可能是我的提问有些方式不对, 我问"分段系统地址转换机构得到的物理地址存放在段表寄存器中" 这一个过程是不是要通过CPU计算。
因为在映射的过程中,除了通过段表/页表来查找地址之外,还有一个通过快表查询的过程。而且说是这两个过程是同时进行的。如果说这个过程也是需要OS而不是硬件来完成,那么我想同时进行可能就有问题了。(ps: 我对硬件完成的机制不是太明白).

分段系统地址转换机构得到的物理地址存放在段表寄存器中,然后通过总线传送到地址寄存器,然后在内存中取出数据。。。
不通过CPU怎么拿到实际的物理地址,怎么完成映射呢


--  作者:elfstone
--  发布时间:7/17/2006 1:19:00 PM

--  
以下是引用DavidPotter在2006-7-17 10:22:00的发言:
不好意思,可能是我的提问有些方式不对, 我问"分段系统地址转换机构得到的物理地址存放在段表寄存器中" 这一个过程是不是要通过CPU计算。
因为在映射的过程中,除了通过段表/页表来查找地址之外,还有一个通过快表查询的过程。而且说是这两个过程是同时进行的。如果说这个过程也是需要OS而不是硬件来完成,那么我想同时进行可能就有问题了。(ps: 我对硬件完成的机制不是太明白).

分段系统地址转换机构得到的物理地址存放在段表寄存器中,然后通过总线传送到地址寄存器,然后在内存中取出数据。。。
不通过CPU怎么拿到实际的物理地址,怎么完成映射呢



1.这个过程当然需要CPU介入,因为物理地址的形成需要进行计算,得到的物理地址进行映射由寄存器完成
2.所谓的快表,是在转换机构中增设的一个高速缓冲寄存器,目的是为了提高地址转换速度,也叫联想寄存器,转换机构在取得逻辑地址之后,分理出页号,先在快表里查找,有的话直接拿到对应的物理地址,没有的话就要拿去运算,有快表在可以减少一次运算,避免了二次访存,因而速度也大大提高
--  作者:DavidPotter
--  发布时间:7/18/2006 9:36:00 AM

--  
以下是引用elfstone在2006-7-17 13:19:00的发言:
1.这个过程当然需要CPU介入,因为物理地址的形成需要进行计算,得到的物理地址进行映射由寄存器完成
2.所谓的快表,是在转换机构中增设的一个高速缓冲寄存器,目的是为了提高地址转换速度,也叫联想寄存器,转换机构在取得逻辑地址之后,分理出页号,先在快表里查找,有的话直接拿到对应的物理地址,没有的话就要拿去运算,有快表在可以减少一次运算,避免了二次访存,因而速度也大大提高


我想:如果映射过程需要CPU计算的话,那么在快表中查询一样也要CPU计算。二者的工作方式基本上是一样的。不同的只是在于一个是通过访问内存,一个是访问寄存器。
而假如都要进行CPU计算,那么如果来协调使得他们能够同时进行?
所以我估计很有可能在映射的过程是不是仅仅通过那些电路(与或们之类的)来完成映射的过程。


--  作者:elfstone
--  发布时间:7/18/2006 12:42:00 PM

--  
以下是引用DavidPotter在2006-7-18 9:36:00的发言:
[quote]以下是引用elfstone在2006-7-17 13:19:00的发言:
  1.这个过程当然需要CPU介入,因为物理地址的形成需要进行计算,得到的物理地址进行映射由寄存器完成
  2.所谓的快表,是在转换机构中增设的一个高速缓冲寄存器,目的是为了提高地址转换速度,也叫联想寄存器,转换机构在取得逻辑地址之后,分理出页号,先在快表里查找,有的话直接拿到对应的物理地址,没有的话就要拿去运算,有快表在可以减少一次运算,避免了二次访存,因而速度也大大提高
[/quote]
我想:如果映射过程需要CPU计算的话,那么在快表中查询一样也要CPU计算。二者的工作方式基本上是一样的。不同的只是在于一个是通过访问内存,一个是访问寄存器。
而假如都要进行CPU计算,那么如果来协调使得他们能够同时进行?
所以我估计很有可能在映射的过程是不是仅仅通过那些电路(与或们之类的)来完成映射的过程。



有两点你要搞清楚:
1.寄存器本身就在CPU中
2.快表查询与映射过程不是同时进行,快表查询是映射过程的一环


--  作者:DavidPotter
--  发布时间:7/18/2006 4:54:00 PM

--  

2.快表查询与映射过程不是同时进行,快表查询是映射过程的一环

恩, 但我记得快表查询与映射的过程是同时的呀!
好像我所看到的OS的书都是这样写的。所以不甚明白为什么可以同时。


--  作者:elfstone
--  发布时间:7/18/2006 6:10:00 PM

--  
以下是引用DavidPotter在2006-7-18 16:54:00的发言:
[quote]
  2.快表查询与映射过程不是同时进行,快表查询是映射过程的一环
[/quote]

恩, 但我记得快表查询与映射的过程是同时的呀!
好像我所看到的OS的书都是这样写的。所以不甚明白为什么可以同时。



是哪本书?你再仔细参照下,“同时”两个字不够严谨,快表有一个特点就是并行查询能力,是不是把“并行”二字通俗化了。。。
--  作者:DavidPotter
--  发布时间:7/18/2006 6:14:00 PM

--  

是哪本书?你再仔细参照下,“同时”两个字不够严谨,快表有一个特点就是并行查询能力,是不是把“并行”二字通俗化了。。。

我回去看看,
那并行是什么意思呢?


--  作者:DavidPotter
--  发布时间:7/20/2006 9:16:00 AM

--  
书上是说并行,但是并行与同时的区别在于什么呢?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms