1. 程式人生 > >一分鐘理解系列—半導體儲存晶片的知識點總結

一分鐘理解系列—半導體儲存晶片的知識點總結

在計算機的儲存器中,按儲存介質進行分類的話,可將儲存器分成半導體儲存器、磁表面儲存器、磁芯儲存器、光碟儲存器。而除了半導體儲存器中的資料易失以外,其他的儲存介質都具有非易失的特性。 **那麼,半導體儲存晶片的結構是怎樣的呢?** 話不多說,我們來看下吧。 #### 半導體儲存晶片的基本結構 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2020040118390946.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTY5NTk5NQ==,size_16,color_FFFFFF,t_70#pic_center) 半導體儲存晶片由==譯碼驅動電路==、==儲存矩陣==、==讀寫電路==、==地址線==、==資料線==、==控制線==、==片選線==組成。其中,譯碼驅動電路、儲存矩陣、讀寫電路屬於核心結構。 儲存矩陣用來儲存0/1程式碼,地址線、資料線主要用來連線CPU和外部裝置。現在假設CPU或者外部裝置給出地址,表示要存/取的資料在儲存矩陣的哪個儲存單元中,然後經過譯碼驅動電路,選擇對應的儲存單元,從而完成存/取資料。 地址線是單向的,由CPU指向儲存器,或者由I/O裝置的控制器指向儲存器。資料線是雙向的。由地址線和資料線可以計算出晶片的容量。那麼如何計算呢?感興趣的朋友可以閱讀之前的這篇文章。[吐血整理!這篇帶你徹底理解主存中儲存單元地址的分配](https://blog.csdn.net/weixin_41695995/article/details/105057381) 片選線,也叫做晶片選擇訊號,指出這次存/取操作給出的地址是不是這個儲存晶片的地址。半導體儲存晶片的片選線一般有兩種標識方式,表示方式如下所示: ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2020040120491991.jpg) CS(晶片選擇訊號),CE(晶片使能訊號),低電平表示有效,高電平表示無效,也就是說,如果片選線訊號為低電平,則表示想要存/取的資料位於片選線所在的晶片中。 讀寫控制線,表示這次對半導體晶片的操作是讀操作還是寫操作。可以用一根線或者兩根線表示,用一根線表示的話是WE,用兩根線表示的話是WE和OE,具體如下所示: ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200401205950630.jpg) #### 儲存晶片片選線的作用 接下來我們來詳細討論下儲存晶片中,片選線的作用。 假設CPU現在要求用16K×1位的儲存晶片組成64K×8位的儲存器。如何用16K×1位的儲存晶片組成64K×8位的儲存器? 我們用圖來看下,實際上這個問題解決並不難 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2020040121075748.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTY5NTk5NQ==,size_16,color_FFFFFF,t_70) 16K×1表示儲存容量,每個儲存單元儲存1位的0/1資料。那麼,我們用8個這樣的晶片,對8個晶片相同的地址同時進行操作,每個晶片給出1位,8個晶片就構成了16K×8的儲存器。 但是,CPU要求的是64K?這個應該怎麼做? 實際上,也不難,每8個晶片分成1組,然後複製4組,就構成了64K×8的儲存器。 在進行讀寫操作時,8個晶片是同時進行工作的,所以,他們的片選線是連線在一起的。 然後對64K的空間進行劃分,所以CPU的地址中0-(16K-1)的地址分配到第一組的晶片中,16K-(32K-1)的地址分配到第二組的晶片中,32K-(48K-1)的地址分配到第三組的晶片中,48K-(64K-1)的地址分配到第三組的晶片中分配到第四組的晶片中。 現在假設訪問的地址是65535,進行寫操作,那麼這個地址表示的儲存晶片應該在最後一組中,片選訊號看到這個地址後,就會選擇最後一組,其他三組晶片對應的片選訊號是無效的,就是高電平,最後一組對應的片選訊號是有效的,也就是低電平,資料就會儲存在最後一組的儲存晶片當中。 #### 半導體儲存晶片的譯碼驅動方式 譯碼驅動電路的作用是:**在給出地址之後,根據這個地址取找到這個地址對應的儲存單元**。 而半導體儲存晶片的譯碼驅動方式有兩種:==線選法==,==重合法==。 我們先來看下線選法 ###### 線選法 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200401212652428.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTY5NTk5NQ==,size_16,color_FFFFFF,t_70) 在上圖中,有A0-A3的4位地址,那麼2^4^表示有16個儲存單元,那麼每個儲存單元可以儲存多少位?圖中給出的資料線是從D0-D7,一共8位。綜合起來,就表示這是一個16K×8的儲存器。 如何進行選擇? 在上圖中,地址譯碼器輸入的是4根線,輸出的16根線。給定一個輸入,在輸出這一端,只有一根線是有效的,只有一根線上的訊號會控制相應的儲存單元中的所有儲存元件進行資料的輸入或者輸出操作。 那麼在讀寫控制電路中,如果是讀選通,就會將資料矩陣中的資料進行對外輸出;如果是寫選通,就會將資料寫入到矩陣中的儲存元件中。 現在,來看下具體工作過程: 假設地址譯碼器給出的地址是全0,進行譯碼過後,只有0這根線是有效的,其他的都是無效的。現在進行的是讀操作,那麼就會控制讀/寫控制電路開啟,使得資料可以從儲存矩陣輸出到資料匯流排上。只有給定的單元才可以進行輸出。 那麼,線選法有沒有缺點呢?缺點是什麼? 在上圖的譯碼中,地址線是4根,容量是16K×8,現在的計算機儲存器,並不存在這麼小的容量。 現在假設有1M×8的儲存晶片,地址線有20根,經過譯碼器譯碼後就有1M條線,每給出一個地址,1M條線中,只有一條有效。而1M條線,就是1000000條線,做在晶片中將會非常密集,這麼高的整合度很難做到。 **所以,線選法對於容量很大的儲存器來說,是個不好的方法。** 接下來,來看下重合法 ###### 重合法 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200401215042516.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTY5NTk5NQ==,size_16,color_FFFFFF,t_70) 線上性法中,儲存單元的佈局方法是一個線性的陣列;而在重合法中,儲存單元的佈局方法是二維的陣列。 在重合法中,將地址分成了兩部分,一部分是X,另一部分是Y,也可以叫做行列地址。行列地址分別進行譯碼,只能有一根線是有效的。具體工作過程: 假設給出的行列地址都是全0,行列地址進行譯碼後只有(0.0)這條線是有效的。只有這條線上的儲存單元被選中。那麼這時候,Y0這條線上的開關就會開啟,資料就會通過這個開關進行資料輸出。在這個過程當中,X0上的除了Y0上的儲存單元的資料會進行輸入以外,其他的儲存單元上的資料一樣會進行輸出,但是,當資料經過Y31線上的開關時,由於這條線是無效的,資料會被攔截,所以,資料就輸出不了,所以資料沒有到資料線去。那麼Y0上的除了X0的儲存單元的資料會進行輸入以外,其他的儲存單元上的資料一樣會進行輸出,同樣的道理,就不另外解釋了。 那麼,重合法的優點是什麼? 在上面的線選法中,我們是假設有1M×8的儲存晶片,地址線有20根,用線選法的話,經過譯碼器譯碼後就有1M條線。那麼,同樣的大小,我們採用重合法的話,地址線就分成兩部分,每一部分都是1K條線,總計就是2K條線,那麼,就比線選法進行譯碼的1M條少很多了,這樣子,晶片就能做到很高的整合度。 #### 結語 講了那麼多,不知道各位是不是清晰的理解了呢哈哈? ## 如果覺得我寫的不錯的話,幫個忙唄 ##### 1.關注我的知乎賬號小叢,上面有我的文章同步,同時需要詢問學習計算機經驗的話,也歡迎私聊。 ##### 2.點贊,關注我,這是對我最大的鼓勵了,有了你們的鼓勵,我會寫出更多的優質