內存中的“BANK”

一、BANK的定義與物理結構
  1. 基本概念
    BANK(存儲體)?是內存芯片內部的一個邏輯或物理分區,每個BANK由存儲單元陣列、地址解碼電路和緩沖器組成,用于分塊管理內存操作。

    • 作用:通過并行操作減少訪問沖突,提升內存吞吐量。

  2. 物理實現

    • DRAM BANK結構

      • 存儲陣列:由行(Row)和列(Column)組成的電容矩陣。

      • 行解碼器:激活特定行(行地址)。

      • 靈敏放大器:讀取時放大電容電荷信號。

      • 列解碼器:選擇目標列(列地址)。

    • 典型BANK數量

      • DDR4:16-32個BANK(分4-8組BANK Group)。

      • GDDR6:16-32個獨立BANK。


二、BANK的核心意義
  1. 提升并行性與帶寬

    • 并行操作:多個BANK可同時執行激活、讀寫或預充電操作。

    • 帶寬增益公式
      帶寬提升倍數 ≈ BANK數量 / 平均訪問間隔周期
      (例如:4個BANK交錯訪問,帶寬提升3-4倍)

  2. 減少訪問延遲

    • 隱藏預充電時間(tRP):當一個BANK預充電時,其他BANK可繼續操作。

    • Bank Interleaving(交錯訪問):輪流訪問不同BANK,減少行沖突。

  3. 降低功耗

    • 局部激活:僅激活目標BANK的行,減少電容充放電范圍。

    • 動態功耗公式
      P_dynamic = α * C_eff * V_DD^2 * f
      (C_eff與激活的BANK數量正相關)


