當前位置:首頁 » 服務存儲 » 4k存儲空間能安裝多少代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

4k存儲空間能安裝多少代碼

發布時間: 2022-09-24 05:11:03

1. 關於4K硬碟的問題!

自2009年發軔,2010年加速,2011年力爭成為主流,硬碟公司正在從傳統的 512 位元組扇區遷移到更大、更高效的4096位元組扇區(一般稱為4K扇區),國際硬碟設備與材料協會(International Disk Drive Equipment and Materials Association,IDEMA)將之稱為高級格式化。

背景

30多年來,硬碟上儲存的數據都要格式化到小的邏輯塊中,這種邏輯塊稱為扇區。傳統的扇區大小是512位元組。實際上,現代計算機系統很多的設計方面仍假設硬碟扇區採用此基礎格式標准。

傳統扇區格式中包含間隙(Gap)、同步(Sync)和地址標記(Address Mark)、數據和糾錯代碼(EEC)部分。

上圖Gap、Sync、Address Mark、ECC的含義是什麼?

間隙(Gap)部分:間隙,用於分隔扇區。

同步(Sync)部分:同步標記,用於表示扇區開始處並提供計時對齊。

地址標記(Address Mark)部分:地址標記,包含可識別扇區號和位置的數據。還可提供扇區本身的狀態。

數據部分:數據,包含所有用戶數據。

EEC部分:ECC部分包含用於修復或復原讀寫過程可能受損的數據的糾錯代碼。

第2頁:為何要採用高級格式化

多年來,硬碟行業一直採用這種低級別的格式。然而,隨著硬碟容量的不斷增長,扇區大小日漸成為提高硬碟容量和糾錯效率方面的限制性設計因素。例如,將以前的扇區大小和總容量的比率與最近硬碟的扇區大小和總容量的比率相對比就可以發現,扇區解析度已變得非常低。扇區解析度(扇區大小和總存儲大小的百分比)已經非常低,幾乎可以忽略不計。

總容量度量的扇區解析度

管理小型離散數據時,解析度越低越好。但是,現代計算系統中的常用應用管理的都是大型數據塊,實際上遠比傳統 512 位元組扇區大小要大得多。

另外,隨著區域密度的增加,小型 512 位元組扇區在硬碟表面上佔用的空間也將越來越小。從糾錯和介質缺陷風險方面看,更小的空間也會引發問題。如圖 2 所示,硬碟扇區中的數據占據的空間越小,錯誤糾正就會變得越困難,因為同樣大小的介質缺陷對總體數據負載損害的百分比更高,因此需要更大的糾錯強度。

介質缺陷和區域密度

512位元組扇區一般可糾正高達50位元組長度的缺陷。現在,硬碟開始通過先進的區域密度來提高錯誤糾正的上限。因此,為了改善錯誤糾正和實現格式化效率,遷移到較大扇區是硬碟行業內的基本要求。

數年來,存儲行業一直在通力協作,致力於向較大扇區硬碟格式過渡;至少 5 年以前,希捷以及硬碟行業內的同行就已開始努力,並獲得了卓越的成果(見圖 3)。2009 年 12 月,經過與 IDEMA 的通力合作,將高級格式化提名作為 4K 位元組扇區標準的名稱,並獲得批准。此外,所有硬碟製造商還承諾,自 2011 年 1 月開始,所發行的台式機和筆記本電腦產品的新型硬碟平台都採用高級格式化扇區格式。在此之前,高級格式化硬碟將開始逐步進入市場。從 2009 年 12 月起,西部數據就開始推出了高級格式化硬碟;有段時間,希捷也為 OEM 客戶和品牌零售產品中提供過大扇區硬碟,其中值得關注的是 USB 連接外置硬碟,如 Seagate FreeAgent 系列。

高級格式化標准發展的重要里程碑

第3頁:採用4K扇區的長期利益

4K扇區的長期利益

所有硬碟製造商一致同意,到2011年1月,實現向高級格式化扇區設計的過渡,因此,硬碟行業需要適應並採用此更改,以最小化潛在負面副作用。短期內,最終用戶不會明顯感受到硬碟容量的增長。但是,遷移到4K大小扇區後,肯定能為實現更高的區域密度、硬碟容量和更強大的糾錯功能提供一條捷徑。

傳統的512位元組扇區布局

