作者sean72 (.)
看板CSSE
标题[问题] Computer Architecture 的几个名词解释
时间Sun Mar 20 10:05:06 2011
小弟最近有一次面试
里面问了几个名词
由於我不是资讯工程背景出身 关於Computer Architecture的内容都是自修的
底子没有很紮实
不过有几个问题我不知道该如何找答案
另外由於这个面试的职位是韧体工程师 用C写16位元系统的处理器
希望板上的高手能从这方面下手 指点迷津
下面有A. B. 两大题
=====
A.
1. MEMORY SPACE
2. I/O SPACE
3. MEMORY HEAP
4. MEMORY STACK
关於1.
我事後上网查到的是 Memory Space = bytes的另外一个说法?
我不是很懂
请问能提供其他查询关键字或是文章或是解释吗?
关於2.
处理器中某段记忆体空间 保留下来 专门给特殊的 输入输出装置使用
请问这样解释对吗
关於3. 4.
我脑中的知识 如下
传统上 会将记忆体分成不同区段
某些用做Heap 某些用做Stack 还有 BSS, Data, Text
宣告local variable的时候会存放在stack 当函数结束 记忆体会自动释放
使用malloc()的时候会回传一个heap的空间 且必须搭配free()来释放空间
可是面试官说我没有回答到 Heap / Stack的精随
=====
B.
What are the max values that can be represented in the following data
types on a 16-bits CPU?
i. BYTE
ii. WORD
iii. int
iv. unsigned int
v. long
vi. unsigned long
16位元处理器代表他register一次存取大小为 16 bits
所以
i Byte: 2 <--对吗? 对吧?
ii Word: 不知道
iii int : (2^15)-1 (一个bit拿去表示正负)
iv unsigned int: (2^16)-1
v long: 不知道
vi unsigned long: 不知道
在32位元系统中 我查到
word大小取决於系统 例如32位元系统word大小为4byte
short是半个word, 2 byte
int一个word, 4 byte
long可能是一个word或是两个word (为什麽网路上说 "可能是""或是"?)
以下为我自己的疑惑:
请问这该怎麽推算到其他例如 8位元 或是64位元系统呢?
如果我的CPU是32位元 我却安装了一个16位元的DOS又会怎样?
这跟compiler 抓取资料的长度有关吗?
所以16bit CPU一般的compiler都设定成2 byte为一个单位来存取资料吗?
非常非常感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 74.74.155.82
※ sean72:转录至看板 Tech_Job 03/20 10:17
※ 编辑: sean72 来自: 74.74.155.82 (03/20 10:26)
1F:推 TroyLee:i Byte: 2 ... 这... 03/20 11:00
抱歉 请问您的推文是什麽意思
如果您能给我一点帮助或是回答 实在是感激不尽
※ 编辑: sean72 来自: 74.74.155.82 (03/20 11:12)
2F:推 R119:2 不是指记忆体喔 03/20 12:27
3F:→ howshou:蛮多书上都有吧, 建议你去看书有个整体的概念 03/25 16:22
4F:→ howshou:不要只有片面的考试题目概念 03/25 16:23