模板討論:記憶體類型

由Jimmy-bot在話題關於內存等的問題上作出的最新留言:6 年前

關於內存等的問題

現在的內存條目被重定向到了隨機存取存儲器,並寫道「也叫主存」。但是內存肯定不是主存啊。因為主存除了包含內存外還包含CPU的高速緩存。而且,內存是相對於外存而存在的;主存是相對於輔存而存在的。隨機存取存儲器可以包含所有除了外存或輔存外的一切存儲器??? 圖中的紅色部分不存在?   —以上未加入日期時間的留言是於2018年11月21日 (三) 16:42 (UTC)之前加入的。

內存和主存的廣義定義我認為應該足夠明晰,而且這兩者在主要教科書好像都沒有講CPU內的高速緩存歸屬進去。——路過圍觀的Sakamotosan | 避免做作,免敬 2018年11月22日 (四) 01:13 (UTC)
我查到了這個:NOIP初賽指南/計算機的系統及工作原理,作為專業領域的競賽的參考資料,應當有一定的權威性。但是其中也指出了內存,也就是主存RAMROMRAMRandom Access Memory)才是易失性內存。我認為這和這和內存條目重定向到的隨機存取存儲器(英語:Random Access Memory,縮寫:RAM)不符。——Huangsijun17留言2018年11月22日 (四) 03:51 (UTC)
沒有不符啊,就是隨機存取記憶體啊。 --船到橋頭自然捲留言2018年11月22日 (四) 04:37 (UTC)
NOIP初賽指南/計算機的系統及工作原理中有寫內存/主存分為RAM和ROM,而百科中寫內存是RAM(Random Access Memory隨機存取存儲器)。這不是自相矛盾?——Huangsijun17留言2018年11月22日 (四) 07:41 (UTC)
這裡明顯有矛盾嘛。前面還說 ROM 是內存,後面又說光碟是外存。--Yejianfei留言2018年11月26日 (一) 02:56 (UTC)
內存的指向的確不完全對(指向電腦記憶體會相對好一些),當然更主要的,可能是沒人記得ROM也是內存……  囧rz...,或者普遍的意思就是「內存」和「主存」基本等價,指「RAM」,但準確來說,「內存」還包括「ROM」,但「主存」不包括。——路過圍觀的Sakamotosan | 避免做作,免敬 2018年11月22日 (四) 07:52 (UTC)
幾個原因,我一直在糾結NVMe協議的SSD是不是內存,一者是傲騰在大陸被翻譯為「傲騰內存」,但卻Intel至今沒有公布直接作為傳統意義上的內存使用,不插內存條就開機的方法,有違「傲騰內存」之名。再者,在Z370等的主板宣傳上有寫CPU可以直接讀取NVMe的SSD。眾所周知,內外存的一大分水嶺是CPU可否直接讀取。可以直接讀取就是內存了?再者,在大陸手機上是有兩塊內存的(不考慮堅果T1這種奇葩),RAM和ROM。分別被俗稱作「運行內存」和「存儲內存」,而手機和PC理應都屬於「馮·諾依曼結構」,怎麼會存在這麼大的「區別」?一個內存斷電會丟失,一個內存當硬碟。但百科上寫著內存就是隨機存儲器,確實挺讓人懵逼了。既然確認百科上的內存條目重定向可能錯誤了,要改回來嗎?而且,不上的模板等等似乎也有問題,要改就不是小變動了,如何進一步商議?投票?——Huangsijun17留言2018年11月22日 (四) 08:18 (UTC)
因為內存這個詞的意義便利化變了,至少手機之前,內存只是PC上的RAM(ROM就,呵呵……),然後手機出現,把自己的外部存儲器也讀作「內存」了,所以作為區分,用於直接計算運行的就用「主存」或者「運存」代替,「傲騰內存」更像是一種類似外存加一套軟體技術(就是一塊小型SSD幫機械硬碟外存做外部緩存),更接近於「外存」的概念。如果仍未有歧義傾向,可以作為獨立消歧義需要?——路過圍觀的Sakamotosan | 避免做作,免敬 2018年11月22日 (四) 09:07 (UTC)
傲騰已經建立重定向。其本質還是外存。——路過圍觀的Sakamotosan | 避免做作,免敬 2018年11月22日 (四) 09:14 (UTC)

注意到@Yejianfei:的編輯[1] [2] 請編者自己來討論吧。-- 豆腐daveduv留言 2018年11月23日 (五) 01:15 (UTC)

內存與主存確實不同,這個可以改掉。不過「內存」與RAM以前是作為同義詞使用的。至於現在手機和某些設備上用ROM的情況,我只能說「內存」這詞過時了。如果一定要把過時的「內存」概念放到今天,並與「外存」對立,那只能是「原教旨主義」一下(斷電數據丟失的是內存,斷電數據不丟失的是外存),把「內存」解釋為易失性存儲器。非易失性存儲器,一律算成「外存」,包括 ROM 。--Yejianfei留言2018年11月23日 (五) 01:23 (UTC)

總的來說(意思是說這是指導思想,不是定義), int a; long b; float c; double d ; 這些變量(variable)存儲的地方,以及malloc/free和new/delete操作的地方,叫做「內存」,而fread()函數讀取的地方和fwrite()函數寫入的地方,叫做「外存」。

fread()就是把外存的數據加載到內存,fwrite()就是把內存的數據寫入外存。

存儲器
memory
內部存儲器
(內存)
RAM
 
外部存儲器
(外存)
軟盤
 
硬盤
 
U盤
 
光盤
 

--Yejianfei留言2018年11月25日 (日) 02:36 (UTC)

