日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SRAM工作原理

發(fā)布時(shí)間:2024/3/12 编程问答 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SRAM工作原理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

搞FPGA,SRAM是必過(guò)的一關(guān),畢竟芯片最核心的就是運(yùn)算與存儲(chǔ),本篇文章屬于轉(zhuǎn)載,詳細(xì)介紹了標(biāo)準(zhǔn)工藝下的SRAM工作原理,一般工藝庫(kù)或者實(shí)例化的SRAM使用的就是這種標(biāo)準(zhǔn)SRAM,有地址譯碼器,地址線,數(shù)據(jù)線,位寬,讀寫(xiě)使能,總體結(jié)構(gòu)還是非常清晰的。當(dāng)然了,還有一些定制的SRAM,這種往往設(shè)計(jì)就比較靈活了,結(jié)構(gòu)也略微不一樣,用在專(zhuān)用電路里面,比如存內(nèi)計(jì)算,憶阻器RRAM啥的,本篇不作為重點(diǎn)。。

一、SRAM概述


? ? ? ?SRAM主要用于二級(jí)快速緩存(Level2 C ache)。

它利用晶體管來(lái)存儲(chǔ)數(shù)據(jù)。與DRAM相比,SRAM的速度快,但在同樣面積中SRAM的容量要比其它類(lèi)型的內(nèi)存小。

? ? ? 大部分FPGA器件採(cǎi)用了查找表(Look Up Table,LUT)結(jié)構(gòu)。

查找表的原理類(lèi)似于ROM,其物理結(jié)構(gòu)是靜態(tài)存儲(chǔ)器(SRAM),

N個(gè)輸入項(xiàng)的邏輯函數(shù)能夠由一個(gè)2^N位容量的SRAM實(shí)現(xiàn)

? ? ? ?函數(shù)值存放在SRAM中,SRAM的地址線起輸入線的作用,地址即輸入變量值,SRAM的輸出為邏輯函數(shù)值。由連線開(kāi)關(guān)實(shí)現(xiàn)與其它功能塊的連接。


二、SRAM基本原理


2.1、SRAM結(jié)構(gòu)圖




SRAM結(jié)構(gòu)圖

  • corecells array:存儲(chǔ)單元陣列
  • decode:行列地址譯碼器
  • Sense Amplifier:靈敏放大器
  • conntrol circuit:控制電路
  • FFIO:緩沖/驅(qū)動(dòng)電路

  在圖中,A0-Am-1為地址輸入端,CSB. WEB和OEB為控制端,控制讀寫(xiě)操作,為低電平有效,I/O(0)-I/O(N-1)為數(shù)據(jù)輸入輸出端。存儲(chǔ)陣列中的每個(gè)存儲(chǔ)單元都與其他單元在行和列上共享電學(xué)連接,當(dāng)中水平方向的連線稱(chēng)為“字線”,而垂直方向的數(shù)據(jù)流入和流出存儲(chǔ)單元的連線稱(chēng)為“位線”。通過(guò)輸入的地址可選擇特定的字線和位線。字線和位線的交叉處就是被選中的存儲(chǔ)單元。每個(gè)存儲(chǔ)單元都是按這個(gè)方案被唯一選中,然后再對(duì)其進(jìn)行讀寫(xiě)操作。有的存儲(chǔ)器設(shè)計(jì)成多位數(shù)據(jù)如4位或8位等同一時(shí)候輸入和輸出,這種話,就會(huì)同一時(shí)候有4個(gè)或8個(gè)存儲(chǔ)單元按上述方法被選中進(jìn)行讀寫(xiě)操作。


2.2、SRAM六管結(jié)構(gòu)電路圖



點(diǎn)此查看電路原理具體解釋


2.3、為什么要將存儲(chǔ)單元陣列排成矩陣形式?


在SRAM 中,排成矩陣形式的存儲(chǔ)單元陣列的周?chē)亲g碼器和與外部信號(hào)的接口電路。存儲(chǔ)單元陣列通常採(cǎi)用正方形或矩陣的形式,以降低整個(gè)芯片面積并有利于數(shù)據(jù)的存取。以一個(gè)存儲(chǔ)容量為4K位的SRAM為例,共需12條地址線來(lái)保證每個(gè)存儲(chǔ)單元都能被選中(212 =-4096)。假設(shè)存儲(chǔ)單元陣列被排列成僅僅包括一列的長(zhǎng)條形,則須要一個(gè)12/4K位的譯碼器。但假設(shè)排列成包括64行和64列的正方形,這時(shí)則僅僅需一個(gè)6/64位的行譯碼器和一個(gè)6/64位的列譯碼器。行、列譯碼器可分別排列在存儲(chǔ)單元陣列的兩邊,64行和64列共同擁有4096個(gè)交叉點(diǎn)。每個(gè)點(diǎn)就相應(yīng)一個(gè)存儲(chǔ)位。