上圖顯示了傳統的512位元組扇區布局。其中,在每個512位元組扇區中,都留有 50 位元組與數據無關的開銷用於EEC,以及另外15位元組的開銷用於間隙(Gap)、同步(Sync)和地址標記(Address Mark)部分。這樣就造成扇區化1格式化效率僅約為88%(512/(512 + 65))。

新的高級格式化標准

新的高級格式化標准使得4K位元組扇區有了不小進步,在4K位元組扇區中,8個傳統512位元組扇區合並為一個4K位元組扇區(見上圖)。

高級格式化標准用於間隙(Gap)、同步(Sync)和地址標記 (Address Mark) 的位元組數與傳統扇區相同,但將 EEC 欄位增加至 100 位元組。這樣,扇區化1格式化效率達到了97%(4096/(4096 + 115)),比傳統扇區提高了將近10%。這些格式化效率將逐漸發揮作用,有助於產生更高的容量和改善數據完整性。

可靠性和錯誤糾正

硬碟扇區的物理大小在不斷縮減,所佔空間也越來越少,但介質缺陷卻沒有同時減少。下圖中顯示了我們認為很小的物體的圖像。但與硬碟讀/寫磁頭的飛行高度相對而言,這些物體顯得非常龐大。比圖中顯示物體更小的微小顆粒也會造成硬碟的介質缺陷。

磁頭飛行高度的小比例對比演示

高級格式化標准中的較大 4K 扇區可將 EEC 塊大小增加一倍2,從 50 位元組增加到100位元組,能夠針對顆粒和介質缺陷為錯誤糾正效率和穩健性帶來必要的改進。

從改進的格式化效率和更加強大的糾錯功能的綜合優勢來看,向4K扇區的過渡很值得。如何管理這種過渡,以最小的副作用獲取長期利益,是硬碟行業的重點所在。

了解過渡到4K的影響

前面提到,在現代計算系統中,很多方面仍然假設扇區都是512位元組。要將整個行業過渡到新的4K標准,同時希望所有原來的假設一下子適應這種改變是不現實的。隨著原生4K扇區的實施,主機和硬碟會逐漸以4K塊來交換數據。那時,硬碟製造商將通過稱為「512 位元組扇區模擬」的技術實現到4K扇區的過渡。

第4頁:模擬硬碟讀寫全過程

512位元組扇區模擬

4K大小扇區的引入將主要依賴於 512 位元組扇區模擬。這個術語是指,將高級格式化中所用4K物理扇區轉換為主機計算系統預期使用的傳統 512 位元組扇區的過程。

由於512位元組模擬不會強制在傳統計算系統中進行復雜的改變,因而是可行的。但是這種模擬會對硬碟性能帶來潛在的負面影響,特別是寫入的數據與 8 個轉換的傳統扇區不對應時。考慮到512位元組模擬所需的讀寫過程,這種影響很明顯。

模擬讀寫過程

以512模擬方式來讀取 4K 扇區格式化硬碟中數據的過程非常直接,如下圖所示。

模擬讀寫過程

可以在硬碟 DRAM 內存中讀取 4K 數據塊以及格式化主機所需的特定 512 位元組虛擬扇區,因此這個過程不會明顯影響到性能。

模擬讀寫過程

寫過程更為復雜一些,特別是主機嘗試寫入的數據為4K物理扇區的子集時。這時,硬碟必須首先讀取包含主機寫入請求目標位置的整個4K扇區,合並現有數據與新數據,然後重新寫入整個4K扇區。

在此情況下,硬碟必須執行額外的機械步驟:讀取4K扇區數據、修改其內容,然後重新寫入數據。此過程稱為「讀取-修改-寫入」(read-modify-write)循環,但這個過程不夠理想,因為它會對硬碟性能造成負面影響。將「讀取-修改-寫入」情況的幾率和頻率降到最低是順利無憂過渡到4K扇區的最重要因素。

「讀取-修改-寫入」預防

如前所述,在數據塊小於或未對齊到4k扇區時,硬碟會為此數據塊發出寫入命令,此時會發生「讀取-修改-寫入」的情況。這種小於4K的寫入請求稱為超短幀。512位元組模擬中出現超短幀的根本原因有兩個。

1.由於邏輯分區和物理分區未對齊,導致寫入請求不對齊。

