在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 電源與新能源 > 設計應用 > 基于FPGA的M2M異構虛擬化系統(tǒng)(一)

            基于FPGA的M2M異構虛擬化系統(tǒng)(一)

            作者: 時間:2018-09-03 來源:網(wǎng)絡 收藏

            本文引用地址:http://www.biyoush.com/article/201809/388223.htm

              本項目基于Digilent Nexys3 FPGA開發(fā)平臺構建了基于自主軟核QS-I的RISC SoC平臺。

              3.總體設計方案說明

              3.1.1.系統(tǒng)總體框架及關鍵技術分析

              本項目的總體框架如圖 9,實現(xiàn)時采用V5-MIPS core和N3-MIPS core構成異構原型。

              

              圖 9 項目總體框架圖

              項目的關鍵技術包括:

              多核異構層

              32位RISC處理器的結構競爭、控制競爭、數(shù)據(jù)競爭三大競爭的解決以及擴展CPU指令集,支持GNU的mips_elf_gcc編譯器等開源工具鏈

              流水線中的精確中斷及異常的實現(xiàn)

              CPU的Cache設計:

              Cache的映射策略

              Cache的寫策略

              CPU和各個外設模塊對Wishbone總線的集成:

              CPU的對外接口設計

              各個外設符合Wishbone協(xié)議的接口設計

              各個模塊與總線的集成

              基于不同F(xiàn)PGA的RISC SoC平臺(分別在XUP Vritex-5和Digilent Nexys3上基于自主軟核QS-I搭建了RISC SoC平臺),構建多核異構層?;趩蝹€核的可擴展SoC框架核心如圖 10

              

              圖 10 RISC SoC

              虛擬化管理層

              對多核異構層的資源管理策略;

              對應用層程序的調度分配策略

              二進制翻譯層

              以基本塊為翻譯單位的動態(tài)翻譯實現(xiàn)

              寄存器的映射

              Big endian(MIPS)與little endian(x86)

              X86標志位處理

              x86中斷及系統(tǒng)調用的模擬

              轉移分發(fā)器

              翻譯塊管理

              軟件應用層

              SoC系統(tǒng)軟件模塊

              各個外設模塊的驅動程序

              3.1.2.RISC CPU(QS-I)結構

              RISC CPU(QS-I)的總體框架如圖 11所示。QS-I中的整數(shù)流水線采用Fetch à Decode à Execute à Memory à Writeback的五級流水線結構。QS-I中采用哈佛結構的指令Cache和數(shù)據(jù)Cache。此外,為了加速ISA層虛擬化的動態(tài)翻譯實現(xiàn),QS-I中含有專門的硬件模塊以加速動態(tài)翻譯。

              

              圖 11 RISC CPU(QS-I)總體框架圖

              3.1.3.動態(tài)翻譯策略與方案

              

              圖 12 動態(tài)翻譯及執(zhí)行架構圖

              二進制動態(tài)翻譯及執(zhí)行架構如圖 12所示,主要有翻譯及執(zhí)行兩個過程。翻譯過程將源體系的程序進行翻譯,生成新體系的程序。執(zhí)行過程負責生成塊在新體系下的運行。以8086轉MIPS為例,源體系為8086,新體系為MIPS。圖中SMEM代表的是源內存,保存的是8086可執(zhí)行程序,TMEM代表的是目標內存,保存的是8086程序塊翻譯后得到的相應MIPS程序塊。翻譯過程是在MIPS環(huán)境中,翻譯塊的執(zhí)行在虛擬環(huán)境中。兩種環(huán)境的轉換需要經過上下文切換。切換時,先保存當前狀態(tài),包括它自己的一套寄存器組,再載入新的狀態(tài)。

              跳轉緩存為硬件模塊,加速生成塊的執(zhí)行。跳轉緩存保存的是對,SPC為某指令在SMEM中的地址,TPC則是在TMEM中相應的地址。在執(zhí)行生成塊遇到轉移跳轉指令時,根據(jù)SPC在跳轉緩存中找對應的TPC,以繼續(xù)執(zhí)行生成塊。

              3.1.4.Wishbone總線及基本外設

              Wishbone 總線最先是由Silicon公司提出,現(xiàn)在己被移交給OpenCores組織維護,它通過在IP核之間建立一個通用接口完成互聯(lián)??梢杂糜谠谲浐?、固核以及硬核之間進行互聯(lián)。

              Wishbone規(guī)范具有如下特點:

              簡單、緊湊,需要很少的邏輯門

              完整的普通數(shù)據(jù)據(jù)傳輸總線協(xié)議,包括單個讀寫傳輸周期和事件周期

              支持大端數(shù)據(jù)和小端數(shù)據(jù),接口自動完成兩者之間的轉換

              支持存儲器映射、FIFO存儲器、交叉互聯(lián)

              采用握手協(xié)議,允許速率控制,可以達到每個時鐘周期進行一次數(shù)據(jù)傳輸

              支持普通周期結束、重試結束、錯誤結束等總線周期形式,支持用戶自定義的標志

              采用MASTER/SLAVE體系結構,支持多點進程(Multi-MASTER)

              支持各種各樣的IP核互聯(lián),包括USB、雙向總線、復用器互聯(lián)等

              相對于其他的IP核接口規(guī)范來說,Wishbone接口規(guī)范具有簡單、開放、高效、利于實現(xiàn)等特點而且完全免費,并沒有專利保護?;谏鲜鰞?yōu)點,因此采用Wishbone總線進行接口設計。

              QS-I 硬件系統(tǒng)在團隊自主研發(fā)的MIPS體系結構5級流水CPU的基礎上,采用Wishbone開源總線,將主存、顯示器、鍵盤、RS232等外部設備與CPU進行互聯(lián)。CPU作為Wishbone開源總線MASTER/SLAVE體系結構中的MASTER設備,向總線發(fā)起訪問外設的請求;Wishbone總線接收來自CPU的訪問請求和訪問命令,向外設發(fā)起訪問請求;外設相應請求后,數(shù)據(jù)通過Wishbone總線傳給CPU。采用Wishbone總線后,系統(tǒng)能夠高效的訪問各種外設,而且具有較好的可擴展性,比如在Wishbone開源總線MASTER/SLAVE體系結構中,MASTER設備和SLAVE設備都是可已同時聯(lián)接多個的,總線會解決相關的訪問沖突。

              下文將介紹Wishbone開源總線的相關信號的定義及作用。

              

              圖 13 Wishbone總線規(guī)范中使用的主要信號

              所有的Wishbone接口信號都是高電平有效,設計成高電平有效的主要原因是由于低電平有效信號的書寫問題,不同的設計者表達低電平有效信號的方式不同,拿最常見的低電平有效的復位信號來說,其表示方法就有_RST_I、N_RST_I、#RST_I和/RST_I,而高電平有效的信號其表達方式通常只有一種。所有的Wishbone接口信號都以_I或者_O結束。_I表示輸入,_O表示輸出。()表示該信號為總線信號,總線的寬度可以為1,也可以為大于1的任何值。

              在圖7中,主設備具有遵守Wishbone規(guī)范的主設備接口,從設備具有遵守Wishbone規(guī)范的從設備接口,INTERCON模塊將主設備和從設備的對應數(shù)據(jù)、地址和控制線連接起來,SYSCON模塊提供時鐘和復位信號,這兩個信號被送入主設備和從設備。圖7給出了Wishbone接口的常見信號,這些信號有些是必須的,有些是可選的。這些信號的基本功能描述如下:

              CLK_O/CLK_I:時鐘信號。時鐘信號由SYSCON模塊產生,并送入各個主設備和從設備。SYSCON通常內部存在一個鎖相環(huán),將來源于芯片外的晶體振蕩器或者時鐘輸入信號整形、分頻或者倍頻為芯片內所需要的時鐘信號。所有Wishbone信號都同步到時鐘信號上,包括復位信號。

              RST_O/RST_I:同步復位信號,高電平有效。復位信號由SYSCON模塊產生,并送入各主設備及從設備。

              DAT_O()/DAT_I():主設備和從設備的之間的數(shù)據(jù)信號,數(shù)據(jù)可以由主設備傳送給從設備,也可以由從設備傳送給主設備。一對主設備和從設備之間最多存在兩條數(shù)據(jù)總線,一條用于主設備向從設備傳輸數(shù)據(jù),另外一條用于從設備向主設備傳輸數(shù)據(jù)。Wishbone規(guī)定數(shù)據(jù)總線的最大寬度為64位,這一規(guī)定實際上是考慮到目前商用處理器的最大位數(shù)為64,實際上數(shù)據(jù)總線的寬度可以是任意值。就筆者看來,在64位處理器以后,處理器將向多核方向發(fā)展,總線將向高速串行方向發(fā)展。

              ADR_O(n…m)/ADR_I(n…m):地址信號,主設備輸出地址到從設備。n取決于IP核的地址寬度,m取決于數(shù)據(jù)總線DAT_O()/DAT_I()的寬度和粒度。數(shù)據(jù)總線的粒度指的是數(shù)據(jù)總線能夠一次傳送的最小比特數(shù),很多處理器如ARM的數(shù)據(jù)總線的粒度為1個字節(jié),但是也有一些處理器如CEVA TeakLite DSP的數(shù)據(jù)總線粒度為2個字節(jié)。一個位寬為32比特、粒度為1個字節(jié)的數(shù)據(jù)總線的地址信號應定義為ADR_O(n…2)/ADR_I(n…2)。在傳送數(shù)據(jù)時,具體哪些字節(jié)有效通過SEL_O()/SEL_I()信號(見下文)控制。

              TGD_O/TGD_I()、TGA_O()/TGA_I():TGD_O/TGD_I()為數(shù)據(jù)標簽,具體講是附加于在數(shù)據(jù)總線DAT_O()/DAT_I()的標簽,該標簽可以用于傳送關于數(shù)據(jù)總線的額外信息如奇偶校驗信息、時間戳信息等。TGA_O/TGA_I()為地址標簽,具體講是附加于在地址總線ADR_O()/ADR_I()的標簽,該標簽可以用于傳送關于地址總線的額外信息如地址總線奇偶校驗信息、存儲器保護信息等。Wishbone只規(guī)定了TGD_O/TGD_I和TGA_O()/TGA_I()的接口時序,用戶可以定義TGD_O/TGD_I的具體含義。

              TGC_O/TGC_I():TGC_O/TGC_I()為總線周期標簽,該標簽可以用于傳送關于當前總線周期所進行操作的描述如操作類型(包括單次操作、塊操作、RMW操作)、中斷應答類型、緩存操作類型等。類似的,Wishbone只規(guī)定了TGC_O/TGC_I()的接口時序,用戶可以定義TGD_O/TGD_I的具體含義。

              ACK_O/ACK_I、ERR_O/ERR_I、RTY_O/RTY_I:主從設備間的操作結束方式信號。ACK表示成功,ERR表示錯誤,RTY表示重試(Retry)。操作總是在某一總線周期內完成的,因此操作結束方式也稱為總線周期結束方式。成功是操作的正常結束方式,錯誤表示操作失敗,造成失敗的原因可能是地址或者數(shù)據(jù)校驗錯誤,寫操作或者讀操作不支持等。重試表示從設備當前忙,不能及時處理該操作,該操作可以稍后重新發(fā)起。接收到操作失敗或者重試后,主設備如何響應取決于主設備的設計者。

              SEL_O()/SEL_I():有效數(shù)據(jù)總線選擇信號,標識當前操作中數(shù)據(jù)總線上哪些比特是有效的,以總線粒度為單位。SEL_O()/SEL_I()的寬度為數(shù)據(jù)總線寬度除以數(shù)據(jù)總線粒度。比如一個具有32位寬、粒度為1個字節(jié)的數(shù)據(jù)總線的選擇信號應定義為SEL_O(3:0)/ SEL_I(3:0),SEL(4’b1001)代表當前操作中數(shù)據(jù)總線的最高和最低字節(jié)有效。

              CYC_O/CYC_I、LOCK_O/LOCK_I、GNT_O()/GNT_I:總線周期信號CYC_O/CYC_I有效代表一個主設備請求總線使用權或者正在占有總線,但是不一定正在進行總線操作(是否正在進行總線操作取決于選通信號STB_O/STB_I是否有效)。只有該信號有效,Wishbone主設備和從設備接口的其它信號才有意義。CYC_O/CYC_I信號在一次總線操作過程中必須持續(xù)有效,比如一次塊讀操作可能需要多個時鐘周期,CYC_O/CYC_I信號必須保持持續(xù)有效。實際上,該信號的實際作用等同于其他總線標準中的仲裁申請信號。當存在多個主設備時,它們可能希望同時進行總線操作,主設備通過仲裁申請信號向仲裁器申請總線占有權,仲裁器通過一定的仲裁優(yōu)先級邏輯向其中一個選定的主設備發(fā)送總線允許信號GNT_O()/GNT_I,表示該主設備可以占用總線。GNT_O()是仲裁器輸出的允許信號,一般有多個;而對于一個主設備,其允許信號輸入GNT_I卻只有一個。一次總線操作可能需要多個時鐘周期,比如一次塊操作。在操作過程中,仲裁器可能會提前將總線占用權收回并分配給其他主設備從而打斷當前主設備的操作,LOCK_O/LOCK_I有效代表本次總線操作是不可打斷的。仲裁器收到LOCK_I信號,就不會提前收回總線使用權。圖 13中只有一個主設備和一個從設備,因此沒畫出仲裁器模塊,該模塊可以視為是INTERCON的一部分,見本章最后給出的例子。

              STB_O/STB_I:選通信號。選通有效代表主設備發(fā)起一次總線操作。只有選通信號有效(此時CYC_O/CYC_I也必須為高),ADR_O/ADR_I()、DAT_O()/DAT_I()、SEL_O()/SEL_I()才有意義。在Wishbone總線規(guī)范中,CYC_O/CYC_I是最高層的控制信號,只有該信號有效,STB_O/STB_I信號才有意義。一個信號有意義是指該信號的當前值是需要主設備或者從設備解釋的,0為無效,1為有效,而一個信號沒有意義是指該信號的當前值主設備和從設備不必關心,是0還是1都無效。

              WE_O/WE_I:寫使能信號,代表當前周期中進行的操作是寫操作還是讀操作。1代表寫,0代表讀。

              3.1.5.系統(tǒng)庫及應用程序設計

              為了能夠更好地發(fā)揮系統(tǒng)功能,擴大系統(tǒng)的應用范圍,充分利用系統(tǒng)的各種硬件資源以及外圍設備,包括鍵盤、串口、顯示器,項目團隊開發(fā)出了供應用程序調用的系統(tǒng)庫。根據(jù)外設,可以將系統(tǒng)庫函數(shù)分為四部分:系統(tǒng)宏定義和端口常量、鍵盤接口函數(shù)、顯示器接口函數(shù)和串口接口函數(shù)。

              

              圖 14 系統(tǒng)庫及應用程序總體結構



            關鍵詞:

            評論


            相關推薦

            技術專區(qū)

            關閉