man pages 肯定不能夠直接這麼寫,因為還有幾個細節問題:①現代作業系統都有虛擬內存(Linux上用swap分區,Windows上用頁面文件),這樣子把數據載入「內存」的時候,實際上可能是在外存上;②很多都支持「內存文件系統」,比如 mount -t tmpfs tmpfs /mnt,這樣fwrite進去的時候,實際上會寫入內存。
我前面自然是為了大多數人能看懂,就圖方便就不解釋細節了,就是不考慮虛擬內存和內存文件系統的情況下,這麼說是正確的。專業文檔自然不可以這麼直說。--Yejianfei留言2018年11月26日 (一) 02:49 (UTC)
那麼請問,主板上存儲BIOS系統的Flash ROM以及手機上的內存(Internal memory)算不算內存?使用內存條插槽的SSD又屬於內存儲器還是外存儲器?——Huangsijun17留言2018年11月26日 (一) 05:41 (UTC)
所以咯,用fread()說事是不合理的。也沒什麼資料(有的話反而就怪了)說這樣的API和外存有什麼關係。根本就不是一個層次的概念。fread知道什麼是file,但不關心這個file用什麼方式存儲。你這個講法和用彙編解釋C語言一樣,可以解決問題,但是在邏輯上就是錯誤的。 --122.211.109.58留言2018年11月26日 (一) 08:01 (UTC)
另外,個人認為拿C語言可否讀寫來判斷硬體是內存還是外存肯定是不合適的,因為C語言不是對真實內存的直接讀寫。證據為:Windows 下是變量是亂序存儲的,而C裡面是順序存儲的。可見C讀寫的「內存」是系統虛擬的,而非真實內存。那麼,這到底是不是用內存虛擬的?亦或系統將內存給C語言虛擬為外存?均有可能。所以我認為根據C語言可否讀寫來判斷硬體是內存還是外存是不合適的。——Huangsijun17留言2018年11月26日 (一) 08:11 (UTC)
不知道你是否發現了,一堆書上寫ROM也算內存,但是又把光碟歸到外存,可是很多光碟都是ROM啊。這說明「內存」本身就是個模糊的概念,經不起抬槓。這就好像你要糾結    是不是紅色一樣的。實際上只能表述是:正常情況下(即不考慮虛擬內存、內存文件系統、網絡文件系統等等,我乾脆說是在實模式下吧),XXX是內存,XXX是外存。 --Yejianfei留言2018年11月26日 (一) 13:06 (UTC)
我不得不說你思路混亂了。內存里包括ROM是完全正確的。外存里包括ROM也是完全正確的。你說因為外存里有的是ROM所以內存是模糊的概念,這本身就是胡說八道了。 --122.211.109.58留言2018年11月28日 (三) 05:13 (UTC)
ROM算內存,但你要知道內存是在搞甚麼鬼= =,總不能因為他找得像女生還有女性器官就說是女生吧,女裝山脈了解一下。 --船到橋頭自然捲留言2018年11月28日 (三) 05:42 (UTC)
  • 還有一個問題,如果RAM=內存 ROM=外存錯誤的話,Template:記憶體類型是否也需要修改?本討論是否也要存檔過去?——2018年11月29日 (四) 06:23 (UTC)
  • 以繁體中文而言,主記憶體/內部記憶體/內存(RAM, ROM)相對於輔助記憶體/外部記憶體/外存(硬碟,隨身碟);內部儲存空間(可能被簡稱為內存),事實上,因為並不會消失,所以是種ROM;而外部儲存空間也是ROM。--吉太小唯Don't Say Lazy.TALK2018年11月30日 (五) 06:38 (UTC)
    • 內存,有易失性的也有非易失性的。 --122.211.109.58留言2018年12月3日 (一) 05:19 (UTC)
      • 是,所以內存有消歧義:電腦與手機進行資料存取的RAM或是相對於手機記憶卡等易插拔外存的內部儲存空間。--吉太小唯Don't Say Lazy.TALK2018年12月4日 (二) 01:32 (UTC)
        • 不對吧,PC的內存也包含ROM,主板上面的FLASH ROM(拿來裝BIOS系統)就是其中之一。ROM明顯不屬於電腦與手機進行資料存取的RAM。——Huangsijun17留言2018年12月5日 (三) 01:34 (UTC)
          • 我將ROM歸類於內部儲存空間。據我所知,一程序執行,要將相關資料從外存(硬碟)移至RAM,CPU再對RAM進行運算處理。應該說:內存有RAM與ROM的類型,但外存只會以ROM存在。回到一開始,現在看來內存重定向到RAM似乎不合適,但如果提到內存,我也會先想到RAM,組裝電腦要擴充內存,不會有人想到要擴充Flash ROM或硬碟(外存)吧。--吉太小唯Don't Say Lazy.TALK2018年12月5日 (三) 06:48 (UTC)
            • 先糾正一點,外存不都是ROM,ROM是Read-Only-Merry的縮寫。SSD、U盤等之所以屬於只讀存儲器,是因為他不允許寫入到數據直接修改,而是要先將有大範圍的數據清除(處於即不為1又不為0的狀態)後才能重新寫入,而硬碟可以直接覆寫。所以外存並不只會以ROM存在。——Huangsijun17留言2018年12月6日 (四) 04:49 (UTC)
Read-Only-Merry?-游蛇脫殼/克勞 2018年12月11日 (二) 06:41 (UTC)
memory——存儲器。RAM的M也是memory。——Huangsijun17留言2018年12月11日 (二) 08:25 (UTC)

有一大誤區望諸位注意

RAMROM內存並不是包含或者對立的概念。

RAM(Random Access Memory,隨機存取存儲器)條目有寫他的隨機性是指:當存儲器中的消息被讀取或寫入時,所需要的時間與這段信息所在的位置無關。相對地,有串行訪問存儲器包括順序訪問存儲器(如:磁帶)和直接訪問存儲器(如:磁碟)。也就是說,和RAM對立的是順序訪問存儲器以及直接訪問存儲器。

ROM(Rread-Only Memory,只讀存儲器),從字面上就可以知道,和他對立的是WOM(Write-Only Memory,只寫存儲器)比較經典的只寫存儲器是Linux中虛擬的比特桶/dev/null;此外其他所有的存儲器都是Read-write memory(這玩意怎麼翻譯???)。

另外,內存則是和外存相對立的東西。

所以說,RAMROM內存並不是包含或者對立的概念。而在很多相關詞條存在著概念混淆的現象。

Huangsijun17留言2018年12月12日 (三) 04:58 (UTC)

返回 "記憶體類型" 頁面。