為什麼電腦記憶體只有兩種狀態?

為什麼電腦記憶體只有兩種狀態?

為什麼電腦使用二進制,從某種意義上說,為什麼它們使用只能表示高狀態和低狀態的位元?我正在閱讀《邏輯與電腦設計基礎》(作者:M. Morris Mano、Charles R. Kime(作者)和 Tom Martin),但不明白他們的原因:

考慮一個具有 10 個代表十進制數字的值的系統。在這樣的系統中,可用電壓(例如 0 至 1.0 伏特)可分為 10 個範圍,每個範圍長度為 0.1 伏特。電路將提供這 10 個範圍中每一個範圍內的輸出電壓。電路的輸入需要確定所施加的電壓位於 10 個範圍中的哪一個範圍。如果我們希望允許電壓上存在噪聲,那麼對於給定的數字表示,可能允許輸出電壓的範圍小於 0.05 伏特,且輸入之間的邊界變化可能小於 0.05 伏特。這將需要複雜且昂貴的電子電路,並且輸出仍然可能受到製造或使用過程中發生的小“噪聲”電壓或電路中的小變化的干擾。

那麼,如果能夠準確檢測 0.05v 的變化並屏蔽噪聲,我們會使用具有 10 個狀態的計算機嗎?如果是的話,那麼發明這種可以偵測 0.05v 變化的裝置就夠了嗎?為什麼不直接擴大規模呢?例如,將範圍設為 0-50 伏,並每隔 5 的倍數設定一個狀態(例如 0,5,10,15,...,50),並允許 +/- 2V 的雜訊?

答案1

根本原因是:建立兩種狀態邏輯更容易,在 99% 的情況下,任何更複雜的東西都沒有實際優勢。

事實上,它是遠的建構四個儲存單元,每個儲存單元有兩種狀態(可用於儲存BCD 表示法的十進位數字)比建立一個可以儲存和讀取的單一儲存單元更容易(意味著更小、更便宜、更可靠) 10 個州。

是的,任何未來的技術改進都可能會改善十分之一的記憶體。但是,同樣的技術發展也可以應用於二進位電路,使它們更小、更可靠、功耗更低。二進位電路將比十分之一電壓位準電路改進得更快,因為二進位電路執行的工作根本上更簡單。所以十之一電路可以絕不跟上來。

使用更高的電壓是行不通的。你會增加功耗;訊號線中的電壓越高,它們輻射的雜訊就越大(因此它們更有可能破壞其他訊號)。事實上,我們目前運行的訊號走線彼此非常接近,以至於在 50 伏特電壓下您必須擔心電弧,而不僅僅是電容耦合!現代CPU 的趨勢是使用越來越低的電壓,而不是更高。

此外,二進位編碼雖然乍看很奇怪,但在很多方面都非常方便。與使用所描述的不同電壓位準的加法器相比,二進位加法器電路是一種簡單得多(且更可靠)的設計。 (我什至不想考慮如何進行乘法、除法或浮點運算。)另外,無論如何,您都需要二進制數字邏輯來實現計算機處理器的其餘部分。

人類更喜歡使用十進制數與計算機打交道這一事實幾乎是無關緊要的:二進制和十進制之間的轉換只是一小段代碼。

值得注意的是,有一些非常早期的計算機將數字儲存為十進制數字。但他們並沒有用不同的電壓等級來做到這一點。相反,他們使用了稱為“環形計數器”的電路,該電路實際上是十位元記憶體的設置,因此每次只有十位元中的一位可以為“1”。 (尋找“dekatron”。)

後來出現了 IBM 1401 和 IBM 1620 等「十進制」計算機,但它們基本上都使用二進位儲存。這些位元只是用來以各種方式表示十進制數字。例如,1401 使用“二進制編碼的十進制”,其中使用一組四位來對每個十進制數字進行編碼。像這樣的計算機在當時非常成功,大多數計算器仍然以這種方式工作。

簡而言之,雖然十進位表示似乎更有意義,但這實際上只是因為我們作為一個文明已經習慣了。從工程的每一個角度來看,二進位表示對於電腦電路都更有意義。 (無論如何,如果我們再聰明一點,我們就會用手指來進行二進制數,這樣我們不僅能數到 10,還能數到 1023!:))

答案2

你引用的這篇文章很好地回答了你的問題,你只需再考慮一下。

使用二進位表示進行電子資料儲存和傳輸的主要原因是電路和雜訊容限的複雜程度。

另一個重要原因是,出於資料儲存目的,二進位是最小公分母。您可以有效地以二進位形式表示任何數據,而無需任何開銷。當嘗試表示非常簡單(例如二進位)資料時,使用多於 2 個狀態通常會導致開銷

至於你問題的最後一部分,我必須提醒你,隨著電子元件產業的進步,我們正在朝著更低的電壓而不是更高的方向發展。在計算機主記憶體 IO 引腳上使用 50 伏特電壓是非常不切實際、危險且昂貴的。現代電腦記憶體通常使用 1.5V 左右的電壓。

我推薦閱讀以下內容:

答案3

記憶體基於晶體管,雖然本質上是類比的,但以二進位方式使用並耦合到時脈訊號(MHz)。最簡單的記憶體是 J/K (Q/Q') 觸發器。這種 4 個簡單 NAND 閘的排列是數位儲存的基本位元 - 它儲存 1 或 0。

另一方面是時脈訊號,它提供值的鎖存。有時,當值發生變化時,輸出是不確定的。選擇的時脈訊號略長於輸出穩定所需的時間。然後鎖存這些值並繼續計算。當數值沒有及時適應時脈時,錯誤的數值就會被結轉,導致電腦崩潰。

相關內容