2.寫入請求的數據小於4K

第5頁:對齊硬碟分區和未對齊硬碟分區差別

對齊硬碟分區和未對齊硬碟分區

到目前為止,我們尚未討論主機系統和硬碟如何針對介質上的扇區位置進行通信。我們現在就來介紹一下邏輯塊地址(Logical Block Address,LBA)。每個512位元組扇區都分配了唯一的LBA,根據硬碟大小,數字可以是從0到所需的數
字。主機會使用分配的LBA來請求特定的數據塊。主機請求寫入數據時,會在寫入結束時會返回一個LBA地址,告知主機數據的位置。這對於4K扇區的過渡非常重要,因為主機LBA起點位置可以有八種可能性。

當LBA 0與4K物理扇區中的第一個512位元組虛擬塊對齊時,512位元組模擬的邏輯塊到物理塊對齊情況稱為Alignment 0。另一種可能出現的對齊情況是,LBA 0與4K物理扇區中第二個512位元組虛擬塊對齊。這種情況稱為 Alignment 1,下圖比較了Alignment 1 Alignment 0 兩種對齊情況。另外,還有六種可能出現的分區不對齊情況,會引起與Alignment 1情況相似的「讀取-修改-寫入」事件。

Alignment 0情況與高級格式化標准中新的4K扇區完全符合。因為硬碟能夠輕松將8個相鄰的512位元組扇區映射到一個4K扇區。實現此映射的方法是,將512位元組的寫入請求儲存在硬碟的緩存中,等接收到8個連續的512位元組數據塊時再將其寫入到4K扇區(8個連續的512位元組塊剛好構成一個4K扇區)。由於現代計算應用要處理大量的數據,這些數據一般都超過4K,因此很少發生「超短幀」的情況。但是,Alignment 1卻是完全不同的狀況。

當創建的硬碟分區出現不對齊(如圖 9 所示)的情況時,會引起「讀取-修改-寫入」循環,影響硬碟性能。這是在實現高級格式化硬碟的過程中應主要避免的情況,我們稍後對此進行討論。

小型寫入

現代計算應用中的數據一般都大大超過512位元組,如文檔、圖片和視頻流等。因此,硬碟會將這些寫入請求存儲在緩存中,直到這些連續的512位元組數據塊能夠組成一個4K扇區。只要硬碟分區是對齊的,就可以輕松地將512位元組扇區映射到4K扇區,而不會對性能產生任何影響。但是,某些低級別的處理會強制硬碟處理「超短幀」狀況(這種狀況與未對齊分區無關)。這種情況很少見,僅當主機發出小於 4K 的離散寫入請求時發生。低級別的處理通常都是處理文件系統、日誌的操作系統級別的活動,或是類似的低級別活動。通常來說,這些活動發生的幾率很小,因此不會明顯影響到總體性能。但仍然建議系統設計人員考慮對這些過程進行適當修改,以便在實現4K過渡後能最大化硬碟性能。

第6頁:你的系統版本是否可識別4K

准備和管理4K過渡

我們已經了解了遷移到4K扇區的優勢以及對性能的潛在影響,接下來就該查看行業如何有效地管理過渡。在Windows和Linux是現代計算中部署的兩種最受歡迎的操作系統,在這兩種環境下我們能更好地討論這個主題。

管理到4K扇區的過渡中最重要的一個方面與上文討論的對齊問題有很大關系。高級格式化硬碟在 Alignment 0 情況下運行完好,這時物理塊和邏輯塊的起始位置相同。創建硬碟分區時便已實現了對齊。分區創建軟體分為兩大類:

1.各Windows操作系統版本

2.硬碟分區實用程序

使用Windows操作系統創建分區時,有三種Windows版本值得一提:Windows
XP、Windows Vista 和 Windows 7。Microsoft 早已投身到致力於規劃過渡到更大扇區的社區中。因此,從Windows Vista Service Pack 1起,Microsoft 開始發布可兼容4K扇區的軟體。可創建 Alignment 0 狀態(符合高級格式化標准)的分區的軟體稱為「可識別4K」的軟體。下表說明了與當前各 Microsoft Windows 操作系統版本的相關情況。

操作系統版本是否可識別4K?

