[問題] Computer Architecture 的幾個名詞解釋
小弟最近有一次面試
裡面問了幾個名詞
由於我不是資訊工程背景出身 關於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)
推
03/20 11:00, , 1F
03/20 11:00, 1F
抱歉 請問您的推文是什麼意思
如果您能給我一點幫助或是回答 實在是感激不盡
※ 編輯: sean72 來自: 74.74.155.82 (03/20 11:12)
推
03/20 12:27, , 2F
03/20 12:27, 2F
→
03/25 16:22, , 3F
03/25 16:22, 3F
→
03/25 16:23, , 4F
03/25 16:23, 4F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章