午夜欧美_国产视频一区二区_91精品国产综合久久久久久丝袜_亚洲精品久久久久久动漫_成人午夜精品一区二区三区_亚洲伦理影院

基于SystemC的通用嵌入式存儲器模型設計

來源:網絡

點擊:1097

A+ A-

所屬頻道:新聞中心

關鍵詞: 嵌入式,存儲器,嵌入式設計,SystemC

      1引言

      建立芯片模型是在早期進行芯片架構決策的有效方法,通過建模不僅可以對芯片的性能做出分析,還可以在硬件沒有完成之前開發軟件,不僅提高了產品成功率,而且縮短了研發周期。設計人員早期采用C/C++語言進行硬件建模。但是隨著軟硬件復雜度的提高,C/C++語言難以再滿足要求。OSCI適時推出了SystemC語言來適應新的需求。如今SystemC已經被廣泛應用于SoC軟硬件建模中。

      目前大部分SystemC建模方面的文獻是作者對自己所設計芯片整體模型的描述,這種針對特定芯片設計的文獻雖然都有參考價值,但是其模型本身借鑒性有限。另一方面,構成SoC硬件的基本組件因為可重用的緣故,其模型設計具有更好的可借鑒性。這方面的研究成果相對較少,而且集中在總線建模方面,也可以看到多核設計方面的建模方法。

      除了上述總線、CPU架構外,片內或片外存儲器同樣是系統關鍵模塊,對系統性能有著至關重要的影響。文獻[6]對SystemClick框架做了擴展,從而通過存儲器模型能夠分析共享存儲器對性能的影響。文獻[7]針對多通道DRAM做了建模,并且分析了不同的配置和使用情況對性能的影響。這兩篇文獻都對所設計的模型做了詳盡的分析,具有很好的參考價值,但是兩者的通用性欠佳。本文提出了一個可配置的通用存儲器SystemC模型。

      2 SystemC

      SystemC可被視作C++硬件建模和仿真的擴展庫,特別適合集成電路的建模,但它事實上可以用來描述更多的系統。SystemC通過確定仿真核心(simulationkernel)算法定義了處理并行事件和仿真時間的機制。SystemC還定義了模塊、端口、接口、通道等概念來組成一個復雜SoC的連接關系和層次結構。因此,它解決了標準C++語言用于復雜硬件建模時的難題。

      3存儲器的建模

      3.1存儲器模型概述

      為了能幫助設計人員分析系統性能并選擇最合適的存儲器構造,存儲器模型需要反映出對性能造成影響的關鍵參數,即帶寬、延時和仲裁機制。而這些參數又是由存儲器的結構以及其它參數決定的。另一方面,本文希望提出一個通用的存儲器模型,因此會有更多的參數用于配置存儲器以模擬某種特定類型的存儲器特征,比如多端口SRAM。

      圖1給出了所設計的存儲器模型的結構。它包括三個部分:一是模型接口;二是端口及bank可配置的存儲器;三是由讀寫通路及仲裁機制構成的存儲器控制器。接口部分采用了事務級建模,而內部模塊采用了時鐘精準的建模,這樣在保證時間精度的同時,方便了接口連接以及提高了仿真速度。

    基于SystemC的通用嵌入式存儲器模型設計

      圖1可配置存儲器模型結構

      3.2存儲器接口

      基于SystemC的存儲器模型接口,由SystemC定義的接口基類派生而來。整個存儲器模型是一個SystemC模塊,由于實現了所定義的存儲器模型接口,它成為SystemC概念中的hierarchalchannel。因此,該存儲器模型將如同其它SystemC定義的通道,比如FIFO,一樣作為基本組件來連接其它的模塊從而構造出SoC硬件系統。所設計存儲器具有如下所述事務級SystemC接口。

      阻塞讀接口:該接口用來讀取給定地址的給定大小的數據,當數據沒有讀出時,調用這個接口的模塊線程將被堵塞,直到數據讀出為止。除了地址和數據,該接口還包含調用者的標志信息。

      非阻塞讀接口:與阻塞讀接口不同的是,如果在調用時讀指令不能被接受,則返回失敗。否則,不等待數據返回便成功退出。這樣調用接口的模塊線程可以在等待時間做其它事情。調用者通過監聽存儲器模型廣播的當前讀出數據多對應調用者標記來在之后讀出數據。

      阻塞寫接口:該接口用來向存儲器給定地址寫入給定大小的數據。當指令或寫數據不能被存儲器模型接收時,調用的線程被堵塞直到接受為止。除了地址和數據,該接口還包含調用者的標志信息。

      非阻塞寫接口:與阻塞寫接口不同的是,當指令或數據不能被接受時,返回失敗而不等待。否則返回成功。

      復位接口:用于復位存儲器模型。

      為了不強制要求外部提供存儲器模型需要的時鐘,存儲器模型接口中不包含時鐘輸入。模型內部有一個專門的時鐘產生線程。

      3.3存儲器實體

      存儲器模型中的存儲器實體可以由多個bank組成,并構成一個子模塊。根據bank的數量和種類,該存儲器子模塊具有不同數量的只讀端口、只寫端口和讀寫端口。為了能盡可能模擬不同的存儲器類型,存儲器子模塊可配置參數如表1所示。

    基于SystemC的通用嵌入式存儲器模型設計

      表1存儲器配置參數

      3.4存儲器控制器

      存儲器控制器由指令隊列、數據緩存、以及仲裁器構成。這一部分對系統的性能有重要影響。讀指令隊列和寫指令隊列用來分別緩存讀寫指令。當它們寫滿時,新的讀寫操作將失敗或堵塞。指令隊列的數量取決于訪問存儲器模型的模塊有幾個優先級。相同優先級的指令會被放到同一個隊列。讀仲裁器和寫仲裁器分別根據隊列中的讀地址和寫地址,讀寫數據緩存器的狀態,以及指令優先級來決定發送哪個指令到哪個端口。而如果讀指令和寫指令指向了相同的讀寫端口,讀寫仲裁器將再一次做出仲裁。這里的每個仲裁器除了上述功能外,具體的仲裁機制以虛函數的形式由具體的實現來決定。在該存儲器模型中實現了默認的基于優先級的輪詢算法。存儲器控制器的配置參數如表2所示。

    基于SystemC的通用嵌入式存儲器模型設計

      表2存儲器控制器的配置參數

      3.5參數配置

      存儲器模型的眾多參數需要在構造函數中配置完成。在運行階段,不能再更改配置。運行階段的配置更改將是我們下一步的研究內容,可以用于類似于文獻[8]的自演化系統。

    (審核編輯: 小丸子1)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 九九国产精品九九 | 国产男女无遮挡猛进猛出 | 欧日韩视频 | 成人国产一区二区三区精品 | 在线免费黄色网址 | 国产成人亚洲欧美三区综合 | 国产福利视精品永久免费 | 成人久久久精品乱码一区二区三区 | 亚洲欧美激情精品一区二区 | 国产精品视频专区 | 国产成人精品一区二区三区 | 久久久久久91香蕉国产 | 久久伊人一区二区三区四区 | 久久精品免费一区二区视 | 91麻豆视频网站 | 欧美1区二区三区公司 | 亚洲日韩欧美一区二区在线 | 欧美视频网站在线观看 | 亚洲欧美韩国 | 欧美激情亚洲一区中文字幕 | 亚洲精品乱码久久久久久中文字幕 | 欧美亚洲网 | 性插欧美 | 在线视频三区 | 在线观看国产欧美 | 久久国产欧美日韩高清专区 | 日韩欧美国产一区二区三区 | 91久久精品国产免费一区 | 色综合色狠狠天天综合色 | 久久精品国产一区二区三区日韩 | 精品久久久一二三区 | 欧美在线看欧美视频免费网站 | 一区二区电影 | 在线视频观看国产 | 欧美嘿咻视频 | 中文在线视频 | 婷婷成人亚洲 | 伊人久久精品久久亚洲一区 | 青青热久久国产久精品 | 全部费免一级毛片不收费 | 免费国产在线视频 |