很清楚,配有Windows最新版本的新計算機系統相對更適合使用高級格式化硬碟。但是,對於仍然使用Windows XP或Service Pack 1 之前的Windows Vista的系統來說,操作系統所創建的分區性能很可能顯著下降。

除Windows操作系統較早版本所創建的分區可能出現潛在不對齊情況外,在系統構建商、OEM、增值經銷商和 IT 管理員廣泛使用的軟體實用程序中,有很多軟體實用程序也能夠引發分區不對齊情況。事實上,通過這些實用程序創建的分區比通過 Windows 操作系統本省創建的分區還要普遍。因此,創建不對齊分區,從而導致使用4K扇區時環境中硬碟性能下降的風險非常明顯。更麻煩的是,如今系統中的硬碟一般都包含多個硬碟分區。這意味著必須使用可識別4K的分區軟體創建硬碟上的每個分區,才能確保適當對齊,並保障性能。圖 10 顯示了使用不能識別4K的軟體創建多硬碟分區時可能出現的結果。

多種分區和對齊情況

第7頁:如何處理不對齊狀態

處理不對齊狀態

有三種可行方法可避免和/或管理不對齊狀態(不對齊狀態對硬碟性能具有潛在影響)。

1.使用最新版本的 Windows 操作系統或聯系分區實用程序供應商來獲取可識別 4K 版本的軟體。

2.使用硬碟實用程序來重新對齊磁碟分區。

3.不管是什麼對齊狀態,將硬碟性能管理交與您的硬碟供應商負責。

使用可識別4K的Windows版本來創建硬碟分區,這是避免不對齊狀態的一種簡單直接的方法。硬碟分區創建軟體實用程序供應商應該能夠告訴您是否提供了可識別4k版本的軟體。如果是,那麼遷移到可識別4K的版本可免後顧之憂。

為解決這個問題,有些硬碟供應商提供了能夠檢測現有硬碟分區,並根據需要重新進行對齊的實用程序。這種變通方法要花費更多時間,並且系統的構建或升級流程步驟也更加繁瑣。

最後,硬碟構建商要開發更加復雜的方法,來管理不對齊狀態,同時還要避免對性能造成負面影響。

由於向高級格式化硬碟的過渡勢在必行,所有這些方法都將在最大化行業利益、同時避免潛在性能影響方面起到重要作用。

在Linux環境中管理4K扇區

在Windows環境中管理到4K扇區過渡的關鍵策略同樣適用於Linux。多數 Linux系統用戶都能夠訪問源代碼,根據他們的特定需要來定製操作系統。因此,Linux用戶能夠主動更新其系統,以便恰當地管理高級格式化硬碟。

通常,需要恰當地創建能與高級格式化硬碟良好對齊的磁碟分區,還需要最小化可生成超短幀的小型系統級寫入(與對齊問題無關),但是修改Linux系統後,就可以大幅度避免這些工作。

為了支持高級格式化硬碟,對 Linux 內核和實用程序均進行了更改。這些更改可確保高級格式化硬碟上的所有分區都能在 4K 扇區分界上得到完全對齊。版本 2.6.31 或更高版本的內核支持高級格式化硬碟。以下 Linux 實用程序支持高級格式化硬碟的分區和格式化:

Fdisk:GNU Fdisk 命令行實用程序可對硬碟進行分區。
版本1.2.3和更高版本支持高級格式化硬碟。

Parted:GNU Parted 圖形實用程序可對硬碟進行分區。
版本 2.1 和更高版本支持高級格式化硬碟。

第8頁:結論

從傳統512位元組扇區進行行業過渡勢在必行。硬碟製造商一致同意,在2011年1月前,筆記本電腦和台式機細分市場發行的新型產品均採用高級格式化標准。

這種過渡為硬碟工程師提供了另一種工具,能夠繼續推動改善區域密度和增強糾錯功能。採用新技術後,硬碟產品將繼續提供更高的容量、更低的每GB成本和一如既往的可靠性級別,消費者定會從中獲益。

具備充分相關知識的存儲社區是實現順利過渡的關鍵,可以消除潛在的性能隱患。我們需要推廣使用可識別 4K 的硬碟分區工具,這是順利過渡到高級格式化所使用的4K扇區的至關重要的因素。作為構建或配置計算機的系統構建商、OEM、集成商、IT 專家甚至終端用戶,都應該確保:

使用 Windows Vista(Service Pack 1 或更高版本)或 Windows 7 創建硬碟分區。

使用第三方軟體或實用程序創建硬碟分區時,請與供應商聯系,確定已將其更新為可識別 4K 的軟體或實用程序。

如果您的客戶經常對系統進行重新映像,請建議他們確定使用的是可識別4K的映像實用程序。

如果您使用的是Linux,請與Linux供應商或工程部門聯系,確定您的系統已經過更改,能夠識別4K。

與您的硬碟供應商聯系,獲取在系統中使用高級格式化硬碟的任何其他建議或
指導。

和同行及客戶一起,藉助整個存儲行業的長期潛在優勢,我們能夠順利、高效地過渡到4K高級格式化扇區。

2. 4K的存儲空間能裝下多少代碼

看指令集和最終機器碼,確定指令格式是8 16 32位
51一般是8位 有單位元組指令到3位元組指令
匯編里 INC 單位元組 MOV 雙位元組 LCALL 三位元組
要記住C代碼不好換算,因為看不到保護現場的進棧出棧還有一些操作符函數比如'%','|'
要就自己算了,我只能幫你到這了...

3. 「MCS-51系列單片機中,片內程序存儲器為4KB」,而同時又說「程序存儲器的定址空間為64KB」,求區別!

4K的存儲器表示這個51晶元的實際硬體的容量,你的程序受這個4K限制;
64K是51可以處理的地址能力范圍,這個是潛力而已。
有能力並不表示要把所有潛力轉化為實際的實力啊。

實際上,通過硬體電路的設計,是可以突破64K的限制的,不過這是另一方面的問題了。

4. 為什麼單片機只有4k或128kb能滿足要求嗎

不能以通用電腦的存儲容量概念來看待單片機,在單片機上一個有經驗的開發者即使用4K代碼容量也可以開發一個功能強大的應用系統,更別說128K已經是非常奢侈的容量了,本人曾見識過一個功能十分強大的監控程序僅僅使用了2K存儲空間,其代碼之精煉高效遠超你我想像。

5. 單片機內部程序存儲器ROM,4K的存儲容量是什麼

單片機內如ROM4K的存儲容量也就是4096個位元組的容量地址空間是0000H~0FFFH主要存儲的是程序、一些常量、數據表等等。

6. 80c51單片機的RAMROM儲存空間有多少

摘要 80C51的ROM和RAM地址空間都是0000H~FFFFH。

7. 1KB的內存空間能存儲512個漢字內碼,約存多少個24×24點陣漢字的字形碼

14個。

漢字點陣字編碼中,一個點就是一位。所以24*24點陣漢字一個就是24*24 bit。

換成位元組就是72,所以1KB能容納這樣的字是1024/72=14個左右。


(7)4k存儲空間能安裝多少代碼擴展閱讀:

因為漢字處理系統要保證中西文的兼容,當系統中同時存在ASCII碼和漢字國標碼時,將會產生二義性。例如:有兩個位元組的內容為30H和21H,它既可表示漢字「啊」的國標碼,又可表示西文「0」和「!」的ASCII碼。為此,漢字機內碼應對國標碼加以適當處理和變換。

國標碼的機內碼為二位元組長的代碼,它是在相應國標碼的每個位元組最高位上加「1」,即:

漢字機內碼=漢字國標碼+8080H。

例如,上述「啊」字的國標碼是3021H,其漢字機內碼則是B0A1H。漢字機內碼的基礎為漢字國標碼。

漢字機內碼、國標碼和區位碼三者之間的關系為:

區位碼(十進制)的兩個位元組分別轉換為十六進制後加2020H得到對應的國標碼;機內碼是漢字交換碼(國標碼)兩個位元組的最高位分別加1,即漢字交換碼(國標碼)的兩個位元組分別加80H得到對應的機內碼;區位碼(十進制)的兩個位元組分別轉換為十六進制後加A0H得到對應的機內碼。

8. 我用keil寫了一個程序,單片機是4K的。怎麼看我使用了多少

你看Keil 編譯後,下面那個code
Program Size: Code=5048 data=168 xdata=572

那個code的大小,就是你使用了多少的ROM

9. 若從存儲器的10000H地址開始分配段區,要求代碼段佔用4K位元組空間,數據段佔2K位元組空間、

cs ds ss分別是1000 h1100h 1180h