因此,將存儲(chǔ)單元排列成正方形比排列成一列的長(zhǎng)條形要大大地降低整個(gè)芯片地面積。存儲(chǔ)單元排列成長(zhǎng)條形除了形狀神秘和面積大以外,另一個(gè)缺點(diǎn),那就是排在列的上部的存儲(chǔ)單元與數(shù)據(jù)輸入/輸出端的連線就會(huì)變得非常長(zhǎng),特別是對(duì)于容量比較大得存儲(chǔ)器來(lái)說(shuō)。情況就更為嚴(yán)重,而連線的延遲至少是與它的長(zhǎng)度成線性關(guān)系。連線越長(zhǎng),線上的延遲就越大。所以就會(huì)導(dǎo)致讀寫(xiě)速度的降低和不同存儲(chǔ)單元連線延遲的不一致性,這些都是在設(shè)計(jì)中須要避免的。



三、SRAM的存儲(chǔ)原理


3.1、從RAM的存儲(chǔ)原理講起


? ? ? ? RAM基本的作用就是存儲(chǔ)代碼和數(shù)據(jù)供CPU在須要的時(shí)候調(diào)用??墒沁@些數(shù)據(jù)并非像用袋子盛米那么簡(jiǎn)單。更像是 圖書(shū)館中用有格子的書(shū)架存放書(shū)籍一樣。不但要放進(jìn)去還要可以在須要的時(shí)候準(zhǔn)確的調(diào)用出來(lái)。盡管都是書(shū)可是每本書(shū)是不同的。

對(duì)于RAM等存儲(chǔ)器來(lái)說(shuō)也是一樣的,盡管存儲(chǔ)的都是代表0和1的代碼,可是不同的組合就是不同的數(shù)據(jù)。讓我們又一次回到書(shū)和書(shū)架上來(lái),假設(shè)有一個(gè)書(shū)架上有10行和10列格子(每行和每列都有0-9的編號(hào)),有100本書(shū)要存放在里面,那么我們使用一個(gè)行的編號(hào)+一個(gè)列的編號(hào)就能確定某一本書(shū)的位置。假設(shè)已知這本書(shū)的編號(hào)87,那么我們首先鎖定第8行。然后找到第7列就能準(zhǔn)確的找到這本書(shū)了。

在RAM存儲(chǔ)器中也是利用了相似的原理。

  如今讓我們回到RAM存儲(chǔ)器上,對(duì)于RAM存儲(chǔ)器而言數(shù)據(jù)總線是用來(lái)傳入數(shù)據(jù)或者傳出數(shù)據(jù)的。

由于存儲(chǔ)器中的存儲(chǔ)空間是假設(shè)前面提到的存放圖書(shū)的書(shū)架一樣通過(guò)一定的規(guī)則定義的,所以我們能夠通過(guò)這個(gè)規(guī)則來(lái)把數(shù)據(jù)存放到存儲(chǔ)器上相應(yīng)的位置。而進(jìn)行這樣的定位的工作就要依靠地址總線來(lái)實(shí)現(xiàn)了。

對(duì)于CPU來(lái)說(shuō)。RAM就象是一條長(zhǎng)長(zhǎng)的有非常多空格的細(xì)線。每一個(gè)空格都有一個(gè)唯一的地址與之相相應(yīng)。

假設(shè)CPU想要從RAM中調(diào)用數(shù)據(jù),它首先須要給地址總線發(fā)送地址數(shù)據(jù)定位要存取的數(shù)據(jù),然后等待若干個(gè)時(shí)鐘周期之后,數(shù)據(jù)總線就會(huì)把傳輸數(shù)據(jù)給CPU。

以下的示意圖能夠幫助我們非常好的理解這個(gè)過(guò)程。




  上圖中的小圓點(diǎn)代表RAM中的存儲(chǔ)空間,每個(gè)都有一個(gè)唯一的地址線同它相連。

