1. 能解釋一下內存存取嗎
內存作為計算機的重要部件,近幾年發展迅速,從SDRAM到如今的DDR3,內存經歷了多個技術時代。本文就內存的發展簡單講解內存的存儲原理和內存技術發展歲遇到的瓶頸。
內存和顯存被統稱為記憶體(Memory),全名是動態隨機存取記憶體(DynamicRandomAccessMemory,DRAM)。基本原理就是利用電容內存儲電荷的多寡來代表0和1,這就是一個二進制位元(bit),內存的最小單位。
DRAM的結構可謂是簡單高效,每一個bit只需要一個晶體管加一個電容。但是電容不可避免的存在漏電現象,如果電荷不足會導致數據出錯,因此電容必須被周期性的刷新(預充電),這也是DRAM的一大特點。而且電容的充放電需要一個過程,刷新頻率不可能無限提升(頻障),這就導致DRAM的頻率很容易達到上限,即便有先進工藝的支持也收效甚微。
「上古」時代的FP/EDO內存,由於半導體工藝的限制,頻率只有25MHz/50MHz,自SDR以後頻率從66MHz一路飆升至133MHz,終於遇到了難以逾越的障礙。此後所誕生的DDR1/2/3系列,它們存儲單元官方頻率(JEDEC制定)始終在100MHz-200MHz之間徘徊,非官方(超頻)頻率也頂多在250MHz左右,很難突破300MHz。事實上高頻內存的出錯率很高、穩定性也得不到保證,除了超頻跑簡單測試外並無實際應用價值。
既然存儲單元的頻率(簡稱內核頻率,也就是電容的刷新頻率)不能無限提升,那麼就只有在I/O(輸入輸出)方面做文章,通過改進I/O單元,這就誕生了DDR1/2/3、GDDR1/2/3/4/5等形形色色的內存種類。
通常大家所說的DDR-400、DDR2-800、DDR3-1600等,其實並非是內存的真正頻率,而是業界約定俗成的等效頻率,這些DDR1/2/3內存相當於老牌SDR內存運行在400MHz、800MHz、1600MHz時的帶寬,因此頻率看上去很誇張,其實真正的內核頻率都只有200MHz而已!
內存有三種不同的頻率指標,它們分別是核心頻率、時鍾頻率和有效數據傳輸頻率。核心頻率即為內存Cell陣列(MemoryCellArray,即內部電容)的刷新頻率,它是內存的真實運行頻率;時鍾頻率即I/OBuffer(輸入/輸出緩沖)的傳輸頻率;而有效數據傳輸頻率就是指數據傳送的頻率(即等效頻率)。
●SDR和DDR1/2/3全系列頻率對照表:
內存數據預取技術示意圖:並行轉串列
這種存儲陣列內部的實際位寬較大,但是數據輸出位寬卻比較小的設計,就是所謂的數據預取技術,它可以讓內存的數據傳輸頻率倍增。試想如果我們把一條細水管安裝在粗水管之上,那麼水流的噴射速度就會翻幾倍。
明白了數據預取技術的原理之後,再來看看DDR1/2/3內存的定義,以及三種頻率之間的關系,就豁然開朗了:
●SDRAM(SynchronousDRAM):同步動態隨機存儲器
之所以被稱為「同步」,因為SDR內存的存儲單元頻率、I/O頻率及數據傳輸率都是相同的,比如經典的PC133,三種頻率都是133MHz。
SDR在一個時鍾周期內只能讀/寫一次,只在時鍾上升期讀/寫數據,當同時需要讀取和寫入時,就得等待其中一個動作完成之後才能繼續進行下一個動作。
●DDR(DoubleDateRateSDRAM):雙倍速率同步動態隨機存儲器
雙倍是指在一個時鍾周期內傳輸兩次數據,在時鍾的上升期和下降期各傳輸一次數據(通過差分時鍾技術實現),在存儲陣列頻率不變的情況下,數據傳輸率達到了SDR的兩倍,此時就需要I/O從存儲陣列中預取2bit數據,因此I/O的工作頻率是存儲陣列頻率的兩倍。
DQ頻率和I/O頻率是相同的,因為DQ在時鍾上升和下降研能傳輸兩次數據,也是兩倍於存儲陣列的頻率。
●DDR2(DDR2SDRAM):第二代雙倍速率同步動態隨機存儲器
DDR2在DDR1的基礎上,數據預取位數從2bit擴充至4bit,此時上下行同時傳輸數據(雙倍)已經滿足不了4bit預取的要求,因此I/O控制器頻率必須加倍。
至此,在存儲單元頻率保持133-200MHz不變的情況下,DDR2的實際頻率達到了266-400MHz,而(等效)數據傳輸率達到了533-800MHz。
●DDR3(DDR3SDRAM):第三代雙倍速率同步動態隨機存儲器
DDR3就更容易理解了,數據預取位數再次翻倍到8bit,同理I/O控制器頻率也加倍。此時,在存儲單元頻率保持133-200MHz不變的情況下,DDR3的實際頻率達到了533-800MHz,而(等效)數據傳輸率高達1066-1600MHz。
綜上可以看出,DDR1/2/3的發展是圍繞著數據預取而進行的,同時也給I/O控制器造成了不小的壓力,雖然存儲單元的工作頻率保持不變,但I/O頻率以級數增長,我們可以看到DDR3的I/O頻率已逼近1GHz大關,此時I/O頻率成為了新的瓶頸,如果繼續推出DDR4(注意不是GDDR4,兩者完全不是同一概念,後文會有詳細解釋)的話,將會受到很多未知因素的制約,必須等待更先進的工藝或者新解決方案的出現才有可能延續DDR的生命。
2. 存儲器的原理是什麼
存儲器講述工作原理及作用
介紹
存儲器(Memory)是現代信息技術中用於保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統中,具有實物形式的存儲設備也叫存儲器,如內存條、TF卡等。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。外存通常是磁性介質或光碟等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。
2.按存取方式分類
(1)隨機存儲器(RAM):如果存儲器中任何存儲單元的內容都能被隨機存取,且存取時間與存儲單元的物理位置無關,則這種存儲器稱為隨機存儲器(RAM)。RAM主要用來存放各種輸入/輸出的程序、數據、中間運算結果以及存放與外界交換的信息和做堆棧用。隨機存儲器主要充當高速緩沖存儲器和主存儲器。
(2)串列訪問存儲器(SAS):如果存儲器只能按某種順序來存取,也就是說,存取時間與存儲單元的物理位置有關,則這種存儲器稱為串列訪問存儲器。串列存儲器又可分為順序存取存儲器(SAM)和直接存取存儲器(DAM)。順序存取存儲器是完全的串列訪問存儲器,如磁帶,信息以順序的方式從存儲介質的始端開始寫入(或讀出);直接存取存儲器是部分串列訪問存儲器,如磁碟存儲器,它介於順序存取和隨機存取之間。
(3)只讀存儲器(ROM):只讀存儲器是一種對其內容只能讀不能寫入的存儲器,即預先一次寫入的存儲器。通常用來存放固定不變的信息。如經常用作微程序控制存儲器。目前已有可重寫的只讀存儲器。常見的有掩模ROM(MROM),可擦除可編程ROM(EPROM),電可擦除可編程ROM(EEPROM).ROM的電路比RAM的簡單、集成度高,成本低,且是一種非易失性存儲器,計算機常把一些管理、監控程序、成熟的用戶程序放在ROM中。
3.按信息的可保存性分類
非永久記憶的存儲器:斷電後信息就消失的存儲器,如半導體讀/寫存儲器RAM。
永久性記憶的存儲器:斷電後仍能保存信息的存儲器,如磁性材料做成的存儲器以及半導體ROM。
4.按在計算機系統中的作用分
根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常採用多級存儲器體系結構,即使用高速緩沖存儲器、主存儲器和外存儲器。
能力影響
從寫命令轉換到讀命令,在某個時間訪問某個地址,以及刷新數據等操作都要求數據匯流排在一定時間內保持休止狀態,這樣就不能充分利用存儲器通道。此外,寬並行匯流排和DRAM內核預取都經常導致不必要的大數據量存取。在指定的時間段內,存儲器控制器能存取的有用數據稱為有效數據速率,這很大程度上取決於系統的特定應用。有效數據速率隨著時間而變化,常低於峰值數據速率。在某些系統中,有效數據速率可下降到峰值速率的10%以下。
通常,這些系統受益於那些能產生更高有效數據速率的存儲器技術的變化。在CPU方面存在類似的現象,最近幾年諸如AMD和 TRANSMETA等公司已經指出,在測量基於CPU的系統的性能時,時鍾頻率不是唯一的要素。存儲器技術已經很成熟,峰值速率和有效數據速率或許並不比以前匹配的更好。盡管峰值速率依然是存儲器技術最重要的參數之一,但其他結構參數也可以極大地影響存儲器系統的性能。
影響有效數據速率的參數
有幾類影響有效數據速率的參數,其一是導致數據匯流排進入若干周期的停止狀態。在這類參數中,匯流排轉換、行周期時間、CAS延時以及RAS到CAS的延時(tRCD)引發系統結構中的大部分延遲問題。
匯流排轉換本身會在數據通道上產生非常長的停止時間。以GDDR3系統為例,該系統對存儲器的開放頁不斷寫入數據。在這期間,存儲器系統的有效數據速率與其峰值速率相當。不過,假設100個時鍾周期中,存儲器控制器從讀轉換到寫。由於這個轉換需要6個時鍾周期,有效的數據速率下降到峰值速率的 94%。在這100個時鍾周期中,如果存儲器控制器將匯流排從寫轉換到讀的話,將會丟失更多的時鍾周期。這種存儲器技術在從寫轉換到讀時需要15個空閑周期,這會將有效數據速率進一步降低到峰值速率的79%。表1顯示出針幾種高性能存儲器技術類似的計算結果。
顯然,所有的存儲器技術並不相同。需要很多匯流排轉換的系統設計師可以選用諸如XDR、RDRAM或者DDR2這些更高效的技術來提升性能。另一方面,如果系統能將處理事務分組成非常長的讀寫序列,那麼匯流排轉換對有效帶寬的影響最小。不過,其他的增加延遲現象,例如庫(bank)沖突會降低有效帶寬,對性能產生負面影響。
DRAM技術要求庫的頁或行在存取之前開放。一旦開放,在一個最小周期時間,即行周期時間(tRC)結束之前,同一個庫中的不同頁不能開放。對存儲器開放庫的不同頁存取被稱為分頁遺漏,這會導致與任何tRC間隔未滿足部分相關的延遲。對於還沒有開放足夠周期以滿足tRC間隙的庫而言,分頁遺漏被稱為庫沖突。而tRC決定了庫沖突延遲時間的長短,在給定的DRAM上可用的庫數量直接影響庫沖突產生的頻率。
大多數存儲器技術有4個或者8個庫,在數十個時鍾周期具有tRC值。在隨機負載情況下,那些具有8個庫的內核比具有4個庫的內核所發生的庫沖突更少。盡管tRC與庫數量之間的相互影響很復雜,但是其累計影響可用多種方法量化。
存儲器讀事務處理
考慮三種簡單的存儲器讀事務處理情況。第一種情況,存儲器控制器發出每個事務處理,該事務處理與前一個事務處理產生一個庫沖突。控制器必須在打開一個頁和打開後續頁之間等待一個tRC時間,這樣增加了與頁循環相關的最大延遲時間。在這種情況下的有效數據速率很大程度上決定於I/O,並主要受限於DRAM內核電路。最大的庫沖突頻率將有效帶寬削減到當前最高端存儲器技術峰值的20%到30%。
在第二種情況下,每個事務處理都以隨機產生的地址為目標。此時,產生庫沖突的機會取決於很多因素,包括tRC和存儲器內核中庫數量之間的相互作用。tRC值越小,開放頁循環地越快,導致庫沖突的損失越小。此外,存儲器技術具有的庫越多,隨機地址存取庫沖突的機率就越小。
第三種情況,每個事務處理就是一次頁命中,在開放頁中定址不同的列地址。控制器不必訪問關閉頁,允許完全利用匯流排,這樣就得到一種理想的情況,即有效數據速率等於峰值速率。
第一種和第三種情況都涉及到簡單的計算,隨機情況受其他的特性影響,這些特性沒有包括在DRAM或者存儲器介面中。存儲器控制器仲裁和排隊會極大地改善庫沖突頻率,因為更有可能出現不產生沖突的事務處理,而不是那些導致庫沖突的事務處理。
然而,增加存儲器隊列深度未必增加不同存儲器技術之間的相對有效數據速率。例如,即使增加存儲器控制隊列深度,XDR的有效數據速率也比 GDDR3高20%。存在這種增量主要是因為XDR具有更高的庫數量以及更低的tRC值。一般而言,更短的tRC間隔、更多的庫數量以及更大的控制器隊列能產生更高的有效帶寬。
實際上,很多效率限制現象是與行存取粒度相關的問題。tRC約束本質上要求存儲器控制器從新開放的行中存取一定量的數據,以確保數據管線保持充滿。事實上,為保持數據匯流排無中斷地運行,在開放一個行之後,只須讀取很少量的數據,即使不需要額外的數據。
另外一種減少存儲器系統有效帶寬的主要特性被歸類到列存取粒度范疇,它規定了每次讀寫操作必須傳輸的數據量。與之相反,行存取粒度規定每個行激活(一般指每個RAS的CAS操作)需要多少單獨的讀寫操作。列存取粒度對有效數據速率具有不易於量化的巨大影響。因為它規定一個讀或寫操作中需要傳輸的最小數據量,列存取粒度給那些一次只需要很少數據量的系統帶來了問題。例如,一個需要來自兩列各8位元組的16位元組存取粒度系統,必須讀取總共32位元組以存取兩個位置。因為只需要32個位元組中的16個位元組,系統的有效數據速率降低到峰值速率的50%。匯流排帶寬和脈沖時間長度這兩個結構參數規定了存儲器系統的存取粒度。
匯流排帶寬是指連接存儲器控制器和存儲器件之間的數據線數量。它設定最小的存取粒度,因為對於一個指定的存儲器事務處理,每條數據線必須至少傳遞一個數據位。而脈沖時間長度則規定對於指定的事務處理,每條數據線必須傳遞的位數量。每個事務處理中的每條數據線只傳一個數據位的存儲技術,其脈沖時間長度為1。總的列存取粒度很簡單:列存取粒度=匯流排寬度×脈沖時間長度。
很多系統架構僅僅通過增加DRAM器件和存儲匯流排帶寬就能增加存儲系統的可用帶寬。畢竟,如果4個400MHz數據速率的連接可實現 1.6GHz的總峰值帶寬,那麼8個連接將得到3.2GHz。增加一個DRAM器件,電路板上的連線以及ASIC的管腳就會增多,總峰值帶寬相應地倍增。
首要的是,架構師希望完全利用峰值帶寬,這已經達到他們通過物理設計存儲器匯流排所能達到的最大值。具有256位甚或512位存儲匯流排的圖形控制器已並不鮮見,這種控制器需要1,000個,甚至更多的管腳。封裝設計師、ASIC底層規劃工程師以及電路板設計工程師不能找到採用便宜的、商業上可行的方法來對這么多信號進行布線的矽片區域。僅僅增加匯流排寬度來獲得更高的峰值數據速率,會導致因為列存取粒度限制而降低有效帶寬。
假設某個特定存儲技術的脈沖時間長度等於1,對於一個存儲器處理,512位寬系統的存取粒度為512位(或者64位元組)。如果控制器只需要一小段數據,那麼剩下的數據就被浪費掉,這就降低了系統的有效數據速率。例如,只需要存儲系統32位元組數據的控制器將浪費剩餘的32位元組,進而導致有效的數據速率等於50%的峰值速率。這些計算都假定脈沖時間長度為1。隨著存儲器介面數據速率增加的趨勢,大多數新技術的最低脈沖時間長度都大於1。
選擇技巧
存儲器的類型將決定整個嵌入式系統的操作和性能,因此存儲器的選擇是一個非常重要的決策。無論系統是採用電池供電還是由市電供電,應用需求將決定存儲器的類型(易失性或非易失性)以及使用目的(存儲代碼、數據或者兩者兼有)。另外,在選擇過程中,存儲器的尺寸和成本也是需要考慮的重要因素。對於較小的系統,微控制器自帶的存儲器就有可能滿足系統要求,而較大的系統可能要求增加外部存儲器。為嵌入式系統選擇存儲器類型時,需要考慮一些設計參數,包括微控制器的選擇、電壓范圍、電池壽命、讀寫速度、存儲器尺寸、存儲器的特性、擦除/寫入的耐久性以及系統總成本。
選擇存儲器時應遵循的基本原則
1、內部存儲器與外部存儲器
一般情況下,當確定了存儲程序代碼和數據所需要的存儲空間之後,設計工程師將決定是採用內部存儲器還是外部存儲器。通常情況下,內部存儲器的性價比最高但靈活性最低,因此設計工程師必須確定對存儲的需求將來是否會增長,以及是否有某種途徑可以升級到代碼空間更大的微控制器。基於成本考慮,人們通常選擇能滿足應用要求的存儲器容量最小的微控制器,因此在預測代碼規模的時候要必須特別小心,因為代碼規模增大可能要求更換微控制器。目前市場上存在各種規模的外部存儲器器件,我們很容易通過增加存儲器來適應代碼規模的增加。有時這意味著以封裝尺寸相同但容量更大的存儲器替代現有的存儲器,或者在匯流排上增加存儲器。即使微控制器帶有內部存儲器,也可以通過增加外部串列EEPROM或快閃記憶體來滿足系統對非易失性存儲器的需求。
2、引導存儲器
在較大的微控制器系統或基於處理器的系統中,設計工程師可以利用引導代碼進行初始化。應用本身通常決定了是否需要引導代碼,以及是否需要專門的引導存儲器。例如,如果沒有外部的定址匯流排或串列引導介面,通常使用內部存儲器,而不需要專門的引導器件。但在一些沒有內部程序存儲器的系統中,初始化是操作代碼的一部分,因此所有代碼都將駐留在同一個外部程序存儲器中。某些微控制器既有內部存儲器也有外部定址匯流排,在這種情況下,引導代碼將駐留在內部存儲器中,而操作代碼在外部存儲器中。這很可能是最安全的方法,因為改變操作代碼時不會出現意外地修改引導代碼。在所有情況下,引導存儲器都必須是非易失性存儲器。
可以使用任何類型的存儲器來滿足嵌入式系統的要求,但終端應用和總成本要求通常是影響我們做出決策的主要因素。有時,把幾個類型的存儲器結合起來使用能更好地滿足應用系統的要求。例如,一些PDA設計同時使用易失性存儲器和非易失性存儲器作為程序存儲器和數據存儲器。把永久的程序保存在非易失性ROM中,而把由用戶下載的程序和數據存儲在有電池支持的易失性DRAM中。不管選擇哪種存儲器類型,在確定將被用於最終應用系統的存儲器之前,設計工程師必須仔細折中考慮各種設計因素。
3. 硬體預取要不要打開
硬體預取要打開。
單可以更換SSD固態硬碟。只是官方賣出來的沒有直接就裝SSd固態硬碟的。你可以自己去買固態硬碟來更換你的機械硬碟,然後把機械硬碟賣掉。
軟體軟體預取是指在編譯時由編譯器加入預取指令,提前將下一級存儲器中的數據取回。預取指令需要計算出准確的預取地址。
硬體預取:
硬體預取是由硬體根據訪存的歷史信息,對未來可能的訪存單元預先取入Cache,從而在數據真正被用到時不會造成Cache失效。
但是由於只是基於訪存的歷史信息,硬體預取會取回大量無用的Cache塊,佔用訪存帶寬,還會導致嚴重的Cache污染問題。由於硬體預取是基於訪存的歷史信息來預測未來的訪存模式,從而可以在數據使用之前將其從下一級的存儲器中取回。
因為加入了大量的預取指令,同時顯示的預取指令需要計算出准確的預取地址,從而導致不能及時的發出預取指令以足夠隱藏訪存延時,影響了性能的提高。並且必須使額外的 預取指令開銷不能超過預取所能帶來的效益, 否則得不償失。
4. 你好,主cpu像ddr寫入數據時,又是怎麼提現預取技術呢 謝謝
你這個問題可以寫一本書~(而且很可能真有不止一本)因為這個課題太大
一般簡單說~硬體預取+軟體預取
硬體--根據歷史信息--估算--提取待用 --但是由於只是基於訪存的歷史信息,硬體預取會取回大量無用的Cache塊。。。。。
軟體---軟體預取是指在編譯時由編譯器加入預取指令,提前將下一級存儲器中的數據取回。預取指令需要計算出准確的預取地址。。。。。
從而可見~就算軟硬協同~准確率和無效操作。。。這就引出---各種演算法
大致意思~~
5. 存儲器有哪些主要技術指標
主存儲器的主要有以下技術指標:
1、存儲容量:在一個存儲器中可以容納的存儲單元總數、存儲空間的大小、字數、位元組數。
2、存取時間:啟動到完成一次存儲器操作所經歷的時間、主存的速度。
3、存儲周期:連續啟動兩次操作所需間隔的最小時間、主存的速度。
4、存儲器帶寬:單位時間里存儲器所存取的信息量,、數據傳輸速率技術指標。
主存儲器的性能指標主要是存儲容量、存取時間、存儲周期和存儲器帶寬。
字存儲單元即存放一個機器字的存儲單元,相應的地址稱為字地址。一個機器字可以包含數個位元組,所以一個存儲單元也可包含數個能夠單獨編址的位元組地址。
下面列出主存儲器的主要幾項技術指標:
主存儲器的主要幾項技術指標指標 含義 表現 單位 存儲容量 在一個存儲器中可以容納的存儲單元總數 存儲空間的大小 字數,位元組數 存取時間 啟動到完成一次存儲器操作所經歷的時間 主存的速度 ns 存儲周期 連續啟動兩次操作所需間隔的最小時間 主存的速度 ns 存儲器帶寬 單位時間里存儲器所存取的信息量, 數據傳輸速率技術指標 位/秒,位元組/秒 主存儲器的性能指標主要是存儲容量、存取時間和存儲周期。
存放一個機器字的存儲單元,通常稱為字存儲單元,相應的單元地址叫字地址。而存放一個位元組的單元,稱為位元組存儲單元,相應的地址稱為位元組地址。如果計算機中可編址的最小單位是字存儲單元,則該計算機稱為按字編址的計算機。如果計算機中可編址的最小單位是位元組,則該計算機稱為按位元組編址的計算機。一個機器字可以包含數個位元組,所以一個存儲單元也可以包含數個能夠單獨編址的位元組地址。例如,PDP-11系列計算機,一個16位二進制的字存儲單元可存放兩個位元組,可以按字地址定址,也可以按位元組地址定址。當用位元組地址定址時,16位的存儲單元占兩個位元組地址。
在一個存儲器中容納的存儲單元總數通常稱為該存儲器的存儲容量。存儲容量用字數或位元組數(B)來表示,如64K字,512KB,10MB。外存中為了表示更大的存儲容量,採用MB,GB,TB等單位。其中1KB=2B,1MB=2B,1GB=2B,1TB=2B。B表示位元組,一個位元組定義為8個二進制位,所以計算機中一個字的字長通常為8的倍數。存儲容量這一概念反映了存儲空間的大小。
存儲時間有稱存儲器訪問時間,是指從啟動一次存儲器操作到完成該操作所經歷的時間。具體講,從一次讀操作命令發出到該操作完成,將數據讀入數據緩沖寄存器為止所經歷的時間,即為存儲器存取時間。
存儲周期是指連續啟動兩次獨立的存儲器操作(如連續兩次讀操作)所需間隔的最小時間。通常,存儲周期略大於存儲時間,其時間單位為ns
6. 當代計算機為什麼要採用流水線技術和cache存儲技術
總的來說,目的都是一個,充分利用計算資源,即充分利用cpu,防止其閑置
效果都是使計算機更快,計算能力更強
那麼,我們首先要定位到有哪些計算資源是被浪費掉的。
1.對於cpu內部,假設一條指令要經過 取指令,解碼指令,執行指令,存儲訪問,寫回數據 五個步驟完成,且每個步驟都有對應的部件。沒有流水線技術的情況下,當cpu執行一條指令時,你會發現只有一個部件在運行,其餘四個都閑著——這些資源都被閑置了。
於是流水線技術橫空出世了,讓這些閑置的部件都運作了起來。具體技術細節課本上有,我就不贅述了。
2.如果所有程序都只是加減乘除邏輯運算,那麼計算機會很快解決,但是,一旦涉及存儲器訪問就會出現麻煩(比如指令中的操作數在存儲器中),因為從內存讀數據很慢(相對於cpu正常工作速度),得不到數據cpu只能閑置著。
而cache存儲技術就是為了解決這個問題(cpu速度與存儲器存取速度不匹配)而出現的。小而快速的cache能對cpu的數據要求做出快速應答,使cpu不再受等待數據(數據飢餓)的困擾。
技術延拓
技術的出發點比較純粹,而後來許多更復雜的流水線技術已經不再滿足於解決資源利用問題,他們只有一個目的: 讓cpu更快!
於是各種流水線的「奇技淫巧」(指令級的並行,超標量,超流水等)就出現了~
cache方面出現了預取,非阻塞,流水cache等技術
在基礎原理熟練掌握的前提下,再去看看這些進一步的優化吧,否則一頭霧水。
(以上回答僅為個人看法,如有錯誤希望您能批評指正)
7. 高速緩沖存儲器的工作原理是什麼
高速緩存內存標識位於主內存中的重復指令和數據,並將其復制到其內存中。CPU不再為相同的指令和數據重復訪問較慢的主內存,而是訪問更快的緩存。
緩存有時稱為CPU內存,通常運行在高性能的SRAM內存模塊上。CPU可以訪問更快的緩存內存來運行性能敏感的操作。高速緩存內存通常集成在主板下,或者在不同的晶元上,通過匯流排與CPU互連。
(7)存儲器預取技術擴展閱讀
Cache 技術所依賴的原理是」程序執行與數據訪問的局部性原理「,這種局部性表現在兩個方面:
時間局部性:如果程序中的某條指令一旦執行,不久以後該指令可能再次執行,如果某數據被訪問過,不久以後該數據可能再次被訪問。
空間局部性:一旦程序訪問了某個存儲單元,在不久之後,其附近的存儲單元也將被訪問,即程序在一段時間內所訪問的地址,可能集中在一定的范圍之內,這是因為指令或數據通常是順序存放的。
時間局部性是通過將近來使用的指令和數據保存到Cache中實現。空間局部性通常是使用較大的高速緩存,並將 預取機制 集成到高速緩存控制邏輯中來實現。
8. 硬碟的主要技術指標包括哪些
硬碟常見的技術指標有以下幾種:1、
每分鍾轉速(RPM,Revolutions
Per
Minute):這一指標代表了硬碟主軸馬達(帶動磁碟)的轉速,比如5400RPM就代表該硬碟中的主軸轉速為每分鍾5400轉。 2、
平均尋道時間(Average
Seek
Time):如果沒有特殊說明一般指讀取時的尋道時間,單位為ms(毫秒)。這一指標的含義是指硬碟接到讀/寫指令後到磁頭移到指定的磁軌(應該是柱面,但對於具體磁頭來說就是磁軌)上方所需要的平均時間。除了平均尋道時間外,還有道間尋道時間(Track
to
Track或Cylinder
Switch
Time)與全程尋道時間(Full
Track或Full
Stroke),前者是指磁頭從當前磁軌上方移至相鄰磁軌上方所需的時間,後者是指磁頭從最外(或最內)圈磁軌上方移至最內(或最外)圈磁軌上方所需的時間,基本上比平均尋道時間多一倍。出於實際的工作情況,我們一般只關心平均尋道時間。 3、
平均潛伏期(Average
Latency):這一指標是指當磁頭移動到指定磁軌後,要等多長時間指定的讀/寫扇區會移動到磁頭下方(碟片是旋轉的),碟片轉得越快,潛伏期越短。平均潛伏期是指磁碟轉動半圈所用的時間。顯然,同一轉速的硬碟的平均潛伏期是固定的。7200RPM時約為4.167ms,5400RPM時約為5.556ms。 4、
平均訪問時間(Average
Access
Time):又稱平均存取時間,一般在廠商公布的規格中不會提供,這一般是測試成績中的一項,其含義是指從讀/寫指令發出到第一筆數據讀/寫時所用的平均時間,包括了平均尋道時間、平均潛伏期與相關的內務操作時間(如指令處理),由於內務操作時間一般很短(一般在0.2ms左右),可忽略不計,所以平均訪問時間可近似等於平均尋道時間+平均潛伏期,因而又稱平均定址時間。如果一個5400RPM硬碟的平均尋道時間是9ms,那麼理論上它的平均訪問時間就是14.556ms。 5、
數據傳輸率(DTR
,Data
Transfer
Rate):單位為MB/s(兆位元組每秒,又稱MBPS)或Mbits/s(兆位每秒,又稱Mbps)。DTR分為最大(Maximum)與持續(Sustained)兩個指標,根據數據交接方的不同又分外部與內部數據傳輸率。內部DTR是指磁頭與緩沖區之間的數據傳輸率,外部DTR是指緩沖區與主機(即內存)之間的數據傳輸率。外部DTR上限取決於硬碟的介面,目前流行的Ultra
ATA-100介面即代表外部DTR最高理論值可達100MB/s,持續DTR則要看內部持續DTR的水平。內部DTR則是硬碟的真正數據傳輸能力,為充分發揮內部DTR,外部DTR理論值都會比內部DTR高,但內部DTR決定了外部DTR的實際表現。由於磁碟中最外圈的磁軌最長,可以讓磁頭在單位時間內比內圈的磁軌劃過更多的扇區,所以磁頭在最外圈時內部DTR最大,在最內圈時內部DTR最小。 6、
緩沖區容量(Buffer
Size):很多人也稱之為緩存(Cache)容量,單位為MB。在一些廠商資料中還被寫作Cache
Buffer。緩沖區的基本要作用是平衡內部與外部的DTR。為了減少主機的等待時間,硬碟會將讀取的資料先存入緩沖區,等全部讀完或緩沖區填滿後再以介面速率快速向主機發送。隨著技術的發展,廠商們後來為SCSI硬碟緩沖區增加了緩存功能(這也是為什麼筆者仍然堅持說其是緩沖區的原因)。這主要體現在三個方面:預取(Prefetch),實驗表明在典型情況下,至少50%的讀取操作是連續讀取。預取功能簡單地說就是硬碟「私自」擴大讀取范圍,在緩沖區向主機發送指定扇區數據(即磁頭已經讀完指定扇區)之後,磁頭接著讀取相鄰的若干個扇區數據並送入緩沖區,如果後面的讀操作正好指向已預取的相鄰扇區,即從緩沖區中讀取而不用磁頭再定址,提高了訪問速度。寫緩存(Write
Cache),通常情況下在寫入操作時,也是先將數據寫入緩沖區再發送到磁頭,等磁頭寫入完畢後再報告主機寫入完畢,主機才開始處理下一任務。具備寫緩存的硬碟則在數據寫入緩區後即向主機報告寫入完畢,讓主機提前「解放」處理其他事務(剩下的磁頭寫入操作主機不用等待),提高了整體效率。為了進一步提高效能,現在的廠商基本都應用了分段式緩存技術(Multiple
Segment
Cache),將緩沖區劃分成多個小塊,存儲不同的寫入數據,而不必為小數據浪費整個緩沖區空間,同時還可以等所有段寫滿後統一寫入,性能更好。讀緩存(Read
Cache),將讀取過的數據暫時保存在緩沖區中,如果主機再次需要時可直接從緩沖區提供,加快速度。讀緩存同樣也可以利用分段技術,存儲多個互不相乾的數據塊,緩存多個已讀數據,進一步提高緩存命中率。這是我們經常能看到的硬碟參數指標,正確理解它們的含義無疑對選購是有幫助的 7、
噪音與溫度(Noise
&
Temperature):這兩個屬於非性能指標。對於噪音,以前廠商們並不在意,但從2000年開始,出於市場的需要(比如OEM廠商希望生產更安靜的電腦以增加賣點)廠商通過各種手段來降低硬碟的工作噪音,ATA-5規范第三版也加入了自動聲學(噪音)管理子集(AAM,Automatic
Acoustic
Management),因此目前的所有新硬碟都支持AAM功能。硬碟的噪音主要來源於主軸馬達與音圈馬達,降噪也是從這兩點入手(碟片的增多也會增加噪音,但這沒有辦法)。除了AAM外,廠商的努力在上文的廠商介紹中已經講到,在此就不多說了。至於熱量,其實每個廠商都有自己的標准,並聲稱硬碟的表現是他們預料之中的,完全在安全范圍之內,沒有問題。這一點倒的是不用擔心,不過關鍵在於硬碟是機箱中的一個組成部分,它的高熱會提高機箱的整體溫度,也許硬碟本身沒事,但可能周圍的配件卻經受不了,別的不說,如果是兩個高熱的硬碟安裝得很緊密,那麼它還能承受近乎於雙倍的熱量嗎?所以硬碟的熱量仍需廠商們注意。