三、BANK的工作原理與訪問流程
  1. 地址映射

    • 地址組成
      物理地址 = BANK地址 + 行地址 + 列地址
      (例如:DDR4地址格式為?BG:BANK:ROW:COL

  2. 典型操作流程

    • 步驟1:激活目標BANK的行(ACT命令)。

    • 步驟2:讀取或寫入數據(RD/WR命令)。

    • 步驟3:預充電當前行(PRE命令),準備下次訪問。

  3. 多BANK并行示例

    • 時序重疊:BANK0激活(tRCD=15ns)期間,BANK1可讀取數據(tCAS=10ns)。


四、BANK對系統性能的影響
  1. Bank Conflict(存儲體沖突)

    • 定義:連續訪問同一BANK的不同行,需頻繁預充電,增加延遲。

    • 沖突概率公式
      P_conflict = 1 / BANK數量
      (例如:16個BANK的沖突概率≈6.25%)

  2. 優化手段

    • 增加BANK數量:DDR4通過BANK Group技術(4 Groups × 4 BANKs)降低沖突。

    • 地址交錯算法:控制器將連續地址映射到不同BANK。


五、不同內存技術中的BANK設計
內存類型BANK結構特點典型應用場景
DDR416-32 BANKs,分4-8 BANK Groups服務器、PC主內存
LPDDR516 BANKs,支持Bank Group Refresh手機、低功耗設備
HBM28-16垂直堆疊BANKs,通過TSV互聯高性能計算、AI加速卡
GDDR616-32獨立BANKs,高并發訪問優化顯卡顯存

六、設計注意事項
  1. 信號完整性

    • BANK地址(BA)信號需等長布線(偏差≤50mil),防止解碼錯誤。

  2. 時序約束

    • 同一BANK的兩次行激活間隔需滿足?tRC(Row Cycle Time)(DDR4-3200的tRC≈45ns)。

  3. 功耗管理

    • 多BANK同時激活時,配置低ESR去耦電容(如每BANK組1μF)。

  4. 控制器調度算法

    • 采用?FR-FCFS(First-Ready First-Come-First-Serve)?策略,優先處理無沖突請求。


總結
BANK是內存實現高效并行的核心架構,通過分塊管理提升帶寬并降低延遲。設計時需優化BANK數量、地址映射策略及控制器調度,以最大化性能并規避沖突。隨著3D堆疊(如HBM)技術發展,BANK的物理結構與控制邏輯將持續演進。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79702.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79702.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79702.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習——聚類算法練習題

一、 隨機創建不同二維數據集作為訓練集 ,并結合k-means算法將其聚類 ,你可以嘗試分別聚類不同數量的簇 ,并觀察聚類 效果: 聚類參數n_cluster傳值不同 ,得到的聚類結果不同 代碼展示: from sklearn.da…

kafka----初步安裝與配置

目錄標題 ?kafka 與 zookeeper間的關系一.集群部署二.修改配置文件三.分發安裝包四.啟動與關閉 kafka 與 zookeeper 相同,是以集群的形式使用 ?kafka 與 zookeeper間的關系 kafka 的使用 要在 zookeeper 集群配置好的基礎上 使用要想啟動kafka 要先啟動 zookeep…

進程與線程:07 CPU調度策略

一、課程內容概述 本節課程主要講解操作系統的CPU調度策略,聚焦于基本操作系統上的調度算法,探討其大致實現方式、需折中考慮的問題。CPU調度在不同場景下復雜程度不同,如衛星、導彈等實時性要求高的系統,需采用實時調度&#xf…

JPG與PDF格式轉換器

該插件可實現JPG與PDF格式的互轉。 MainForm.Designer.cs using System.Windows.Forms; namespace JpgToPdfConverter {partial class MainForm{private System.ComponentModel.IContainer components null;protected override void Dispose(bool disposing){if (disposing &…

LlamaIndex 第八篇 MilvusVectorStore

本指南演示了如何使用 LlamaIndex 和 Milvus 構建一個檢索增強生成(RAG)系統。 RAG 系統將檢索系統與生成模型相結合,根據給定的提示生成新的文本。該系統首先使用 Milvus 等向量相似性搜索引擎從語料庫中檢索相關文檔,然后使用生…

淺聊一下數據庫的索引優化

背景 這里的索引說的是關系數據庫(MSSQL)中的索引。 本篇不是純技術性的內容,只是聊一次性能調優的經歷,包含到一些粗淺的實現和驗證手段,所以,大神忽略即可。 額…對了,筆者對數據庫的優化手段…

【android bluetooth 框架分析 02】【Module詳解 7】【VendorSpecificEventManager 模塊介紹】

1. 背景 我們在 gd_shim_module 介紹章節中&#xff0c;看到 我們將 VendorSpecificEventManager 模塊加入到了 modules 中。 // system/main/shim/stack.cc modules.add<hci::VendorSpecificEventManager>();在 ModuleRegistry::Start 函數中我們對 加入的所有 module…

小剛說C語言刷題—1080質因子

1.題目描述 任意輸入一正整數 N &#xff0c;求出它的所有質因子。如&#xff1a;10&#xff1d;25&#xff0c;20&#xff1d;225。 輸入 輸入只有一行&#xff0c;包括 11個整數 n (1≤n≤32768) 輸出 輸出若干行&#xff0c;按從小到大的順序給出這個數的所有質因子&am…

C語言中的宏

1.防止頭文件重復包含 1.#pragma once #pragma once 是一個編譯器指令&#xff0c;用于防止頭文件被重復包含。它的核心作用是通過簡單語法替代傳統的頭文件保護宏&#xff08;#ifndef/#define/#endif&#xff09;&#xff0c;提升代碼簡潔性和可維護性。 作用詳解 防止重復…

MapReduce 模型

?引言? MapReduce 是分布式計算領域的里程碑式模型&#xff0c;由 Google 在 2004 年論文中首次提出&#xff0c;旨在簡化海量數據處理的復雜性。其核心思想是通過函數式編程的 ?Map? &#xff08;映射&#xff09;和 ?Reduce? &#xff08;歸約&#xff09;階段&#x…

Linux文件編程——標準庫函數fopen、fread、fwrite等函數

1. fopen — 打開文件 函數原型&#xff1a; FILE *fopen(const char *filename, const char *mode);參數&#xff1a; filename&#xff1a;要打開的文件名&#xff0c;可以是相對路徑或絕對路徑。 mode&#xff1a;文件打開模式&#xff0c;表示文件的操作方式&#xff08…

從 Git 到 GitHub - 使用 Git 進行版本控制 - Git 常用命令

希望本貼能從零開始帶您一起學習如何使用 Git 進行版本控制&#xff0c;并結合遠程倉庫 GitHub。這會是一個循序漸進的指南&#xff0c;我們開始吧&#xff01; 學習 Git 和 GitHub 的路線圖&#xff1a; 理解核心概念&#xff1a;什么是版本控制&#xff1f;Git 是什么&…

2025.05.11拼多多機考真題算法崗-第四題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ 04. 記憶碎片重組 問題描述 盧小姐正在開發一款名為"記憶碎片"的游戲,玩家需要分析混亂的記憶數據,推測出形成這些記憶的原始序列。游戲中,記憶數據存儲在一個特殊的數…

Android Exoplayer多路不同時長音視頻混合播放

在上一篇Android Exoplayer 實現多個音視頻文件混合播放以及音軌切換中我們提到一個問題&#xff0c;如果視頻和音頻時長不一致&#xff0c;特別是想混合多個音頻和多個視頻時就會出問題&#xff0c;無法播放。報錯如下&#xff1a; E/ExoPlayerImplInternal(11191): Playback…

Datawhale PyPOTS時間序列5月第1次筆記

課程原地址&#xff1a; https://github.com/WenjieDu/PyPOTS&#xff08;Package地址&#xff09; https://github.com/WenjieDu/BrewPOTS/tree/datawhale/202505_datawhale&#xff08;Tutorial地址&#xff09; 2.1 PyPOTS簡介 PyPOTS 是一個專為處理部分觀測時間序列&a…

網安學途—流量分析 attack.pcap

attack.pacp 使用Wireshark查看并分析虛擬機windows 7桌面下的attack.pcapng數據包文件&#xff0c;通過分析數據包attack.pcapng找出黑客的IP地址&#xff0c;并將黑客的IP地址作為FLAG &#xff08;形式&#xff1a;[IP地址]&#xff09;提交&#xff1a; 過濾器篩選&#x…

【大模型】DeepResearcher:通用智能體通過強化學習探索優化

DeepResearcher&#xff1a;通過強化學習在真實環境中擴展深度研究 一、引言二、技術原理&#xff08;一&#xff09;強化學習與深度研究代理&#xff08;二&#xff09;認知行為的出現&#xff08;三&#xff09;模型架構 三、實戰運行方式&#xff08;一&#xff09;環境搭建…

go語言實現IP歸屬地查詢

效果: 實現代碼main.go package mainimport ("encoding/json""fmt""io/ioutil""net/http""os" )type AreaData struct {Continent string json:"continent"Country string json:"country"ZipCode …

基于STM32、HAL庫的SGTL5000XNLA3R2音頻接口芯片驅動程序設計

一、簡介: SGTL5000XNLA3R2 是 Cirrus Logic 推出的高性能、低功耗音頻編解碼器,專為便攜式和電池供電設備設計。它集成了立體聲 ADC、DAC、麥克風前置放大器、耳機放大器和數字信號處理功能,支持 I2S/PCM 音頻接口和 I2C 控制接口,非常適合與 STM32 微控制器配合使用。 二…

window 顯示驅動開發-報告圖形內存(一)

計算圖形內存 在 VidMm 能夠向客戶端報告準確的帳戶之前&#xff0c;它必須首先計算圖形內存的總量。 VidMm 使用以下內存類型和公式來計算圖形內存&#xff1a; 系統總內存 此值是操作系統可訪問的系統內存總量。 BIOS 分配的內存不會出現在此數字中。 例如&#xff0c;一臺…