作者aweila75 (David)
看板TransCSI
标题Re: [问题]一题记忆体的迷思...
时间Sun Jun 3 10:39:35 2007
※ 引述《stevennick (空中精灵小金刚)》之铭言:
: ※ 引述《Daiblo2 (下学期要住外面了)》之铭言:
: : 到这里之前我都能接受
: : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: : 上述这2行我就不能接受了
: : 一个记忆体位址就只能放1Byte
: : 怎麽可能一次存取4Byte资料呢?
: : 一个word定义是说一次抓连续4个记忆体位址吧
: : 因此我的结论是2^30 = 1GB
: : 我以前所学到就是假如问题是问最大记忆体位址定址空间
: : 那就是算位址线有几条来决定
: : 这是我个人的意见
: : 所以假如还是有问题还是可以再提出来讨论
: : 就如同上面大大所说的"教学相长"嘛
: 恩
: 问题的症结点
: 应该就是『一个记忆体位址只能放1Byte』这个认知吧
: 我查询的结果是,蛮多文件也确实都这麽写的
: 譬如 8086 CPU Address bus = 20 bit , Data bus = 16 bit
: Max Addressable Memory = 1,048,576(1Mb)
: 对於这一题
: 基本上问定址空间的话答案一定是2^30 = 1G没有问题
: 那下面这题呢?
: 某记忆体位址线有12条,资料线有8条,则该记忆体的记忆空间大小为
: (A)4K Bits (B)96 Bytes (C)32K Bytes (D)32K Bits
: 答案给 D
: 大概是刚好x86系列CPU在使用者设计程式时为了方便才将每个记忆体位址定为8bits
: 最後修正一下我讲的结果,原文内的 Line 应该要改成 Bus 才比较符合原意
: 题目要是真的这样考出来,应该会有蛮多争议的......
在看了上面各位高手讨论过後,我发现我还是对记忆体空间这方面的观念相当的模糊,
因此想提出来请教各位。
首先,我所知道的是:
主记忆体是由许多的cell所组成,普遍来说1个cell为8bit = byte,而cell是记忆体定址
、辨别位址的单位;如果将主记忆体中的记忆单位及各单位内的每个位元排序的重要结果
是,主记忆体中所有的位元被排成一长列。如果记忆体是以位元组大小为cell,则只要用
两个连续的cell就可存放一串16个位元串列。(以上资料来源: an overview,
discovering computers, illuminated computer science)
位址汇流排:电脑的记忆单元都编有一对映的号码,作为指明存取资料在记忆体的位置,
代表有效的定址空间。
我的问题是:
那资料汇流排的功能呢?又64位元的CPU即64条排线的资料汇流排吗?这之间有何关系呢?
另外,计算定址空间到底是计算它所能够定址的位置?还是定址的位置共占用的记忆体
size?
那麽,若计算主记忆体空间(size),必须由资料汇流排来计算,或是位址汇流排来计算呢
?又如何计算呢?
而physical memory与 logical memory与 virtual memory 之间又有什麽关系及功能呢?
我先前提出的问题,虽然D大帮我解题过,但仍不懂。如下:
1.Suppose physical memory is 256KB and is partitioned into 8 page frames, if
logical memory is 5MB, find the number of pages needed in virtual memory.
a. 160 b. 80 c. 320 d. 640
5MB / 256KB = 20
因为256KB需要8pages
因此20 * 8 = 160
所以答案应该是a
2.Calculate the number of bytes that are needed to store the address for a
256MB RAM.
希望各位高手帮忙解惑。感谢您。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.162.132.252
1F:→ aubr3:address number就好比门牌data line的大小就好比一家多少人 06/03 20:58
2F:→ aubr3:定址空间就好比问全部有多少人 就是几户乘以几人 06/03 21:00
3F:→ aubr3:bus就是公车你可以用别人也可以用XDD 其实是用三态闸接的 06/03 21:03
4F:→ aubr3:你可以把他想像成OR闸也行 06/03 21:04
5F:→ aubr3:不过他事实上是用三态闸接的 这样才能够双向 06/03 21:05
6F:→ aubr3:那题是((2^2+1)*2^20)/(2^18/8(page))=160 06/03 21:15
7F:→ aubr3:logical memory没听过不过看语意应该是说程式大小 06/03 21:18
8F:→ aubr3:virtual memory 嘘你记忆体 把程式大部分放在硬碟里 需要时 06/03 21:19
9F:→ aubr3:再paging 到记忆体里 就好像他原本就放再记忆体里一样但不是 06/03 21:19
10F:→ aubr3:physical memory 就是现在大跌价 让光华倒了两三家店的那个 06/03 21:20
11F:→ aubr3:因为要一次能执行多个程式的关系 所以记忆体分成很多frame 06/03 21:21
12F:→ aubr3:中文就是相框 而程式片段就是相片 一次放一张进去 06/03 21:22
13F:→ aubr3:叫做page 这样就可以 达到一次可以执行多个程式 而不需要夸 06/03 21:23
14F:→ aubr3:张大的记忆体 06/03 21:24
15F:→ aubr3:但是没放进去的部份怎麽办?就必须透过OS的一些方法侦测 06/03 21:25
16F:→ aubr3:来达到可以替换PAGE 06/03 21:26
17F:→ aubr3:记得没错的话 应该是叫trap(陷阱) 踩到陷阱 程式向OS喊救命 06/03 21:28
18F:→ aubr3:他不能执行下去了 之後OS会出面 检查发生什麽事 发现是page 06/03 21:29
19F:→ aubr3:fault 他就去驱动硬碟同步马达 调出所需要的page载入到memor 06/03 21:30
20F:→ aubr3:之後重新执行同一道指令 或者下一道(看你怎麽设计) 06/03 21:32
21F:→ aubr3:定址空间就是问空间 06/03 21:34
22F:→ aubr3:其余的看英文比较准中文嘛徐克远说:看你祖先有没有烧好香了 06/03 21:36
23F:→ aubr3:而这题的原意应该是问多少地址(翻成英文) 06/03 21:37
24F:→ aubr3:64位元通常是指CPU内暂存器的大小 也可以说是一次CPU动作所 06/03 21:44
25F:→ aubr3:需要的DATA大小 你也可以把他看作是DATA BUS的大小 06/03 21:46
26F:→ aubr3:但是通常不这麽说 因为有些系统为了省电 会做压缩 所以两个 06/03 21:46
27F:→ aubr3:的大小不一样 06/03 21:47
28F:推 aubr3:那个第二题应该是某原文计摡克本里面的题目 你可以想想看 06/03 21:51
29F:→ aubr3:欢迎指教 很久没念书了 06/03 22:02
30F:→ aubr3:偷查了一下 资管的题目应该是不会弄到这麽难 会算就好 06/03 22:42