當(dāng)?shù)刂方獯a器接收到地址總線送來(lái)的地址數(shù)據(jù)之后。它會(huì)依據(jù)這個(gè)數(shù)據(jù)定位CPU想要調(diào)用的數(shù)據(jù)所在的位置,然后數(shù)據(jù)總線就會(huì)把當(dāng)中的數(shù)據(jù)傳送到CPU。
  上面所列舉的樣例中CPU在一行數(shù)據(jù)中每次僅僅是存取一個(gè)字節(jié)的數(shù)據(jù)??墒窃诂F(xiàn)實(shí)世界中是不同的。通常CPU每次須要調(diào)用32bit或者是64bit的數(shù)據(jù)(這是依據(jù)不同計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)總線的位寬所決定的)。假設(shè)數(shù)據(jù)總線是64bit的話,CPU就會(huì)在一個(gè)時(shí)間中存取8個(gè)字節(jié)的數(shù)據(jù)(想一想,假設(shè)每次還是存取1個(gè)字節(jié)的數(shù)據(jù),64bit總線將不會(huì)顯示出來(lái)不論什么的優(yōu)勢(shì)。



從“線”到“矩陣”

  假設(shè)RAM對(duì)于CPU來(lái)說(shuō)不過(guò)一條“線”的話。還不能體現(xiàn)實(shí)際的執(zhí)行情況。由于假設(shè)實(shí)際情況真的是這種話,在實(shí)際制造芯片的時(shí)候,會(huì)有非常多實(shí)際的困難。特別是在須要設(shè)計(jì)大容量的RAM的時(shí)候。

所以。一種更好的可以減少成本的方法是讓存儲(chǔ)信息的“空格”排列為非常多行--每一個(gè)“空格”相應(yīng)一個(gè)bit存儲(chǔ)的位置。這樣。假設(shè)要存儲(chǔ)1024bits(2^10)數(shù)據(jù),那么你只要使用32x32(2^5*2^5=2^10)的矩陣就行達(dá)到這個(gè)目的了。非常明顯。一個(gè)32x32的矩陣比一個(gè)1024bit的行設(shè)備更緊湊。實(shí)現(xiàn)起來(lái)也更加easy。請(qǐng)看下圖:




  知道了RAM的基本結(jié)構(gòu)是什么樣子的。我們就以下談?wù)劗?dāng)存儲(chǔ)字節(jié)的過(guò)程是如何的:上面的示意圖顯示的也不過(guò)最簡(jiǎn)單狀態(tài)下的情況,也就是當(dāng)內(nèi)存條上只唯獨(dú)一個(gè)RAM芯片的情況。對(duì)于X86處理器。它通過(guò)地址總線發(fā)出一個(gè)具有22位二進(jìn)制數(shù)字的地址編碼--當(dāng)中11位是行地址,另外11位是列地址,這是通過(guò)RAM地址接口進(jìn)行分離的。行地址解碼器(row decoder)將會(huì)首先確定行地址,然后列地址解碼器(column decoder)將會(huì)確定列地址,這樣就能確定唯一的存儲(chǔ)數(shù)據(jù)的位置,然后該數(shù)據(jù)就會(huì)通過(guò)RAM數(shù)據(jù)接口將數(shù)據(jù)傳到數(shù)據(jù)總線。另外,須要注意的是,RAM內(nèi)部存儲(chǔ)信息的矩陣并非一個(gè)正方形的,也就是行和列的數(shù)目不是同樣的--行的數(shù)目比列的數(shù)目少(DRAM)。


3.2、SRAM的存儲(chǔ)原理


以下的示意圖粗略的概括了一個(gè)主要的SRAM芯片是怎樣工作的。SRAM是“static RAM(靜態(tài)隨機(jī)存儲(chǔ)器)”的簡(jiǎn)稱(chēng),之所以這樣命名是由于當(dāng)數(shù)據(jù)被存入當(dāng)中后不會(huì)消失(同DRAM動(dòng)態(tài)隨機(jī)存儲(chǔ)器是不同,DRAM必須在一定的時(shí)間內(nèi)不停的刷新才干保持當(dāng)中存儲(chǔ)的數(shù)據(jù))。

一個(gè)SRAM單元通常由4-6僅僅晶體管組成,當(dāng)這個(gè)SRAM單元被賦予0或者1的狀態(tài)之后,它會(huì)保持這個(gè)狀態(tài)直到下次被賦予新的狀態(tài)或者斷電之后才會(huì)更改或者消失。

SRAM的速度相對(duì)照較快。并且比較省電??墒谴鎯?chǔ)1bit的信息須要4-6僅僅晶體管制造成本太高了(DRAM僅僅要1僅僅晶體管就能夠?qū)崿F(xiàn))。

一個(gè)SRAM單元——4-6僅僅晶體管——存儲(chǔ)1bit的信息




3.3、RAM芯片和SRAM芯片


  RAM芯片:

  前面的介紹都相對(duì)照較簡(jiǎn)單、抽象。以下我們會(huì)結(jié)合實(shí)際的RAM芯片進(jìn)行介紹。在談到這個(gè)問(wèn)題的時(shí)候。我們會(huì)涉及到一個(gè)比較重要的技術(shù):封裝。你應(yīng)該聽(tīng)說(shuō)過(guò)諸如30線SIMMS、72線SIMMS和168線DIMMS或者RIMMs當(dāng)中的一個(gè)或者幾個(gè)術(shù)語(yǔ)吧。假設(shè)要解釋這些術(shù)語(yǔ)之間的不同。就應(yīng)該了解RAM的封裝技術(shù)。



  SRAM芯片:

  早期的SRAM芯片採(cǎi)用了20線雙列直插(DIP:Dual Inline Package)封裝技術(shù),它們之所以具有這么多的針腳,是由于它們必須:每一個(gè)地址信號(hào)都須要一根信號(hào)線;一根數(shù)據(jù)輸入線和一根數(shù)據(jù)輸出線,部分控制線(Write Enable, Chip Select)。

以下的是一個(gè)16K x 1-bit SRAM芯片的針腳功能示意圖:



  Input:A0-A13是地址輸入信號(hào)引腳,CS是芯片選擇引腳。在一個(gè)實(shí)際的系統(tǒng)中,一定具有非常多片SRAM芯片,所以須要選擇到底從那一片SRAM芯片中寫(xiě)入或者讀取數(shù)據(jù)。WE是寫(xiě)入啟用引腳(如上表,在CS、WE上面的線我沒(méi)有寫(xiě)入,表示低電平有效或者是邏輯0時(shí)有效):當(dāng)SRAM得到一個(gè)地址之后。它須要知道進(jìn)行什么操作,到底是寫(xiě)入還是讀取,WE就是告訴SRAM要寫(xiě)入數(shù)據(jù)。Vcc是供電引腳。Din是數(shù)據(jù)輸入引腳。Dout是數(shù)據(jù)輸出引腳。GND是接地引腳

  Output:Dout引腳

  Enable(OE):有的SRAM芯片中也有這個(gè)引腳,可是上面的圖中并沒(méi)有。

這個(gè)引腳同WE引腳的功能是相對(duì)的。它是讓SRAM知道要進(jìn)行讀取操作而不是寫(xiě)入操作。

3.4、SRAM的讀取與存儲(chǔ)操作流程

從Dout引腳讀取1bit數(shù)據(jù)須要下面的步驟:

1)通過(guò)地址總線把要讀取的bit的地址傳送到對(duì)應(yīng)的讀取地址引腳(這個(gè)時(shí)候/WE引腳應(yīng)該沒(méi)有激活,所以SRAM知道它不應(yīng)該運(yùn)行寫(xiě)入操作)。

2)激活/CS選擇該SRAM芯片。

3)激活/OE引腳讓SRAM知道是讀取操作。

第三步之后,要讀取的數(shù)據(jù)就會(huì)從DOut引腳傳輸?shù)綌?shù)據(jù)總線。

怎么過(guò)程很的簡(jiǎn)單吧?相同。寫(xiě)入1bit數(shù)據(jù)的過(guò)程也是很的簡(jiǎn)單的。


從Dout引腳存儲(chǔ)1bit數(shù)據(jù)須要下面的步驟:

1)通過(guò)地址總線確定要寫(xiě)入信息的位置(確定/OE引腳沒(méi)有被激活)。

2)通過(guò)數(shù)據(jù)總線將要寫(xiě)入的傳輸數(shù)據(jù)到Dout引腳。

3)激活/CS引腳選擇SRAM芯片。

4)激活/WE引腳通知SRAM知道要進(jìn)行寫(xiě)入操作。

經(jīng)過(guò)上面的四個(gè)步驟之后,須要寫(xiě)入的數(shù)據(jù)就已經(jīng)放在了須要寫(xiě)入的地方。



----------------------------------------------我是驕傲的昏割線-----------------------------------------------------

經(jīng)過(guò)剛才從棟哥那里的確認(rèn),我如今的崗位是純研發(fā)崗,純的哦。純的。啊哈哈哈哈哈哈

要不要這么開(kāi)森(捂臉跑)


參考:

https://www.cnblogs.com/fhyfhy/p/4528425.html
https://www.cnblogs.com/ant2012/archive/2012/02/21/2360686.html

總結(jié)

以上是生活随笔為你收集整理的SRAM工作原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。