- IEH嵌入式系統的基本硬體架構技術
|
------------------------------------------------------------------------------------------------------
For 3-01,-------------------------------------------------------------------------------------------
Ref. to 學貫EY814_計算機組織,5e(中譯本)_Ch05_記憶體系統.ppt ch5.5
Cache hit(快取命中)
Cache miss(快取失效)
Cache block size
CPU快取
在電腦系統中,CPU快取(CPU Cache,在本文中簡稱快取)是用於減少處理器訪問記憶體所需平均時間的部件。在金字塔式存儲體系中它位於自頂向下的第二層,僅次於CPU暫存器。其容量遠小於記憶體,但速度卻可以接近處理器的頻率。
當處理器發出記憶體訪問請求時,會先查看快取內是否有請求資料。如果存在(命中),則不經訪問記憶體直接返回該資料;如果不存在(失效),則要先把記憶體中的相應資料載入快取,再將其返回處理器。
快取之所以有效,主要是因為程式運行時對記憶體的訪問呈現局部性(Locality)特徵。這種局部性既包括空間局部性(Spatial Locality),也包括時間局部性(Temporal Locality)。有效利用這種局部性,快取可以達到極高的命中率。
在處理器看來,快取是一個透明部件。因此,程式設計師通常無法直接干預對快取的操作。但是,確實可以根據快取的特點對程式代碼實施特定優化,從而更好地利用快取。
快取的存儲結構
結構上,一個直接匹配(Direct Mapped)快取由若干快取段(Cache Block,或Cache Line)構成。每個快取段存儲具有連續記憶體地址的若干個存儲單元。在32位電腦上這通常是一個字(word),即四個位元。因此,每個字具有一個唯一的段內偏移量。
每個快取段有一個索引(Index),它一般是一個記憶體地址的低端部分,但不含段內偏移和位元偏移所佔的的最低若干位。一個資料總量4KB、每個快取段16B的直接匹配快取將共有256個快取段,其索引為自0到255。使用一個簡單的移位函數,就可以求得任意記憶體地址對應的快取段。由於這是一個多對一的對應,必須在存儲一段資料的同時標示出這些資料在記憶體中的確切位置。所以每個快取段都配有一個標籤(Tag)。拼接標籤值和此快取段的索引,即可求得快取段的記憶體地址。如果再加上段內偏移,就能得出任意一個字的對應記憶體地址。
因此,在快取大小不變的情況下,快取段大小和快取段總數成反比關係。下圖中所示的快取段來自一個資料總量4KB、每個快取段16B的直接匹配快取,其標籤長度為20比特( )。
此外,每個快取段還可對應若干標誌位,包括有效位(valid bit)、臟位(dirty bit)、使用位(use bit)等。這些位在保證正確性、排除衝突、優化性能等方面起著重要作用。
運作流程
下面簡要描述一個假想的直接匹配快取的工作流程。這個快取共有四個快取塊,每個塊16位元,即4個字,因此共有64位元存儲空間。使用寫回(Write back)策略以保證資料一致性。
CPU快取的運作流程(注意記憶體左側給出的地址是字地址而不是位元地址)
系統啟動時,快取內沒有任何資料。之後,資料逐漸被載入或換出快取。假設在此後某一時點,快取和記憶體布局如右圖所示。此時,若處理器執行資料讀取指令,控制邏輯依如下流程:
- (將地址由高至低劃分為四個部分:標籤、索引、塊內偏移、位元偏移。其中塊內偏移和位元偏移各佔兩位,後者在以下操作中不使用。)
- 用索引定位到相應的快取塊。
- 用標籤嘗試匹配該快取塊的對應標籤值。如果存在這樣的匹配,稱為命中(Hit);否則稱為失效(Miss)。
- 如命中,用塊內索引將位於所定位之快取塊內的特定字取出,送回處理器。
- 如失效,先用此塊地址(標籤+索引)從記憶體讀取資料並載入到當前快取塊,再用塊內索引將位於此塊內的特定資料單元取出,送回處理器。這裡要注意的是,(1)讀取資料會衝掉之前的內容。為保證資料一致性,必須先將資料塊的現有內容寫回記憶體。(2)儘管處理器請求的只是一個字,快取仍必須在讀取的時候把整個資料塊都填充滿。(3)快取的讀取是按快取塊大小邊界對齊的。對於大小為16位元的快取塊,任何因為0x0001、或0x0002、或0x0003、或0x0004造成的失效,都會導致位於記憶體0x0000—0x0003的全部四個字被讀入塊中。
在右圖中,如此時處理器請求地址在0x0020到0x0023之間,或在0x0004到0x0007之間,或在0x0528到0x052A之間,或在0x052C到0x052F之間,均會命中。其餘地址則全部失效。
而當處理器執行資料寫入指令時,控制邏輯依如下流程:
- 用索引定位到相應的快取塊。
- 用標籤嘗試匹配該快取塊的對應標籤值。其結果為命中或失效。
- 如命中,用塊內索引定位此塊內的目標字。然後直接改寫這個字。
------------------------------------------------------------------------------------------------------
For 3-02,-------------------------------------------------------------------------------------------
4Mx8 =>
Data bus =>8bit
Address bus => 4M定址空間 => 4*2^20 => 22lines
Ref. to 學貫EP827_嵌入式系統導論,4e_CH04_微處理器.ppt ch4.2
------------------------------------------------------------------------------------------------------
For 3-03,-------------------------------------------------------------------------------------------
固態硬碟(Solid State Disk、Solid State Drive,簡稱SSD)
OCZ2.5寸固態硬碟
固態硬碟(Solid State Disk、Solid State Drive,簡稱SSD,俗稱固態驅動器)是一種永久性記憶體〔如快閃記憶體〕或非永久性記憶體〔如同步動態隨機存取記憶體(SDRAM)〕的電腦外部儲存裝置。固態硬碟用來在筆電中代替常規硬碟。雖然在固態硬碟中已經沒有可以旋轉的盤狀結構,但是依照人們的命名習慣,這類記憶體仍然被稱為「硬碟」。
優點
和傳統硬碟相比,固態硬碟具有低功耗、無噪音、抗震動、低熱量的特點。這些特點不僅使得資料能更加安全地得到保存,而且也延長了靠電池供電的設備的連續運轉時間。
例如三星半導體公司於2006年3月推出的容量為32GB的固態硬碟,採用了和傳統微硬碟相同的1.8吋規格。其耗電量只有常規硬碟的5%,寫入速度是傳統硬碟的1.5倍,讀取速度是傳統硬碟的3倍,並且沒有任何噪音[1]。
在2007年的Computex Taipei中,新帝公司發表了64GB與32GB的固態硬碟,並有2.5吋、SATA介面與1.8吋、UATA介面兩種規格。OCZ現場展出的固態硬碟分為2.5吋與1.8吋兩種,其中2.5吋採用SATA介面,最大容量可達128GB;1.8吋機種則是採用IDE介面,最大容量可達64GB,可分別使用在筆記型電腦與更小的UMPC上,用來取代傳統的硬碟。現在由OCZ Technology發表的OCTANE 2.5吋固態硬碟容量已達到1TB。[2]
最初高階固態硬碟的效能表現與最高速的傳統硬碟互有勝負,但隨著固態硬碟的不斷發展,高階固態硬碟的效能已經完全超越了傳統硬碟。
缺點
目前固態硬碟普及的最大問題仍然是成本和寫入次數[3]。無論是揮發性記憶體還是非揮發性記憶體,其每百萬位元組成本都遠遠高於傳統硬碟。因此只有小容量的固態硬碟的價格能夠被大多數人所承受。而由於快閃記憶體都有一定的寫入壽命、而且壽命屆滿後資料會讀不出來,因此成為大眾接受固態硬碟的另一個障礙;但隨著2011非揮發性快閃記憶體的製程來到了25nm製程階段,在同樣大小的快閃記憶體空間內塞入倍增的容量,卻維持一樣的價錢。
固態硬碟以往由於價格高昂,通常只用於軍事及工業用途上,不過拜NAND快閃記憶體成本不斷下降所賜,如今固態硬碟已經使用在一般的筆記型電腦上,並預計於刀鋒伺服器上逐步採用,提供全新的電腦使用體驗。固態硬碟比起傳統硬碟具有速度快、耗電量低與可靠性較高的優點。由於硬碟早已是系統效能的瓶頸,因此改用固態硬碟可以帶來明顯及令人興奮的效能提升。但由於價格與儲存空間比於傳統硬碟仍有極大的差距,固態硬碟成為真正主流儲存設備而取代傳統硬碟仍需較長的時間。
硬碟Hard Disk Drive
硬碟
| |
硬碟內部,可以明顯看到硬碟碟片和磁頭。 | |
研發日期
| |
研發者
|
IBM的Rey Johnson
|
連接介面
|
|
硬碟(英語:Hard Disk Drive,簡稱HDD)是電腦上使用堅硬的旋轉碟片為基礎的非揮發性儲存裝置,它在平整的磁性表面儲存和檢索數位資料,訊息透過離磁性表面很近的寫頭,由電磁流來改變極性方式被電磁流寫到磁碟上,訊息可以透過相反的方式回讀,例如磁場導致線圈中電力的改變或讀頭經過它的上方。早期的硬碟儲存媒介是可替換的,不過今日典型的硬碟是固定的儲存媒介,碟片與磁頭被封裝在機身裡(除了一個過濾孔,用來平衡工作時產生的熱量導致的氣壓差)。
------------------------------------------------------------------------------------------------------
For 3-04 -------------------------------------------------------------------------------------
藍光光碟(Blu-ray Disc,簡稱BD,又作藍光光盤)
藍光光碟
| |
媒體種類:
|
高品質媒體儲存光碟
|
編碼:
| |
容量:
| |
讀取機制:
| |
開發:
| |
用途:
| |
有外殼的單面單層BD-RE(25GB)
有外殼的單面雙層BD-RE(50GB)
無外殼的單面單層BD-RE(25GB)
無外殼的單面雙層BD-RE(50GB)
藍光光碟(Blu-ray Disc,簡稱BD,又作藍光光盤)是DVD之後的下一代光碟格式之一,用以儲存高品質的影音以及高容量的資料儲存。須注意的是「藍光光碟」此一稱謂並非本產品的官方正式中文名稱,而是容易記住的非官方名稱,其沒有正式中文名稱。
藍光光碟的命名是由於其採用波長405奈米的藍色雷射光束來進行讀寫操作(DVD採用650奈米波長的紅光讀寫器,CD則是採用780奈米波長的紅外線)。藍光光碟的英文名稱不使用「Blue-ray」的原因,是「Blue-ray Disc」這個詞在歐美地區流於通俗、口語化,並具有說明性意義,於是不能構成註冊商標申請的許可,因此藍光光碟聯盟去掉英文字e來完成商標註冊。
物理格式
一個單層的藍光光碟的容量為25GB,足夠錄製一個長達4小時的高解析影片。索尼稱,以6x倍速燒錄單層25GB的藍光光碟只需大約50分鐘。而雙層的藍光光碟容量為50GB,足夠燒錄一個長達8小時的高解析影片。2010年6月制定的BDXL規格,支援100GB和128GB的藍光光碟。
採用波長405nm的藍色雷射束進行讀寫,之所以能儲存龐大容量,主要是因為這三種寫入模式:一、縮小雷射點以縮短軌距(0.32μm)增加容量,藍光光碟構成0和1數位資料的訊坑(0.15μm)變的更小,因為讀取訊坑用的藍色雷射波長比紅色雷射小。二、利用不同反射率達到多層寫入效果。三、溝軌並寫方式,增加記錄空間。藍光的高儲存量是從改進雷射光源波長與(405 nm)物鏡數值孔鏡(0.85)而來。
------------------------------------------------------------------------------------------------------
For 3-05-------------------------------------------------------------------------------------
Ref. to 學貫EY814_計算機組織,5e(中譯本)_Ch05_記憶體系統.ppt ch5.5
Ref to 學貫EP827_嵌入式系統導論,4e_CH04_微處理器.ppt ch4.2.4
Write back(回寫)==copy back(回拷)
Write through(貫穿寫入)
- write back就是先把資料寫到cache上,然後等替換(replacement)時再把資料更新或寫到main memory裡頭
write though就是寫資料時同時寫在cache和main memory裡面 - Write-through(直写模式)在数据更新时,同时写入缓存Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。
- Write-back(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。
------------------------------------------------------------------------------------------------------
For 3-06-------------------------------------------------------------------------------------
Direct-mapping cache
Ref. to 學貫EY814_計算機組織,5e(中譯本)_Ch05_記憶體系統.ppt ch5.5.1
Address space =2^32
Tag + block + data => take 32 bit
Data=8words=16bytes => 2^4, => it takes 4 bits
Block = 64kbyte/16byte=4k => 2^12 => it take 12 bits
Tag => 16bit for each block,
Tag cache =>there are 4k blocks, =>8kbyte in cache
Block cache => 64k byte
8K+64K=72K
------------------------------------------------------------------------------------------------------
For 3-07-------------------------------------------------------------------------------------
基本觀念題
------------------------------------------------------------------------------------------------------
For 3-08,3-09,3-10,3-11------------------------------------------------------------------------
基本觀念題
˙主記憶體種類與特性
(SRAM、DRAM、SDRAM、DDR、RAMBUS、FLASH、EPROMM、EEPROM、ROM)
˙外部儲存記憶體
電腦記憶體類型
|
|
靜態隨機存取存儲器SRAM
靜態隨機存取存儲器(Static Random Access Memory, SRAM)是隨機存取存儲器的一種。所謂的「靜態」,是指這種存儲器只要保持通電,裡面儲存的數據就可以恆常保持。相對之下,動態隨機存取記憶體(DRAM)裡面所儲存的數據就需要週期性地更新。然而,當電力供應停止時,其內儲存的數據還是會消失,這與在斷電後還能儲存資料的ROM或快閃記憶體仍然是不同的。
由六個電晶體組成的SRAM記憶單元
與 DRAM 之比較
在同樣的運作頻率下,由於 SRAM 對稱的電路結構設計,使得每個記憶單元內所儲存的數值都能以比 DRAM 快的速率被讀取。除此之外,由於 SRAM 通常都被設計成一次就讀取所有的資料位元 (Bit),比起高低位址的資料交互讀取的 DRAM,在讀取效率上也快上很多。因此雖然 SRAM 的生產成本比較高,但在需要高速讀寫資料的地方,如電腦上的快取 (Cache),還是會使用 SRAM,而非 DRAM。
動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)是一種半導體記憶體,主要的作用原理是利用電容內儲存電荷的多寡來代表一個二進制位元(bit)是1還是0。由於在現實中電容會有漏電的現象,導致電位差不足而使記憶消失,因此除非電容經常周期性地充電,否則無法確保記憶長存。由於這種需要定時重新整理的特性,因此被稱為「動態」記憶體。相對來說,「靜態」記憶體(SRAM)只要存入資料後,縱使不重新整理也不會遺失記憶。
與SRAM相比,DRAM的優勢在於結構簡單——每一個位元的資料都只需一個電容跟一個電晶體來處理,相比之下在SRAM上一個位元通常需要六個電晶體。正因這緣故,DRAM擁有非常高的密度,單位體積的容量較高因此成本較低。但相反的,DRAM也有存取速度較慢,耗電量較大的缺點。
DRAM的記憶單元
SDRAM
同步動態隨機存取記憶體(synchronous dynamic random access memory,簡稱SDRAM)是有一個同步介面的動態隨機存取記憶體(dynamic random access memory,簡稱DRAM)。傳統上,動態隨機存取記憶體(DRAM)是有一個非同步介面的,這樣它可以隨時響應控制輸入的變化。而SDRAM有一個同步介面,在響應控制輸入前會等待一個時鐘信號,這樣就能和計算機的系統匯流排同步。時鐘被用來驅動一個有限狀態機,對進入的指令進行流水線操作。這使得SDRAM與沒有一個同步介面的非同步DRAM(asynchronous DRAM)相比,可以有一個更複雜的操作模式。
流水線意味著晶片可以在處理完之前的指令前接受一個新的指令。在一個寫的流水線中,寫命令在另一個指令執行完之後可以立刻執行,而不需要等待數據寫入存儲隊列的時間。在一個讀的流水線中,需要的數據在讀指令發出之後固定數量的時鐘頻率後到達,而這個等待的過程可以發出其它附加指令。這種延遲被稱為等待時間,在為計算機購買存儲時是一個很重要的參數。
SDRAM在計算機中被廣泛使用,從起初的SDRAM到之後一代的DDR(或稱DDR1),然後是DDR2和DDR3進入大眾市場,而DDR4現在也在籌劃中,預計在2012投入市場。
SDRAM的歷史
儘管SDRAM的概念至少從20世紀70年代就已經被人們所熟悉,在早期的Intel處理器上也已被採用,但要說到它在電子工業被廣泛接受,那是從1993年才開始的。1993年,三星開始展示其新出品的KM48SL2000 SDRAM,到2000年,SDRAM因為其卓越的性能,實際上取代了其它類型的DRAM在現代計算機中的位置。
SDRAM本身的延時其實並不比非同步DRAM更低(延遲更低意指速度更快)。其實,早期的SDRAM因為其構造中的附加邏輯單元,在速度上比同時期的爆發式延伸數據輸出DRAM(Burst EDO DRAM)還有所不及。而SDRAM的內建緩衝則可以使得運算交叉進入多行存儲,這樣就可以有效提高頻寬,速度更快。
時至今日,所有的SDRAM實際上都依照JEDEC(一個電子工業聯盟,選定開放的標準,使電子元件的互容性更好)制定的標準製造。JEDEC於1993年正式採用其第一個有關SDRAM的標準,隨後是其它SDRAM的標準,包括了DDR、DDR2和DDR3 SDRAM。
SDRAM is also available in registered varieties, for systems that require greater scalability such as servers and workstations.
時至2007年,168-pin(pin指內存插入實際接觸的金手指數量)的SDRAM雙線內存模組(DIMM)在新的個人電腦上已經不再使用,被大量的184-pin的DDR存儲代替。DDR2 SDRAM在新的個人電腦上的使用已非常普遍,支持DDR3的主板和存儲也在被更廣泛地使用,不過,在價格比仍很流行的DDR2產品還是貴了不少。
如今,世界最大的SDRAM製造商包括:三星電子(Samsung Electronics),美光科技(Micron Technology)和HY(Hynix)。
有幾個DRAM性能的極限,最有名的就是讀周期時間,是指對一個開放的行進行連續讀操作之間的間隔。這個時間從100MHZ頻率的SDRAM的10奈秒縮減為DDR-400的5奈秒,但是從DDR2-800和DDR3-1600就保持相對不變。然而,通過操作介面電路,使基本讀取速度成倍提高,可實現頻寬的迅速增加。
另一個極限是CAS等待時間,是指提供一個地址與接受到相關數據之間的間隔。這個也保持了相對穩定,最近幾代DDR SDRAM的這個數據為10-15奈秒。 在操作上,對DRAM控制器來說CAS latency是一個已知的clock cycles特定數字, 這數字會被登錄在SDRAM's mode register中. Any value may be programmed, but the SDRAM will not operate correctly if it is too low.在時鐘速率很快的情況下,CAS等待時間相對的時鐘周期數自然就會增加。10-15奈秒對200MHZ時鐘頻率的DDR-400 SDRAM就是2-3個周期,對DDR2-800就是4-6個周期,DDR3-1600就是8-12個周期。比較慢的時鐘周期,CAS等待時間相對的周期數也會比較少。
SDRAM modules have their own timing specifications, which may be slower than those of the chips on the module.100MHz的SDRAM晶片第一次出現時,有些製造商開始販賣「100 MHz」的模組,而這些模組是不能在那個時鐘頻率下正常工作的。有鑒於此,Intel發布了PC100的標準,描述了具體要求,為生產能在100MHz頻率下文檔工作的內存模組提供了指引。這個標準影響深遠,「PC100」這個術語很快成了100MHz SDRAM模組的通用標識。如今,模組通常被冠以「PC」為前綴的一組數字的名稱(PC66、PC100或者PC133—儘管數字代表的實際含義早就不是其原有的)。
64 MB sound memory of Sound Blaster X-Fi Fatal1ty Pro uses two Micron 48LC32M8A2-75 C SDRAM chips working at 133 MHz (7.5 ns) 8-bit wide [1]
被認為是最早的SDRAM,單數據速率SDRAM在每個時鐘周期可以接收一個命令和傳輸一個計算機字。典型的時鐘頻率為100和133MHz。晶片有多種不同的數據匯流排大小(最常見的是4、8或16bits),但是晶片一般被組裝成168-pin的雙線內存模組,可以同時讀寫64bits(非ECC)或72bits(ECC)。
數據匯流排的使用很複雜,需要一個複雜的DRAM控制器。這是因為寫入DRAM的數據必須和一個寫命令在同一個周期,而讀數據可以在讀命令後產生輸出2或3個周期。DRAM控制器必須確認數據匯流排永不同時讀和寫。
典型的單數據速率SDRAM時鐘頻率為66、100和133MHz(周期分別為15、10和7.5奈秒)時鐘頻率到150MHz的則可用於性能的發燒友。
一個512MB的SDRAM雙線內存模組一般由8個或者9個SDRAM晶片組成,每個晶片包含有512Mbit的存儲空間,每個為模組64或者72bit的寬度貢獻了8個bit的寬度。一個典型的512Mbit SDRAM晶片內部包含了4個獨立的16Mbyte大小的庫。每個庫都有8,192行,16,384bits。一個庫或者處於空閒狀態、活躍狀態,或者處於兩種狀態的轉換中。
一個激活命令會將一個處於空閒狀態的庫激活。它佔用一個2-bit的庫地址(BA0–BA1)和一個13-bit的行地址(A0–A12),然後將那一行讀取入有著16,384個讀取放大器的庫的隊列。這也被稱為「打開」行。This operation has the side effect of refreshing that row.
只有該行已被激活或者「打開」,讀寫命令才可以執行。每個命令都需要一個列地址,但是因為每個晶片同時只能處理8-bit,那就有2048個可能的列地址,不過只需要11個地址行(A0–A9, A11)。激活需要一個最小時間,稱為行到列延遲,或者tRCD。
DDR SDRAM
雙倍數據率同步動態隨機存取記憶體(英語:Double Data Rate Synchronous Dynamic Random Access Memory,簡稱DDR SDRAM)為具有雙倍資料傳輸率之SDRAM,其資料傳輸速度為系統時脈之兩倍,由於速度增加,其傳輸效能優於傳統的SDRAM。
DDR SDRAM 能在系統時脈的上升延和下降延都可以進行數據傳輸。
JEDEC為DDR存儲器設立了速度規範,並分為了以下兩個部分:按內存晶片分類和按內存模塊分類。
規格
標準名稱
|
I/O 匯流排時脈
|
週期
|
記憶體時脈
|
數據速率
|
傳輸方式
|
模組名稱
|
極限傳輸率
|
DDR-200
|
100 MHz
|
10 ns
|
100 MHz
|
200 Million
|
並列傳輸
|
PC-1600
| |
DDR-266
|
133 MHz
|
7.5 ns
|
133 MHz
|
266 Million
|
並列傳輸
|
PC-2100
|
2100 MB/s
|
DDR-333
|
166 MHz
|
6 ns
|
166 MHz
|
333 Million
|
並列傳輸
|
PC-2700
|
2700 MB/s
|
DDR-400
|
200 MHz
|
5 ns
|
200 MHz
|
400 Million
|
並列傳輸
|
PC-3200
|
3200 MB/s
|
- DDR-200:DDR-SDRAM 記憶晶片在 100MHz 下運行
- DDR-266:DDR-SDRAM 記憶晶片在 133MHz 下運行
- DDR-333:DDR-SDRAM 記憶晶片在 166MHz 下運行
- DDR-400:DDR-SDRAM 記憶晶片在 200MHz 下運行(JEDEC制定的DDR最高規格)
- DDR-500:DDR-SDRAM 記憶晶片在 250MHz 下運行(非JEDEC制定的DDR規格)
- DDR-600:DDR-SDRAM 記憶晶片在 300MHz 下運行(非JEDEC制定的DDR規格)
- DDR-700:DDR-SDRAM 記憶晶片在 350MHz 下運行(非JEDEC制定的DDR規格)
- PC-2100記憶體模塊指工作在 133MHz 下的DDR-266內存晶片,其擁有 2.133GB/s 的頻寬
- PC-2700記憶體模塊指工作在 166MHz 下的DDR-333內存晶片,其擁有 2.667GB/s 的頻寬
- PC-3200記憶體模塊指工作在 200MHz 下的DDR-400內存晶片,其擁有 3.200GB/s 的頻寬
利用下列公式,就可以計算出DDR SDRAM時脈。
Rambus
Rambus 是一家高速晶片設計的公司,創建於1990年3月,1997年於NASDAQ上市。
1990年,Mike Farmwald 和 Mark Horowitz 創立Rambus公司,並開始提出專利的申請,到1995年擁有SyncLink和RamLink等專利技術。1996年11月,在經過了幾年的談判之後,Intel同Rambus共同致力於Direct Rambus DRAM發展。威盛公司推出的Apollo Pro133一度取代Rambus DR DRAM,Micron公司選擇Apollo Pro133。Rambus大部份的收入是來自專利,Rambus經常處於訴訟狀態。目前Rambus的產品有 RDRAM, XDR DRAM, XDR2 DRAM.
Flash Memory
快閃記憶體(英文:Flash Memory),中國大陸簡稱為閃存,是一種電子清除式可程式唯讀記憶體的形式,允許在操作中被多次擦或寫的記憶體。這種科技主要用於一般性資料儲存,以及在電腦與其他數位產品間交換傳輸資料,如記憶卡與隨身碟。快閃記憶體是一種特殊的、以大區塊抹寫的EEPROM。早期的快閃記憶體進行一次抹除掉就會清除掉整顆晶片上的資料。
快閃記憶體的成本遠較可以位元組為單位寫入的EEPROM來的低,也因此成為非揮發性固態儲存最重要也最廣為採納的技術。像是PDA, 筆記型電腦, 數位隨身聽, 數位相機與手機上均可見到快閃記憶體。此外,快閃記憶體在遊戲主機上的採用也日漸增加,藉以取代儲存遊戲資料用的EEPROM或帶有電池的SRAM。
快閃記憶體是非揮發性的記憶體。這表示單就保存資料而言, 它是不需要消耗電力的。此外快閃記憶體也具有相當低的讀取延遲(雖然沒有電腦主記憶體的DRAM那麼快)。與硬碟相比,快閃記憶體也有更佳的動態抗震性。這些特性正是快閃記憶體被行動裝置廣泛採用的原因。快閃記憶體還有一項特性:當它被製成記憶卡時非常可靠──即使浸在水中也足以抵抗高壓與極端的溫度。
雖然快閃記憶體在技術上屬於EEPROM,但是 「EEPROM」 這個字眼通常特指非快閃式、以小區塊為清除單位的EEPROM。它們典型的清除單位是位元組。 因為老式的EEPROM抹除循環相當緩慢,相形之下快閃記體較大的抹除區塊在寫入大量資料時帶給其顯著的速度優勢。
歷史
快閃記憶體(無論是NOR型或NAND型)是舛岡富士雄博士在1984年於東芝公司工作時發明的。 據東芝表示快閃記憶體的 「Flash」 是舛岡博士的同事所持有泉建議的。因為這種記憶體的抹除流程讓他想起了相機的閃光燈。舛岡博士在1984年的加州舊金山IEEE國際電子元件大會(International Electron Devices Meeting, IEDM)上發表了這項發明。Intel看到了這項發明的巨大潛力,並於1988年推出第一款商業性的NOR Flash晶片。
NOR Flash需要很長的時間進行抹寫,但是它提供完整的定址與資料匯流排,並允許隨機存取記憶體上的任何區域,這使的它非常適合取代老式的ROM晶片。當時ROM晶片主要用來儲存幾乎不需更新的程式碼,例如電腦的BIOS或機上盒(Set-top Box)的韌體。NOR Flash可以忍受一萬到一百萬次抹寫循環,它同時也是早期的可移除式快閃儲存媒體的基礎。CompactFlash本來便是以NOR Flash為基礎的,雖然它之後跳槽到成本較低的 NAND Flash。 東芝在1989年的國際固態電路學會(ISSCC)上發表了NAND Flash。NAND Flash具有較快的抹寫時間, 而且每個儲存單元的面積也較小,這讓NAND Flash相較於NOR Flash具有較高的儲存密度與較低的每位元成本。同時它的可抹除次數也高出NOR Flash十倍。然而NAND Flash 的I/O介面並沒有隨機存取外部定址匯流排,它必須以區塊性的方式進行讀取,NAND Flash典型的區塊大小是數百至數千位元。
因為多數微處理器與微控制器要求位元組等級的隨機存取,所以NAND Flash不適合取代那些用以裝載程式的ROM。從這樣的角度看來,NAND Flash比較像光碟、硬碟這類的次級儲存裝置。NAND Flash非常適合用於記憶卡之類的大量儲存裝置。第一款建立在NAND Flash基礎上的可移除式儲存媒體是SmartMedia,此後許多儲存媒體也跟著採用NAND Flash,包括MultiMediaCard、Secure Digital、Memory Stick與xD卡。
快閃記憶體將資料儲存在由浮閘電晶體組成的記憶單元陣列內,在單階儲存單元(Single-level cell, SLC)裝置中,每個單元只儲存1位元的資訊。而多階儲存單元(Multi-level cell, MLC)裝置則利用多種電荷值的控制讓每個單元可以儲存1位元以上的資料。
NOR flash 的寫入與其在矽晶上的結構
NOR Flash
藉由熱電子注入寫入一個NOR Flash記憶單元(將其在邏輯上設為 0)
藉由量子穿隧抹除一個NOR Flash記憶單元(將其在邏輯上設為 1)
快閃記憶體的每個儲存單元類似一個標準MOSFET, 除了電晶體有兩個而非一個閘極。在頂部的是控制閘(Control Gate, CG),如同其他MOS電晶體。但是它下方則是一個以氧化物層與週遭絕緣的浮閘(Floating Gate, FG)。這個FG放在CG與MOSFET通道之間。由於這個FG在電氣上是受絕緣層獨立的, 所以進入的電子會被困在裡面。在一般的條件下電荷經過多年都不會逸散。當FG抓到電荷時,它部分遮蔽掉來自CG的電場,並改變這個單元的閥電壓(VT)。在讀出期間。利用向CG的電壓,MOSFET通道會變的導電或保持絕緣。這視乎該單元的VT而定(而該單元的VT受到FG上的電荷控制)。這股電流流過MOSFET通道,並以二進位碼的方式讀出、再現儲存的資料。在每單元儲存1位元以上的資料的MLC裝置中,為了能夠更精確的測定FG中的電荷位準,則是以感應電流的量(而非單純的有或無)達成的。
邏輯上,單層NOR Flash單元在預設狀態代表二進位碼中的「1」值,因為在以特定的電壓值控制閘極時,電流會流經通道。經由以下流程,NOR Flash 單元可以被設定為二進位碼中的「0」值。
- 1. 對CG施加高電壓(通常大於5V)。
由於汲極與CG間有一個大的、相反的極性電壓,藉由量子穿隧效應可以將電子拉出FG,所以能夠地用這個特性抹除NOR Flash單元(將其重設為「1」狀態)。現代的NOR Flash晶片被分為若干抹除片段(常稱為區扇(Blocks or sectors)),抹除操作只能以這些區塊為基礎進行;所有區塊內的記憶單元都會被一起抹除。不過一般而言,寫入NOR Flash單元的動作卻可以單一位元組的方式進行。
NAND flash 一個快閃記憶體儲存單元
傳統上,每個儲存單元內儲存1個資訊位元,稱為單階儲存單元(single-level cell, SLC),使用這種儲存單元的快閃記憶體也稱為單階儲存單元快閃記憶體(SLC flash memory),或簡稱SLC快閃記憶體。SLC快閃記憶體的優點是傳輸速度更快,功率消耗更低和儲存單元的壽命更長。然而,由於每個儲存單元包含的資訊較少,其每百萬位元組需花費較高的成本來生產。由於快速的傳輸速度,SLC快閃記憶體技術會用在高性能的記憶卡。
多階儲存單元快閃記憶體(Multi-level cell flash memory, MLC flash memory)可以在每個儲存單元內儲存2個以上的資訊位元,其「多階」指的是電荷充電有多個能階(即多個電壓值),如此便能儲存多個位元的值於每個儲存單元中。藉由每個儲存單元可儲存更多的位元,MLC快閃記憶體可降低生產成本,但比起SLC快閃記憶體,其傳輸速度較慢,功率消耗較高和儲存單元的壽命較低,因此MLC快閃記憶體技術會用在標準型的記憶卡。另外,如飛索半導體的MirrorBit®技術,也是屬於這一類技術。
根據DRAMeXchange的研究報告,2007年全球Flash產業的市場規模為133億6千8百萬美元,2008年則是114億1千8百萬美元,整體營收降低了14.6%,主要的原因是受到產品平均單價下滑的影響。[1]
按照2008年的資料,全球Flash產業中,南韓廠商三星 (Samsung)市佔率高達40.4%(46億1千4百萬美元),其次是日本廠商東芝 (Toshiba)的28.1%(32億5百萬美元),第三是南韓廠商Hynix的15.1%(17億2千7百萬美元) ,第4為美國廠商美光 (Micron)7.9%(8億9千7百萬美元),第5為美國廠商英特爾(Intel)5.8%(6億6千萬美元),第6是歐洲廠商恆憶(Numonyx,STMicro)2.6%(營收為2億9千5百萬美元)。[2]
先前稍早其他的來源有提到蘋果公司是第3大的快閃記憶體買家, 大約消耗了全球Flash總產量的13%。其他來源則認為快閃記憶體市場在2006年時的規模超過20億美元,佔據全部半導體市場的8%;在記憶體半導體中則有34%的比重。
快閃記憶體的一種限制在於即使它可以單一位元組的方式讀或寫入,但是抹除一定是一整個區塊。一般來說都是設定某一區中的所有位元為「1」,剛開始區塊內的所有部份都可以寫入,然而當有任何一個位元被設為「0」時,就只能藉由清除整個區塊來回復「1」的狀態。換句話說快閃記憶體(特別是NOR Flash)能提供隨機讀取與寫入操作,卻無法提供任意的隨機覆寫。不過其上的區塊可以寫入與既存的「0」值一樣長的訊息(新值的0位元是舊值的0位元的超集合)。例如:有一小區塊的值已抹除為1111,然後寫入1110的訊息。接下來這個區塊還可以依序寫入1010、0010,最後則是0000。可是實際上少有演算法可以從這種連續寫入相容性得到好處,一般來說還是整塊抹除再重寫。 儘管快閃記憶體的資料結構不能完全以一般的方式做更新,但這允許它以「標記為不可用」的方式刪除訊息。這種技巧在每單元儲存大於1位元資料的MLC裝置中必須稍微做點修改。
另一項快閃記憶體的限制是它有抹寫循環的次數限制(大多商業性SLC快閃記憶體保證「0」區有十萬次的抹寫能力,但其他區塊不保證)。這個結果部分地被某些韌體或檔案系統為了在相異區塊間安排寫入操作而進行的計算寫入次數與動態重測所抵銷;這種技巧稱為耗損平衡。另一種處理方法稱為壞區管理(Bad Block Management, BBM)。這種方法是在寫入時做驗證並進行動態重測,如果有驗證失敗的區塊就加以剔除。 對多數行動裝置而言,這些磨損管理技術可以延長其內部快閃記憶體的壽命(甚至超出這些裝置的使用年限)。此外,遺失部分資料在這些裝置上或許是可接受的。至於會進行大量資料讀寫循環的高可靠性資料儲存應用則不建議使用快閃記憶體。不過這種限制不適用於路由器與瘦客戶端(Thin clients)等唯讀式應用,這些裝置往往在使用年限內也只會寫入一次或少數幾次而已。
快閃記憶體晶片的低階介面通常與透過支援外界的定址匯流排行隨機存取的DRAM、ROM、EEPROM等記憶體不同。 NOR Flash本身為讀取操作(支援隨機存取)提供外部定址匯流排;至於解鎖、抹除與寫入則須以區塊-區塊(Block-by-block)的方式進行,典型的區塊大小為64、128或256位元組。NAND Flash所有的動作都必須以區塊性基礎(Block-wise fashion)執行,包含讀、寫、解鎖與抹除。
從NOR Flash讀取資料的方式與從RAM讀取資料相近,只要提供資料的位址,資料匯流排就可以正確的繪出資料。基於以上原因,多數微處理器可以將NOR Flash當作原地執行(Execute in place, XIP)記憶體使用,這意味著儲存在NOR Flash上的程式不需複製到RAM就可以直接執行。由於NOR Flash沒有原生壞區管理,所以一旦儲存區塊發生毀損,軟體或驅動程式必須接手這個問題,否則可能會導致裝置發生異常。 在解鎖、抹除或寫入NOR Flash區塊時,特殊的指令會先寫入已繪測的記憶區的第一頁(Page)。接著快閃記憶晶片會提供可用的指令清單給實體驅動程式,而這些指令是由一般性快閃記憶體介面(Common Flash memory Interface, CFI)所界定的。 與用於隨機存取的ROM不同,NOR Flash也可以用在儲存裝置上;不過與NAND Flash相比,NOR Flash的寫入速度一般來說會慢很多。
東芝在1989年發表了NAND Flash架構,這種記憶體的存取方式類似硬碟之類的區塊性儲存裝置,每個區塊構成幾個頁。一般來說這些頁的尺寸為512、2048或4096位元組。各個頁之間彼此會有幾個位元組的關聯性(一般而言是12~16位元組),這些空間用於儲存偵錯與糾錯的校驗和。以下是一些典型的區塊大小與其內部包含的關連性尺寸:
- 每32個512位元組的頁包含1個16kB的關連性區塊
- 每64個2048位元組的頁包含1個128kB的關連性區塊
- 每64個4096位元組的頁包含1個256kB的關連性區塊
- 每128個4096位元組的頁包含1個512kB的關連性區塊
當寫入建立在這種「頁」的基礎上時,抹除便只能以區塊性的方法進行。NAND Flash還有一項限制就是區塊內的資料只能序列性的寫入。操作次數(Number of Operations, NOPs)則代表區扇可以被寫入的次數。目前MLC的NOPs是1;而SLC則是4。 NAND Flash也要求裝置驅動程式、軟體或分離的控制晶片進行壞區管理,例如SD卡內部便包含壞區管理與耗損平衡的電路。當一個邏輯區被高階軟體存取時,實際繪測的工作由驅動程式或控制器進行。
NOR Flash
藉由熱電子注入寫入一個NOR Flash記憶單元(將其在邏輯上設為 0)
藉由量子穿隧抹除一個NOR Flash記憶單元(將其在邏輯上設為 1)
EPROM
顯示↓
可擦拭可規劃式唯讀記憶體(英語:Erasable Programmable Read Only Memory),由以色列工程師Dov Frohman發明,是一種斷電後仍能保留數據的計算機儲存晶片——即非揮發性的(非揮發性)。它是一組浮柵電晶體,被一個提供比電子電路中常用電壓更高電壓的電子器件分別編程。一旦編程完成後,EPROM只能用強紫外線照射來擦除。通過封裝頂部能看見矽片的透明窗口,很容易識別EPROM,這個窗口同時用來進行紫外線擦除。
浮柵電晶體的截面示意圖
一片編程後的EPROM,可以保持其數據大約10~20年,並能無限次讀取。擦除窗口必須保持覆蓋,以防偶然被陽光擦除。老式電腦的BIOS晶片,一般是EPROM,擦除窗口往往被印有BIOS發行商名稱、版本和版權聲明的標籤所覆蓋。
一些在快閃記憶體出現前生產的微控制器,具有使用EPROM來儲存程式的版本,以利於程式開發;因為,如使用一次性可編程器件,在調試時將造成嚴重浪費。
除了 1702 之外,EPROM 是 27 系列型號,各種容量及型號參見附表,編號前可能加有廠商的英文字頭,同一型號可能有不同的速度與封裝方式,並附加於編號後。各廠牌同型號的 EPROM 讀取上相容,但燒錄規範可能會略有不同。 (此外,使用 EPROM 的 MCS48/51 家族 MCU 則是 87 系列)
部分較新的 EPROM 可藉由簽名模式(signature mode)進行型號自動識別,方法是將 A9 提升到 12V,晶片便會送出兩 byte 的識別數據。由於並非所有型號均有此功能(尤其是早期的型號),因此燒錄時有可能須人工指定型號。
EPROM 型號
|
定址空間長度(十六進位)
|
最後位址(十六進位)
| ||
1702, 1702A
|
2 Kbit
|
256
|
100
|
000FF
|
2704
|
4 Kbit
|
512
|
200
|
001FF
|
2708
|
8 Kbit
|
1 KB
|
400
|
003FF
|
2716, 27C16
|
16 Kbit
|
2 KB
|
800
|
007FF
|
2732, 27C32
|
32 Kbit
|
4 KB
|
1000
|
00FFF
|
2764, 27C64
|
64 Kbit
|
8 KB
|
2000
|
01FFF
|
27128, 27C128
|
128 Kbit
|
16 KB
|
4000
|
03FFF
|
27256, 27C256
|
256 Kbit
|
32 KB
|
8000
|
07FFF
|
27512, 27C512
|
512 Kbit
|
64 KB
|
10000
|
0FFFF
|
27C010, 27C100
|
1 Mbit
|
128 KB
|
20000
|
1FFFF
|
27C020
|
2 Mbit
|
256 KB
|
40000
|
3FFFF
|
27C040
|
4 Mbit
|
512 KB
|
80000
|
7FFFF
|
27C080
|
8 Mbit
|
1 MB
|
100000
|
FFFFF
|
27C160
|
16 Mbit
|
2 MB
|
200000
|
1FFFFF
|
27C320
|
32 Mbit
|
4 MB
|
400000
|
3FFFFF
|
DIP封裝28針腳 256 Kbit 容量的有窗口 EPROM 與無窗口 OTP EPROM 各一枚
因為玻璃窗口造價昂貴,於是引進了一次性可編程晶片(One-time programmble,OTP chip,或一種PROM),用於不需重複燒寫的量產產品中可降低ROM成本而被廣泛使用;唯一的不同在於,EPROM晶片被封在不透明的封裝中,因此這種晶片在寫入程式後無法擦除。這種一次性可編程技術,用於生產EPROM和基於EPROM的微控制器。然而,一次性可編程EPROM正逐漸被快閃記憶體(flash memory)晶片所取代,後者具有相近的矽片價格,並且在一個無窗口封裝中可重複編程。
浮柵電晶體的截面示意圖
EEPROM,或稱E2PROM,全稱「電子抹除式可複寫唯讀記憶體 (Electrically-Erasable Programmable Read-Only Memory)」。相比EPROM,EEPROM不需要用紫外線照射,也不需取下,就可以用特定的電壓,來抹除晶片上的資訊,以便寫入新的數據。
EEPROM有四種工作模式:讀取模式、寫入模式、擦拭模式、校驗模式。讀取時,晶片只需要Vcc低電壓(一般+5V)供電。編程寫入時,晶片通過Vpp(一般+25V, 較新者可能使用 12V 或 5V)獲得編程電壓,並通過PGM編程脈衝(一般50ms)寫入數據。擦拭時,只需使用Vpp高電壓,不需要紫外線,便可以擦拭指定位址的內容。為保證寫入正確,在每寫入一塊數據後,都需要進行類似於讀取的校驗步驟,若錯誤就重新寫入。現今的 EEPROM 通常已不再需要使用額外的 Vpp 電壓,且寫入時間也已有縮短。
由於EEPROM的優秀性能,以及在線上操作的便利,它被廣泛用於需要經常擦拭的BIOS晶片以及快閃記憶體晶片,並逐步替代部分有斷電保留需要的RAM晶片,甚至取代部份的硬碟功能(見SSD)。它與高速RAM成為當前(21世紀00年代)最常用且發展最快的兩種儲存技術。
歷史
1978年,Intel公司的George Perlegos在EPROM技術的基礎上,改用薄的閘極氧化層,以便無需紫外光,晶片就可以用電氣方式抹除自身的位元,因而開發出型號為2816的16kbit EEPROM。Perlegos與一些同事後來離開Intel,創立Seeq Technology公司後,在晶片上內建電荷泵(charge pump)以提供燒錄時自身所需的高電壓,因而推出只需5V電壓的EEPROM,利於實施線上燒錄(In-System Programming,ISP 或稱 In-Circuit Programming,ICP)。[1]
有的 EEPROM 是包含於其他元件中,為該元件的一部份。 例如:MCU 中可能包含用來儲存程式或資料的 EEPROM、數位電位器(Digital Potentiometer)內也需要 EEPROM 來儲存目前的設定值。
單獨的 EEPROM 元件,其介面通常可分為序列式(serial)與並列式(parallel)兩類。除電源線外,序列式只使用1~4隻接線來傳遞訊號,所需接腳較並列式少,通常用來儲存資料。執行用的程式則通常放在並列式的 EEPROM 中,以利存取。
- Microwire 介面(3線):型號為以 93 開頭的系列。例:93C46
- I2CTM 介面(2線):型號為以 24 開頭的系列。例:24LC02
- SPI 介面(3線):型號為以 25 開頭的系列。例:25LC08
- UNI/OTM 介面(1線):由 Microchip 公司出品,型號為以 11 開頭的系列。
- 1-Wire® 介面(1線):由 Dallas / Maxim 公司出品。
型號通常為以 28 開頭的系列。
至於型號通常為以 29 或 49 開頭的系列,寫入須以較大的區塊為單位,此種記憶體一般會使用 Flash (閃存/快閃記憶體)來稱呼。至於能以較小單位(例如以位元組)擦拭或寫入的則才以 EEPROM 稱呼,以作區別。
唯讀記憶體(Read-Only Memory,ROM)是一種半導體記憶體,其特性是一旦儲存資料就無法再將之改變或刪除,且內容不會因為電源關閉而消失。在電子或電腦系統中,通常用以儲存不需經常變更的程式或資料,例如早期的家用電腦如 Apple II 的監督程式 [1] 、 BASIC 語言直譯器、與硬體點陣字型,個人電腦 IBM PC/XT/AT 的 BIOS(基本輸出入系統) [2] 與 IBM PC/XT 的 BASIC 直譯器,與其他各種微電腦系統中的韌體(Firmware),均儲存在 ROM 內。
-------------------------------------------------------------------------------------------------
For 3-12-------------------------------------------------------------------------------------
1GHZ => CPI=1ns
CPU ➔(1ns)➔ L1➔(10ns) ➔ L2 ➔(200ns)➔ M
1ns + 5%*10ns + 1%*200ns
=1ns+0.5ns+2ns=3.5ns
CPI=> 3.5ns/1ns=3.5
Cycles per instruction(CPI)
CPI: Cycles per Instruction
指一個指令執行的時候CPU的運行的周期。
指一個指令執行的時候CPU的運行的周期。
|
Explanation
- Instruction fetch cycle (IF)
- Instruction decode/Register fetch cycle (ID)
- Execution/Effective address cycle (EX)
- Memory access (MEM)
- Write-back cycle (WB)
Each stage requires one clock cycle and an instruction passes through the stages sequentially. Without pipelining, a new instruction is fetched in stage 1 only after the previous instruction finishes at stage 5. Therefore without pipelining the number of cycles it takes to execute an instruction is 5. This is the definition of CPI.
With pipelining we can improve the CPI by exploiting instruction level parallelism. For example, what if an instruction is fetched every cycle? We could theoretically have 5 instructions in the 5 pipeline stages at once (one instruction per stage). In this case, a different instruction would complete stage 5 in every clock cycle, and therefore on average we have one clock cycle per instruction (CPI = 1).
With a single-issue processor, the best CPI attainable is 1. However with multiple-issue processors, we may achieve even better CPI values. For example a processor that issues two instructions per clock cycle (see Superscalar) can achieve a CPI of 0.5 when two instructions are completing every clock cycle.
If a program has:
- 50% R-type instructions
- 15% load instructions
- 25% store instructions
- 8% branch instructions
- 2% jump instructions
then, the CPI is:
CPI = (4 × 50 + 5 × 15 + 4 × 25 + 3 × 8 + 3 × 2) / 100 = 4.05.
------------------------------------------------------------------------------------------------------
For 3-13-------------------------------------------------------------------------------------
Ref. to 學貫EY814_計算機組織,5e(中譯本)_Ch05_記憶體系統.ppt ch5.7
快取文件置換機制
快取檔案置換方法有:
- 先進先出演算法(FIFO)
- 最近最少使用演算法(LFU):選擇最近最少使用的頁面作為替換的物件
- 最久沒有使用演算法(LRU):近期最久沒有存取的頁面作為替換物件
- Belady's Min
------------------------------------------------------------------------------------------------------
For 3-14 -----------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
For 3-15 -----------------------------------------------------------------------------
Tag+block+data=32bit
Data=16Byte=> 2^4 => 4bit
Block = 16K bytes/16byte => 1k =2^10 => 10bits
Tag = 32-4-10=18 bits
Tag RAM = 18bits * 1k block = 18kbits
沒有留言:
張貼留言