題:
我們不能簡單地將電池連接到RAM以防止斷電期間數據丟失嗎?
Vishal Dalwadi
2019-10-07 20:09:44 UTC
view on stackexchange narkive permalink

所以,我只是想知道易失性存儲器在切斷電源後如何丟失數據。但是我們不能通過將電池與RAM和ROM結合使用來解決該問題嗎?當斷電時,即當計算機沒有收到關機信號時,電池會啟動,控制器將數據從RAM傳輸到EEPROM?

EEPROM-因為我想HDD和SSD會消耗更多功率。我的意思是,如果我們可以執行此操作,則可以對它進行編程,以將數據顯式存儲在EEPROM中;如果沒有數據,則可以將OS(僅作為副本)存儲。這樣,我們還可以更快地啟動。也許有很明顯的理由不這樣做。但是我不清楚。那你能告訴我為什麼不這樣做嗎?

如果RAM備用電池,為什麼還要麻煩轉移到EEPROM。
絕對沒有意義,因為其他外設將被復位,並且與從RESET返回時保存的RAM數據無關。您有UPS,可以防止整個系統突然掉電。
還有eeprom的主意……今天,典型的中端家用PC擁有大約8GB的DRAM。8GB EEPROM?也許您的意思是快閃嗎?
他們已經這樣做了,儘管不是為計算機的主內存而做的。通用術語是“電池支持的SRAM”。到目前為止,SRAM太昂貴而無法用作主存儲器,但是電池備份的SRAM過去曾用於BIOS設置(聽說過“ CMOS電池”嗎?)之類的東西,這就是保存遊戲在NES,SNES,Game Boy上的工作方式,以及一些早期的Game Boy Advance視頻遊戲。
首先,您不需要已經有執行此操作的系統:https://www.avadirect.com/Battery-Backup-Unit-w-128-MB-DDR-ECC-Cache-Module-for-SRCU42E-RAID-Controller / Product / 2513其次,EEPROM速度很慢,並且會佔用更多空間,因此您無需執行此操作
https://en.wikipedia.org/wiki/Non-volatile_random-access_memory
值得考慮的是,電源故障後,您還必須能夠返回到運行狀態。如果系統的100%都用電池備份,那麼您就沒問題了(我們稱它為UPS)。但是,如果備份了系統的一部分,則必須準備好找出停電期間丟失狀態的所有組件的工作狀態。那可能是一個有趣的練習。
在筆記本電腦中,掛起模式僅為DRAM供電(並刷新)。電源需求相對較低,通常在掛起模式下可能需要一周或更長時間才能耗盡筆記本電腦的電池並丟失RAM內容。某些筆記本電腦/操作系統具有以下功能:經過一定時間後會喚醒,將RAM內容寫入磁盤(休眠),然後完全關閉。
@Andyaka這是電池備份,但我們不確定斷電要持續多長時間。所以我的意思是我們可以將其備份到EEPROM中,然後我們就不必擔心電源和電池消耗的問題。另外,現在我讀到答案,因為刷新周期太多,所以DRAM需要很多功率,因此依靠電池將數據保持在RAM中完好無損是一個錯誤的設計決定。
某些公司實際上是基於RAM製造的驅動器,您必須在外部為其供電,而且它們非常昂貴,請參考[HyperDrive](http://www.hyperossystems.co.uk/07042003/products.htm)
它有時被製造出來,但由於價格昂貴而從未流行。參見以下示例:https://arstechnica.com/information-technology/2013/04/memory-that-never-forgets-non-volatile-dimms-hit-the-market/
我立即想到了@VoltageSpike:電池支持的RAID緩存。高可靠性RAID控制器允許您熱插拔損壞的控制器,將高速緩存模塊放回原位,並繼續工作而不會丟失數據。
您可能一直希望* option *清除RAM。記住舊的故障排除問題“您是否嘗試過將其關閉然後重新打開?”由於清除了RAM,因此解決了許多狀態錯誤的問題。清除不良狀態也是流程監督和在Erlang中重新啟動的思想。
總是這樣:https://en.wikipedia.org/wiki/Uninterruptible_power_supply,但聽起來您的意思是說一些更小或更局部的內容僅限於內存。(這裡的用例是什麼?)
@JeffY這只是我腦海中出現的一個問題。
七 答案:
rdtsc
2019-10-07 21:10:07 UTC
view on stackexchange narkive permalink

簡短的回答:您也許可以“將電池連接到RAM,以防止在停電期間丟失數據”,但這取決於RAM的類型。

SRAM(靜態隨機存取存儲器)不是DRAM,如下所述。在許多電子設備中都發現了SRAM,例如現代的(家用)恆溫器(斷電時使用電池來保存設置)和鬧鐘(電池可以節省時間,並且可以為設備供電很短時間)等。硬盤驅動器中通常帶有一些SRAM,偽裝成“ 32MB磁盤緩存”。專門的SRAM甚至存在於CPU內部,因為它擁有快速的L1,L2和L3高速緩存。

鋰“鈕扣電池”一次(不可充電)原電池通常用於SRAM保持。現代SRAM的工作電壓較低,例如1.8 V,因此需要更多的電路來支持3.0 V電池。電源電流非常小(甚至是納安培),因此可以使用小電池將數據保留很長時間。許多工業機器(機器人,變頻驅動器,可編程邏輯控制器等)都使用SRAM備用電池來在(頻繁)電源循環中保存關鍵數據。

首字母縮寫SRAM的意思是“ 靜態隨機存取存儲器”。靜態的,因為其內容無限期地保持其編程狀態,但僅在通電後才能保持。 SRAM速度非常快,但物理上又很笨重,而且價格相對昂貴,因此,直到今天,SRAM仍能找到合適的位置。 SRAM和DRAM是 volatile類型,這意味著如果斷電,它們的內容也會丟失。

EEPROM(電可擦可編程只讀存儲器)是一種古老的非易失性數字存儲介質,這意味著斷電後數據仍然存在。這些最初是在位級別上“編程”或“融合”的,但是現代的速度更快,並且可以按塊處理數據。這些仍然比SRAM或DRAM慢得多。由於這種極慢的速度,有限的容量以及有限的寫/擦除功能,它們只能在參數存儲和微控制器微型程序等角色中使用。由於將大量主系統存儲器備份到EEPROM是不可行的時間。

FLASH內存是另一種非易失性存儲介質,通常被視為USB閃存驅動器和SSD硬盤驅動器。它也比其他類型的RAM慢得多,並且具有有限的寫限制,因此不用於主內存。 SSD硬盤僅是其中的一堆,它們全部並行使用以提高速度和容量。

DRAM(動態隨機存取存儲器)完全是另一種野獸。 “動態”,因為它總是在變化,並且內容將在沒有乾預的情況下發生變化(丟失)。 DRAM相對密集(在容量方面)且價格便宜,因此用於計算機主系統內存。不幸的是,它也比SRAM慢*,並且需要連續“刷新”,否則其內容會在短時間內丟失,具體取決於溫度。 PC內存控制器的正常運行可使DRAM中的數據保持連續刷新,以便始終可用。如果關閉電源,則在使用備用電池供電時,內存控制器仍需要刷新數據。例如,筆記本電腦在掛接到RAM時會這樣做。由於此刷新是一個活動過程,因此會消耗更多電流,因此電池通常比鈕扣電池大得多。如果電池電量耗盡,則DRAM中的內容將會丟失,並且機器將被強制進行冷啟動。

一種有前途的新技術是 FeRAM。(鐵電RAM)速度非常快,非易失性好並且具有很高的耐久性。它是新技術,因此非常昂貴且容量有限,因此作用非常有限。

*此外:為了避免DRAM的速度慢,PC會大量並行使用它們。首先,一次訪問整個記憶棒(速度為8倍,因為上面有8個芯片),然後,如果主板支持雙存儲區,一次支持兩個模塊(2x8 = 16x),三存儲區= 24x,依此類推。標記為“ PC3-10666”的模塊如何才能像一塊運行在10666MHz的芯片那樣工作。在666MHz總線上:666 * 2(DDR表示每個時鐘兩次傳輸)* 8個芯片/模塊= 10,666。

謝謝!這是一個很大的幫助。
在閃存SSD時代之前,難道沒有存儲設備實際上只是一盒電池支持的DRAM,並帶有專用的刷新電路嗎?
@grawity已經存在(請參閱https://images-na.ssl-images-amazon.com/images/I/41CVgprtpsL.jpg)。它們以原義的“ RAM磁盤”出售。儘管我不會將它們標記為“通用”,但實際上是一種非常特殊的奇異硬件–如果您足夠努力的話,在該領域中,幾乎任何東西都存在。
https://en.wikipedia.org/wiki/Memory_refresh表示:“儘管在某些早期系統中,微處理器控制刷新,並使用計時器觸發定期中斷,該中斷會運行執行刷新的子例程,但這意味著無法暫停微處理器,單步運行或進入節能休眠狀態,而不會停止刷新過程並丟失內存中的數據。因此,在現代系統中,刷新是通過內存控制器中的電路或越來越多地在芯片本身上進行的。”
不久前,專業磁盤/ RAID控制器中還存在電池備份的磁盤緩存(稱為“電池備份單元”)。當電源關閉時,磁盤高速緩存中的數據尚未寫出到旋轉磁盤中,以備以後使用。較新的存儲卡只是將數據寫入內部閃存。另請參閱:https://serverfault.com/questions/203355/why-do-i-need-a-raid-battery-pack
@RazvanSocol僅動態RAM(DRAM)需要刷新。靜態RAM(SRAM)沒有此要求,並且如果正確設計了總線緩衝區等其他詳細信息,則CPU可以暫停甚至關閉。只要有電,SRAM就會保持其內存完好無損。
當然是@ReversedEngineer:。我對rdtsc說道,他寫道:“為了正確地“刷新” DRAM,CPU(傳統上)負責。沒有專用的芯片來刷新它。”在現代系統中,情況已不再如此。
-1
@RazvanSocol我的意思是“沒有專用的芯片來刷新它”是Vishal基本上不希望僅用直流電源保持DRAM內容的零希望。
@rdtsc:根據https://user.eng.umd.edu/~blj/papers/ieeetc65-1.pdf,DDR4具有自刷新機制。
nitpick,但“在千分之一秒內”並不是真正正確的。在最高額定溫度下,最小保留時間為64ms,我將其描述為更像是“百分之一秒”。同樣在更正常的溫度下,保留時間在幾秒到幾分鐘左右。眾所周知,攻擊是在刪除目標計算機的內存並將其安裝到另一台計算機上以從其讀取數據之前,先對其進行顯著冷卻。(溫度的依賴性是指數的,因此即使保留數小時的數據也是如此)
在許多早期的微型計算機上,DRAM刷新是通過外部電路(通常是視頻電路)來完成的。Z80是我記得的第一個對DRAM進行自我刷新的微處理器,但是即使在那兒,我認為考慮由集成到CPU中的“內存控制器”來完成刷新也更加清楚,因為這樣做(現在仍然是,大部分)對於程序員來說是不可見的,並且無論內存控制器是集成式還是外接式,其工作方式都相同。
原始PC使用計時器芯片和dma芯片來刷新其內存。@CurtJ.Sampson-在早期的系統或帶有內置視頻控制器的終端上,視頻控制器對內存的訪問以更新屏幕足以滿足內存刷新要求。
@rcgldr好吧,我認為對於許多系統來說,僅擁有視頻是不夠的。據我所知,除具有靜態RAM的那些機器外,所有8位Apple和CBM機器都需要對DRAM刷新設計提供特殊的額外支持。單靠視頻是行不通的。(這很有道理;在許多這些系統中,不僅存在DRAM行從未被視頻生成電路訪問過,而且甚至還有從未被訪問過的整個芯片庫。)
我認為保存RAM內容可能沒有意義,除非還可以保存CPU寄存器和緩存。PC上的休眠過程必須比RAM的確切狀態更多地存儲內容,以允許PC喚醒時“恢復”計算機狀態。
@rcgldr不,我專門指的是非Z80,非CP / M機器,到80年代初期,它們是迄今為止最常見的8位系統。因為幾乎沒有一個單獨的視頻控制器足以進行刷新。他們都需要單獨的刷新電路(通常添加到視頻控制器或與視頻控制器集成在一起)進行刷新。
@CurtJ.Sampson:在Apple II上,(A0-A4,A7-A9)的串聯將循環顯示所有256個值,並且每隔約4.4ms進行一次視頻提取。
@CurtJ.Sampson-在8位Atari的400、800、65XE,130XE(128KB ram)上,ANTIC芯片進行了DRAM刷新,以及DMA和部分視頻以及GTIA芯片。與其他基於6502的系統(Apple II,Commodore 64)不同,Atari的6502的運行頻率約為2 MHz(相對於1 MHz)。
比尔盖子
2019-10-07 20:59:30 UTC
view on stackexchange narkive permalink

我們不能簡單地將電池連接到RAM上以防止斷電時丟失數據嗎?那你能告訴我為什麼不這樣做嗎?

當然可以!它稱為電池支持的SRAM,廣泛用於嵌入式系統中。如今,NVRAM技術(例如傳統的EEPROM或新的FRAM)的成本很低,無需電源就可以完成相同的事情,因此它不像以前那樣普遍,但是仍然存在。而且,您的台式計算機still很可能內部有一個保留BIOS設置。

Battery-Backed SRAM

圖片來源: ST M48T128Y數據表 sub>

應用程序包括:

  • 日期/時間。電腦主板上的鈕扣電池為實時時鐘芯片供電,該芯片內部具有SRAM,可以保持時間。這就是即使關閉電源後台式計算機仍能記住時間的原因。

  • 校準參數。諸如示波器之類的測試設備可以將當前校準數據保存在SRAM中(舊測試設備的一個常見問題是,當電池耗盡時,所有校準數據都會丟失)。

  • 運行時參數。微控制器可以將重要的運行時數據保存在電池供電的SRAM中,因此即使由於斷電或崩潰而使微控制器復位,該數據也不會丟失。同樣,手持式科學計算器可以保存您的變量。

    • 許多台式計算機仍使用此技術來保留某些BIOS設置以及日期/時間。之所以這樣做是因為人們發現,如果BIOS設置不正確,很容易取出電池並重置所有內容。早期的PC使用真正的專用SRAM芯片,現代PC使用集成的解決方案。儘管現代UEFI固件主要使用NVRAM,但是除了NVRAM之外,有些還具有電池供電的SRAM。
  • 密碼學和安全性。安全硬件可以將私鑰保存在電池供電的SRAM中,並具有 temp del>篡改檢測機制,該機制可以在檢測到入侵時擦除並斷開SRAM的連接,從而永久破壞私鑰。同樣,在極端情況下,程序本身會保存在SRAM中,以挫敗競爭對手的任何反向工程工作。

我們不在台式機上執行此操作。計算機上的大型DRAM消耗大量電能。而且,大多數操作系統和軟件都無法在斷電後繼續工作。您可以實現類似休眠的功能,但是如果是這樣,為什麼不使用休眠呢?總體而言,它沒有完成,不是因為不可能,而是因為沒有人真正想要這樣做。

tAmper檢測。儘管有些人在無法解密數據時會生氣。
-1
嗯,它在筆記本電腦上大都是可用的:這正是“暫停到RAM”的含義,我每天都在使用它而不是深度休眠,因為它喚醒起來更快。我可能不是唯一的一個,而且我可以告訴您許多年來所有主要操作系統都支持它。
“而且很可能您的台式計算機內部仍裝有一台計算機來保存BIOS設置。”這是CMOS電池嗎?
最近,我花了很多錢更換了保存我的一個收音機([ICOM R-71A](https://www.universal-radio.com/catalog/commrxvr/r71a.html))的配置數據的存儲板。電池沒電了。我可以簡單地更換電池,但是無法重新輸入配置數據(也找不到可以輸入的配置數據源)。令人印象深刻的是,該電池使用了30年,只是希望我知道在它沒用之前必須更換它。
@Cruncher是的。儘管術語“ CMOS電池”有點用詞不當。CMOS是用於製造各種芯片的半導體技術的名稱,將電池稱為“ CMOS電池”就像將計算機程序命名為“ C程序”一樣沒有意義。我想這個名稱來自於以下事實:CMOS支持第一代超低功耗SRAM和RTC芯片,並使電池備份解決方案更加實用,因此人們開始使用該技術的名稱來指代SRAM / RTC芯片。包含BIOS設置和時間。
pjc50
2019-10-07 20:57:47 UTC
view on stackexchange narkive permalink

對於PC而言,它或多或少是“電池電量不足時休眠”的意思。RAM的內容在休眠文件中寫入磁盤。由於在執行此操作時需要打開整個系統,因此它需要大量的電源,因此僅適用於無論如何都需要電池的系統,例如筆記本電腦。

類似地,可以從休眠狀態快速啟動;英特爾將其稱為“快速啟動”,並且在某些系統上已經存在很長時間了。

主要限制因素是RAM太大,以至於將其全部寫入閃存需要花費幾秒鐘。

對於PC,可能會發生O.S.做一個“混合”方法:寫入磁盤,但也要保留在RAM中。這樣,它可以快速啟動,並且在斷電的情況下受到保護,因為它在磁盤上具有所有休眠數據。這比冷啟動要快,它可以還原內容和正在運行的程序,就像暫停到RAM一樣。
fraxinus
2019-10-08 22:33:10 UTC
view on stackexchange narkive permalink

EEPROM-因為我想HDD和SDD會消耗更多功率。

從定義上來說,SSD是EEPROM。

您所描述的恰恰是現代計算機中“暫停到磁盤”或“休眠”功能的功能。拔下插頭,電池或外部電池(UPS)開始為計算機供電,並且當電池電量耗盡到一定程度時,操作系統(取決於設置)僅將整個RAM寫入文件並關閉。當您重新打開電源時,操作系統會看到“休眠”文件存在,而不是正常啟動,而是將文件讀取到RAM並從之前的停止位置開始(當然,這裡有很多簡化方法)。 >

還有一個“暫停到RAM”功能-關閉外圍設備,停止CPU並僅給RAM和RAM控制器供電。

這兩個功能可以鏈接在一起-您先將其掛起到RAM,然後當電池電量耗盡時,計算機會短暫喚醒以將RAM內容傳輸到磁盤並完全關閉電源。

“這兩個功能可以鏈接在一起-您先掛接到RAM,然後再用盡電池電量,計算機就會短暫喚醒以將RAM內容傳輸到磁盤並完全關閉電源。”–首先將RAM內容寫到磁盤上實際上更有意義,因為那樣的話,除了電池電量耗盡時,您無需執行其他任何操作即可。這在Windows中稱為混合睡眠,在macOS中稱為安全睡眠(“安全”,因為您可以安全地拔出電池/斷電),並且在Linux中也存在。
-1
Spehro Pefhany
2019-10-10 11:48:47 UTC
view on stackexchange narkive permalink

要補充其他詳盡的答案,請讓我指出,僅僅為存儲器提供電源不足以保證您上次中斷時能夠正確重啟。如果您只是簡單地讓電源偏離處理器的規格,那麼它通常會在某個時候“發瘋”,因為內部邏輯開始出現故障,而GHz速度處理器會在丟棄數據的毫秒級內造成大量數據損壞到它完全靜音的地步(甚至只有一點點就足以使其崩潰)。

因此,您需要監視電路,並且通常需要一些som軟件來監視電源軌並允許有序地啟動和關閉,而不會損壞非易失性或電池供電的SDRAM或RAM。

Mr. de Silva
2019-10-10 11:30:55 UTC
view on stackexchange narkive permalink

由於@rdtsc提供了一個很好的答案,讓我分享一個您可能在想的經驗:

在加拿大的一個偏遠地區,一棟建築物使用了一家知名公司的加熱/冷卻系統。但是電網電力並不可靠。如果斷電,系統將花費超過2個小時的時間來重新啟動(冬季斷電多次發生)。想像一下,在-50°C的寒冷環境下(brrr)需要花費2個小時。我所做的就是將電池板“裝回電池”(UPS)。因此,重新通電後,系統將立即恢復。我相信它仍在使用中...

在問這個問題之前,我還沒有意識到UPS。這就是為什麼我認為RAM可以由電池供電,以便在斷電時可以將主存儲器中的數據保存在EEPROM中。我要說明的是,我正在考慮數據丟失,但是如果使用UPS,則無需擔心斷電,它們將為機器供電。使用電池供電的RAM僅會保留數據,而UPS將允許您使用計算機系統,以便執行緊急備份。
我解決停電問題的方法很狹窄。
大多數UPS具有可以與計算機通信並在斷電等情況下自動關閉計算機的功能。...作為附加信息,在EEPROMS之前,立體聲系統具有存儲芯片,該存儲芯片具有用於連接9V電池的特殊引腳。這使MPU可以在斷電時“記住”調諧等。
cybernard
2019-10-10 01:15:08 UTC
view on stackexchange narkive permalink

如果您真的想保護設備免受斷電的影響,那麼不間斷電源是您的不二之選。APC和許多其他品牌都有1500va UPS,這將使大多數計算機運行10分鐘左右,具體取決於設備的功耗。

UPS是電池,但易於實施,不需要費勁就能將其焊接在上面。

如果要攜帶計算機,可以將其置於睡眠模式,則UPS的使用壽命將更長。

對於PC,您可以使計算機處於休眠狀態,它將RAM的內容寫入硬盤驅動器,並在計算機再次打開時重新加載。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...