日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

SDRAM詳細分析——03 流水線內(nèi)存訪問和內(nèi)存效率

大家好,這里是大話硬件。

在上一篇文章中介紹了SDRM讀寫數(shù)據(jù)最基礎的內(nèi)存訪問周期,其中提到了因為電容漏電,SDRAM工作時需要不停的刷新,這無疑是會降低DDR的效率。

為了進一步提升DDR的效率,目前采用的技術是流水線內(nèi)存訪問方式。

對硬件開發(fā)人員來說,流水線內(nèi)存訪問的實現(xiàn)的基礎是SDRAM的命令總線和數(shù)據(jù)總線分開。

下面的圖解釋了流水線操作指令的核心。

命令總線先發(fā)出對bank0的操作,然后發(fā)出對bank1的操作,此時數(shù)據(jù)線開始傳輸bank0的數(shù)據(jù),在傳輸bank0的數(shù)據(jù)的同時,命令總線并沒有閑著,繼續(xù)發(fā)送對bank2的操作,當bank0的數(shù)據(jù)傳輸完成后,因為bank1的命令提前就已經(jīng)下達了,所以數(shù)據(jù)總線可以直接無縫切換傳輸bank1的數(shù)據(jù)。

命令和數(shù)據(jù)分開方式,就像我們并行工作一樣,當我們在設計A項目原理圖時,B項目的項目經(jīng)理會提前告訴我們B項目要做的事情,這并不會影響我們正在開發(fā)的A項目。當A項目圖畫好以后,因為前期已經(jīng)下達過任務,又開始直接干B項目。本質(zhì)就是提高效率。如果等你干完A項目,B項目再來分配任務,就會耽誤這個分配的時間。

上面這種無縫切換,命令總線不空閑的方式就是流水線技術的核心,極大地減少了內(nèi)存因為等待指令而產(chǎn)生的空閑時間。對硬件來說,數(shù)據(jù)總線上會一直存在數(shù)據(jù)。那么在相同的之間內(nèi),可以帶來更高的效率和數(shù)據(jù)吞吐量。

從前面的分析可知,SDRAM的刷新會影響效率,但是流水線指令又能增加效率,那到底如何定義這個內(nèi)存效率呢?

內(nèi)存效率定義公式:

efficiency=transfer_cycles/ total_cycles

這個公式說明內(nèi)存效率關注的是SDRAM到底有多少個周期是在傳輸數(shù)據(jù)。這個比值越高,就說明內(nèi)存的利用率越高。

一共有五個方面會影響到內(nèi)存效率。

第一個:刷新效率

SDRAM因為內(nèi)部構造原因,需要定期的進行刷新來保持數(shù)據(jù)不丟失。根據(jù)狀態(tài)機的可知,在進行刷新操作時,肯定不能進行數(shù)據(jù)的傳輸。就像人要固定的時間吃飯睡覺補充能量而停下工作。這是SDRAM從制造出來就已經(jīng)決定的。

平均7.8us就需要對一個行進行刷新。

要想提升刷新效率,那必須對SDRAM內(nèi)部的設計進行改進,這個比較困難。因此,刷新效率很難改變。

第二個:讀寫效率

數(shù)據(jù)總線的方向在讀和寫之間切換是需要時間的,如果一會讀,一會寫,頻繁的切換方向,這些切換的開銷就會累積起來。

讀到寫需要花費2個時鐘周期,寫操作切換到讀操作,需要花費4個時鐘周期。可想而知,如果是連續(xù)大量的讀或者大量的寫,效率就會比較高。

所以優(yōu)化內(nèi)存讀寫效率,就需要在命令總線上巧妙的安排指令,盡可能將相同的指令安排在一起,減少數(shù)據(jù)來回的切換。

第三個: Bank沖突效率

SDRAM內(nèi)部是多bank架構,如果連續(xù)兩次訪問請求都是指向同一個bank的不同行,就需要先關閉前一行,再打開新的一行,這個過程非常消耗時間,就會產(chǎn)生沖突,降低效率。

根據(jù)SDRAM的時序約束要求,如果要激活同一個bank的新行,命令需要至少等待12個周期。但是如果訪問時,是切換不同的行,就只需要等待2個周期,這樣就能極大的降低bank沖突帶來的影響。

第四個:命令沖突效率

命令總線上發(fā)出的效率比較密集,就會發(fā)生沖突,造成延遲。

數(shù)據(jù)總線是雙倍速率傳輸,命令總線是單倍速率傳輸,這樣數(shù)據(jù)總線完成數(shù)據(jù)傳輸后,但是命令總線的指令還未及時下發(fā),就會導致多個指令一起要發(fā)出,造成沖突。

第五個:數(shù)據(jù)效率

SDRAM在一次操作中取回的數(shù)據(jù)是不是百分百都是我們想要的,有時候為了數(shù)據(jù)對齊,內(nèi)存會一次性讀取一個數(shù)據(jù)塊,但只有其中一部分的有效的,多取出來的部分就造成了浪費。

這和內(nèi)存工作方式有很大的關系。內(nèi)存并不是一個字節(jié)一個字節(jié)單獨讀取數(shù)據(jù),這樣太慢,通常是一個固定大小的塊來讀取,如下所示,有用的數(shù)據(jù)只有中間的紅色的部分,但是讀取的時候,是一行全部獲取。

從下面的資料可以看出,讀取數(shù)據(jù)的突發(fā)長度不一樣,效率也是不一樣的。

根據(jù)上面的分析可知,內(nèi)存效率和內(nèi)存在工作時的訪問方式有非常大的關系。巧妙的安排指令的順序,數(shù)據(jù)是否在同一個bank,每次取出數(shù)據(jù)塊的大小,數(shù)據(jù)的對齊方式等等都是會影響到內(nèi)存的效率。所以,設計出一個高效的SDRAM控制器在應對高數(shù)據(jù)帶寬的場合非常重要。

下一節(jié)介紹內(nèi)存控制器。

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉載。授權事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 1
收藏 2
關注 606
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