記憶體越多,問題越多
我發現將一台 1997 年代的電腦記憶體加滿到 384 MiB 後,遊戲效能反而下降了 25%,原因在於主機板的 L2 快取實際上只能支援約 128 MiB 的範圍。最終我透過拔掉多餘的記憶體,反而讓這台電腦跑得更快,解決了這個因為記憶體過多而產生的效能問題。
背景
這篇文章源於一位復古電腦愛好者在組裝 1997 年代「Quake PC」時的意外發現。作者為其配備了在當時極為奢侈的 384 MiB SDRAM,卻發現遊戲效能反而比僅安裝 128 MiB 時下降了近 25%。經過排查,問題出在主機板晶片組的 L2 快取記憶體(L2 Cache)定址限制,當記憶體總量超過快取能覆蓋的範圍時,多出的記憶體存取將完全失去快取加速,導致整體效能大幅滑落。
社群觀點
在 Hacker News 的討論中,許多資深玩家對此現象並不陌生,並指出這是當年 Intel 晶片組常見的「人為限制」。有留言提到,像 430TX 這樣的晶片組將快取記憶體定址上限鎖定在 64MB,這在當時被視為 Intel 為了區隔市場、強迫需要大記憶體的專業用戶轉向購買更昂貴的 Pentium II 處理器與相關晶片組的商業手段。這種硬體層級的限制在復古硬體圈中是廣為人知的陷阱,甚至有玩家回憶起當年 Linux 核心曾針對此問題提供補丁,將超過快取範圍的記憶體模擬成 RAM Disk 作為交換空間(Swap),以確保系統核心與關鍵程式能留在受快取保護的快速區域。
關於硬體設計的討論進一步延伸到其他架構,例如 BeBox 電腦在雙處理器模式下會關閉 L2 快取,這同樣是受限於當時記憶體控制器的設計權衡。有參與者質疑這種「以快取換取容量」的交易是否值得,因為在 x86 架構上,失去快取的處理器效能往往會慘不忍睹。此外,針對文章中提到的 1997 年記憶體價格,社群內出現了一些爭論。作者聲稱 384 MiB 記憶體在當年價值四萬美元,但多位網友根據歷史資料指出,1997 年 128 MiB 的價格約在 300 美元左右,即便考慮通貨膨脹,四萬美元的說法顯然過於誇張,這可能是作者對當時物價的記憶偏差或計算錯誤。
討論最後轉向對現代軟體開發的反思。有評論者感嘆,過去工程師必須斤斤計較 4MB 的資源分配,而現代開發者卻常在擁有 2GB 記憶體的容器中面臨「Hello World」微服務記憶體溢出的窘境。這種從「追求硬體極限」到「層層抽象堆疊」的轉變,讓現代開發者逐漸失去對底層硬體運作邏輯的理解。當前的軟體往往根據總記憶體量來配置快取,卻不一定能有效處理超大規模系統帶來的擴展性問題,這與當年主機板快取定址不足的問題在本質上產生了跨時代的共鳴。
延伸閱讀
- 《Upgrading and Repairing PCs》第 10 版:文中提到的經典硬體參考書,詳細記載了早期 PC 架構的限制。
- Anandtech 歷史價格紀錄:留言中用於比對 1997 年記憶體市場價格的參考來源。
相關文章