Re: [程式] 記憶體的問題

看板GameDesign (遊戲設計)作者 (我要冰生脾酒!!!!)時間18年前 (2007/08/20 23:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/7 (看更多)
※ 引述《littleshan (我要加入劍道社!)》之銘言: : ※ 引述《jasonlurey (我要冰生脾酒!!!!)》之銘言: : : 我來獻醜 可能有誤 : : 在embedded system中 (PC desktop是不是這樣我不確定) : : 對C而言 記憶體會分成stack和heap這兩種東西 : : stack只能push/pop, 通常是用來放local variables : : heap可以隨你抽插 (請別西斯), 通常會放static/global variables : 請問 embedded system 上是「只」會分 stack 和 heap 嗎? 正確一點的說法 應該是對C而言, 主要會分這兩個東西 但我不確定是不是還有別的 而physical上是如何map, 不同平台應該是不同的 (但應該還是map到system memory, 當然想不開也可以map到disk =,=a) : 在 x86 PC 上面還會有一塊 data segment : 而 static/global 是放在 data segment 上 : 而它們的位址是 compile/link 的時候就已經確定好 : heap 只會給 dynamic allocate 出來的變數使用 : 它們的位址要到 runtime 才決定 感覺上data segement會比較像cache的角色, 但不是以cache的方式工作 教科書上有人稱之為scrach-pad memory, 或tightly coupled memory (TCM) 主要可能是一個小而快的SRAM, 可以放重要且常用的資料 若有辦法將Heap map到data segment, 自然static/global data就會放在DS (這在linker的option應該是可以設參數) 不知道有沒有辦法把Stack map到DS上 我上一次學x86是在1999年 希望沒誤人子弟 XD 題外話: x86台灣有些廠商蠻強的, 已經有人宣稱可以做到跟一般embedded processor 一樣省電 XD 所以是可以考慮拿來做可攜式遊戲機用^^a : 像是 XBox 360、PS3、Wii 之類的遊戲主機 : 雖然 CPU 指令集不一樣,但因為速度和記憶體大小接近 : 在這方面的架構應該會和 x86 PC 類似 : 至於 NDSL 或 PSP 這類就比較偏向 embedded system 了... 沒錯 :) 其實從系統觀點, 不論是x86單板PC或是一般遊戲機, 都是很像的, 不外 processor, bus, memory, disk, peripheral 所以基本的記憶體觀念應該是都通的 當然反面就是記憶體會碰到的問題到哪都會有 這樣對於一般game developer而言應該是夠了 (其它更細的有firmware, OS, HW和一群該死的工程師去處理的) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.212.228
文章代碼(AID): #16oR5hYH (GameDesign)
文章代碼(AID): #16oR5hYH (GameDesign)