雙端口RAM和多模塊存儲器


雙端口RAM

提高存儲器訪存速度一些措施。

存取周期

進行一次存取之后,是不能立即進入下一次存取的,存儲器要進行一次恢復。

存取周期=存取時間+恢復時間

  1. 對不同時間進行不同存取操作,雙端RAM
  2. 流水線的方式,多模塊存儲器

雙端口RAM

置一個忙信號

多模塊存儲器

CPU的速度比存儲器要快的,如果從存儲器中同時存取n個字。可以提高cpu使用資源

補充:可以並行工作,如總線寬度為mW時,可以同時取出長度為mW的數據。

普通存儲器

每行為1個存儲單元

單體多字存儲器

每個存儲單元存儲m個字,總線寬度也為m個字,一行並行讀出m個字。

增加了存儲器的帶寬。

缺點:指令和數據在主存內必須連續存放。

多體並行的存儲器

每個模塊都有相同的容量和存取速度,各個模塊都有獨立的讀寫控制電路、地址寄存器和數據寄存器

編制方式:

高位交叉編址的多體存儲器

高位是體號,低位是體內地址

假如有8個存儲單元

相當於說,先確定是哪一個(存儲體),然后在在那一個里面找相對應的一塊。

低位交叉編址的多提存儲器

低位是體號,高位是體內地址

假如有8個存儲單元

先找到具體的位置,在看哪一個存儲體。

為什么要這么弄?

假如每個存儲體的存儲周期為T

連續訪問:

00000

00001

00010

00011

00100

高位

其實就是在M0里一直訪問

時空圖:

如果連續訪問這個5個地址,需要花費5t個時間。並沒有帶來什么好處。

高位交叉編址相當於擴容,每個其實還是相當於獨立的,並沒有帶來時間優勢。

采用高位交叉編址,連續取n個存儲字,耗時nT

低位

先訪問M0的0號單元,接下來00001,是M1的0號單元,只需要間隔一小段時間。然后就是M2,M3.都是用一小段時間。可以相當於是同時訪問。大大減少了存取時間。

時空圖:

時間如何計算?

假設啟動完M0后啟動M1的時間間隔是τ,啟動完M1在啟動M2的時間間隔是τ、啟動完M2在啟動M3的時間間隔是τ,接下來啟動完M3在啟動M0的時間間隔也是τ

所以就有總時間T+4τ

假如連續存取n個存儲字,采用低位交叉編址,耗時:T+(n-1)τ

流水線(考試常考)

微觀(計算題)

有m個存儲體,存儲周期是T,字長W,每隔r時間啟動下一個存儲體,連續存放n個字,求存儲器的存取速率。

\[連續存取n個字耗時=T+(n-1)r \]

\[!!!注意:m≥T/r \]

如果m<T/r

還需要在等多一個r

如果m>T/r

所以:

\[帶寬=\frac{n*w}{T+(n-1)r} \]

如果n較大時,帶寬->W/r

對比單個存儲體的帶寬:W/T

宏觀(概念題)

一個存儲周期內,交叉存儲器可以提供的數據量為單個模塊的m倍。

回顧

提出這樣的存儲器是為了提高CPU的訪存速度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM