《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > RISCV的高性能計算探索:HWACHA的硬件架構解析

RISCV的高性能計算探索:HWACHA的硬件架構解析

2019-10-20
關鍵詞: RISCV HWACHA 硬件架構

  最近在學習RISCV相關的東西,發現了Berkeley一個很有意思的項目:HWACHA。這是一個使用RISCV開源處理器構建的類vector的多核異構系統,可以用來做低算力的深度學習應用。當然HWACHA本身也是開源的,有興趣可以去github下載源碼跑跑看。這里還是從硬件設計的角度來分析下這種多核異構系統的特點。

  Summary:HWACHA使用了自定義的類Vector指令集,通過內嵌調用的形式和RISCV ISA整合在一起。HWACHA的執行類似于緊耦合的coprocessor,RISCV core負責循環的控制,Vector units負責主要的向量運算。兩者通過特殊的指令進行co-work,實現控制和運算錯拍的并行執行。相比傳統的處理器Vector擴展,HWACHA將integer和vector完全隔離,硬件設計相對簡單且易于擴展,可以提供良好的并行性。不過由于是獨立的指令集,需要和RISCV ISA一起聯合編譯,對compiler有特殊的要求。

  HWACHA是Berkeley的一個research 項目,從2011年第一代起,幾乎每年都有流片,到V4架構推出,已經是第14款芯片了,好快的迭代速度。HWACHA項目的初衷是探索一個energy-efficient的Vector architecture,基于RISC open ISA,設計一種數據高并行的可擴展結構。

  這里先簡單介紹下vector的背景。向量計算(Vector)是一種特殊的單指令流多數據結構,主要面向科學運算,加解密,建模分析等高強度的計算任務。例如ARM的SVE。相比于傳統的SIMD結構(如ARM的Advanced SIMD擴展),Vector的主要優勢是良好的軟件可移植性,也就是說相同的binary code,在不同規模的Vector機器上可以不經改動直接執行,同時軟件編程中不需要考慮根據具體硬件執行的寬度進行數據重排。這種軟件透明的設計大大減輕了軟件設計和維護的代價,因此在服務器領域應用廣泛。

640.webp (14).jpg

  HWACHA的Vector指令集基本上類似于SVE,主要包括Vector寄存器堆VV0-VV255,Predicate寄存器堆VP0-VP15,以及向量控制寄存器VLEN。注意這里的vector寄存器有256個之多,大量的寄存器當然有利于編譯器優化,提升執行性能,但是會對硬件設計主要是頻率帶來影響,后邊可以硬件為了支持這么大的寄存器尋址采取了特殊的機制。由于HWACHA是單獨的指令集,因此增加了一組標量寄存器堆用作控制和標量計算。這里比較特殊的是有獨立的地址寄存器堆VA0-VA31,這樣load和store就不會占用標量寄存器號,有利于更好的schedule計算和存儲。不過這樣就需要在指令編碼中有專用位來指定寄存器的類型。對傳統的32位指令編碼,這當然是個問題,會侵占指令編碼空間,不過HWACHA非常激進,直接采用了64位指令寬度,這樣一來編碼空間就不是問題了。指令密度當然會大不少,不過考慮到vector本身會以循環方式執行,指令數目有限,那么這也不算是個很大的缺點。

640.webp (12).jpg

  HWACHA的執行方式是很有特點的。首先整個Vector Engine作為一個coprocessor,和主CPU之間是de-couple開的,通過特殊的指令和傳輸buffer進行交互。而這種交互過程是interleave的,可以實現back2back的并行,因此從這個角度來看,又是couple在一起的。例如一個簡單的for循環code:

640.webp (13).jpg

640.webp (11).jpg

  HWACHA的編譯器會將其分解為循環控制部分和向量執行部分,前者在主CPU中執行,后者在Vector engine中執行。CPU通過一條特殊指令VF(Vector Fetch)來通知Vector engine開始執行,VF的參數即為Vector執行的起始PC。在后者執行完成后,通過vstop(Vector Stop)指令來表示執行暫停,等待下次VF的輸入。在Vector engine執行的同時,CPU繼續執行,進入下一拍循環進行數據和控制準備。這種方案可以提供CPU和Vector錯開的并行執行能力,同時控制和數據又能有效的隔離,一方面簡化控制復雜度,另一方面Vector不受限于CPU的硬件結構和帶寬,有很大的設計靈活性,比如HWACHA V4的一拖多結構:

640.webp (10).jpg

  CPU和Vector之間通過若干個Buffer進行交互。當CPU執行到VF指令后,會將其push到VCMDQ中。Vector通過內部的Scalar Unit從VF指定的PC開始取指執行,取到的Vector指令會發送到Master sequencer中,由其負責分發到各個Vector unit中去執行。每個Vector Unit就是一個in-order的Vector核,包括local sequencer負責內部調度,Vector和Predicate寄存器堆,以及獨立的Vector Load&Store unit,通過Crossbar和片外存儲相連。在執行過程中,每個Vector Unit都是獨立運行的,只有指令(操作)從Master sequencer中統一取得。左邊還有一個Vector runahead Unit,應該是負責提前計算一些執行所需的信息,保證Vector Units的數據流的連貫性。整個架構是一種特殊的SIMD形式,用較少的控制來驅動大量的計算,而各個計算單元間又是獨立的,不需要像傳統SIMD指令那樣進行同步。這樣控制當然會簡單,但同時也無法支持精確異常等控制流事件。不過考慮到Vector的主要應用場景,這并不算是一個很大的問題。

640.webp (9).jpg

  HWACHA的每個Vector Unit的結構如上圖。Master Sequencer將譯碼后的指令分發給每個Unit的Lane sequencer,由后者進行內部schedule,包括dependency的檢查和處置。之前說過HWACHA的Vector寄存器有256個之多,這么大的寄存器堆在實現上是很不友好的。為了平衡面積和時序,這里采用了4 BANK 單口SRAM來實現寄存器堆。這里就有一個問題,指令通常有2~3個源操作數,單口SRAM如何有效的進行寄存器讀寫,特別是在幾個操作數處于同一個RAM BANK中?HWACHA采用一個稱為“Systolic Bank Execution”的機制,簡單來說就是指令按順序的訪問RAM BANK0~3,指令i當前cycle訪問BANKk,如果操作數在這個BANK里,就取出來,如果不在,就在下一個cycle訪問BANKk+1。同時指令i+1在當前cycle 訪問BANKk-1。這樣的訪問序列不停頓,指令會一直循環這個過程直到把所有的操作數都取到,就發送到執行單元去執行。寫回的數據也會進入這個systolic的FIFO,直到它移動到對應的RAM BANK,再把數據寫回到寄存器堆中。這種繁瑣的機制更多的出于研究性質,用來探索采用SRAM實現寄存器的讀寫的可行性,而不論從性能上,還是硬件實現上都不是個友好的方案。通常還是采用多級可流水的,多讀口的registerfile實現更合適。

  整個執行單元的設計并沒有太多的特殊之處,該有的arithmetic unit都有了。比較有特點的是它把ALU放到了寄存器堆的BANK里,每個BANK都有一個。這樣的設計主要用來加速單cycle ALU的執行,是對HWACHA SRAM寄存器堆結構讀寫效率不高的缺陷的一種彌補。

640.webp (8).jpg

  整體來說,HWACHA是一個偏研究性質的架構,很多問題的解決并非從工程的思路出發,選擇簡潔高效的方案,而是更多地進行多種可能性的探索。除去這些,HWACHA的控制數據de-couple的想法,以及Vector部分并行運算的軟硬件協同支持,都很有特點,同時HWACHA中指令集層面的部分思路,也已經提交作為RISCV open ISA vector extension的標準。從這個角度來看,HWACHA的探索很有意義,也很成功。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲日本乱码在线观看| 国产在线日韩| 午夜精品久久久久久久99樱桃| 国产精品国码视频| 欧美mv日韩mv国产网站app| 欧美亚洲免费电影| 国产最新精品精品你懂的| 亚洲高清在线视频| 亚洲欧美日本伦理| 老司机aⅴ在线精品导航| 久久久久久久久久久久久9999| 一卡二卡3卡四卡高清精品视频| 永久免费毛片在线播放不卡| 免费成人高清视频| 日韩视频免费观看高清完整版| 国产欧美日韩| 欧美激情精品| 欧美一区二区三区四区在线| 欧美成va人片在线观看| 日韩午夜黄色| 亚洲另类黄色| 国产精品丝袜久久久久久app| 极品少妇一区二区三区精品视频| 激情欧美国产欧美| 国产精品video| 欧美日韩国产不卡在线看| 香蕉乱码成人久久天堂爱免费| 一区二区在线观看av| 欧美三日本三级三级在线播放| 欧美日韩成人一区| 亚洲黄色免费电影| 国产精品久久久久aaaa| 欧美韩日一区二区三区| 欧美激情1区2区| 亚洲制服少妇| 久久久综合免费视频| 欧美日韩一区在线观看| 亚洲激情图片小说视频| 亚洲欧美另类国产| 国产精品自拍小视频| 国产精品99久久久久久白浆小说| 亚洲精品久久久久中文字幕欢迎你| 亚洲精品在线视频观看| 欧美视频在线播放| 国产欧美一区二区视频| 国产精品亚洲一区二区三区在线| 欧美大片在线观看| 国产综合亚洲精品一区二| 国产乱码精品| 亚洲激情第一页| 国产精品美女黄网| 欧美日韩在线视频观看| 国产精品久久久久免费a∨大胸| 亚洲在线观看免费| 久久久国产成人精品| 农村妇女精品| 国产一区二区欧美| 毛片精品免费在线观看| 欧美视频在线观看视频极品| 这里只有精品在线播放| 韩国成人福利片在线播放| 久久久久久久一区二区| 亚洲激情视频在线观看| 欧美一区1区三区3区公司| 亚洲欧美网站| 亚洲国产日韩一区| 亚洲天堂av图片| 欧美激情性爽国产精品17p| 亚洲综合视频在线| 最新成人av网站| 久久综合一区二区| 久久综合伊人77777| 久久中文欧美| 久久久久国产精品一区| 极品少妇一区二区三区精品视频| 永久域名在线精品| 欧美日本不卡视频| 日韩亚洲一区二区| 欧美一级午夜免费电影| 久久精品日产第一区二区| 国产精品99久久久久久久女警| 99国产精品视频免费观看一公开| 国产精品成人免费精品自在线观看| 久久久久久一区| 欧美经典一区二区| 亚洲一区二区三区四区视频| 久久久久国产一区二区三区| 国产专区精品视频| 中文一区在线| 欧美午夜精品久久久久久超碰| 美女脱光内衣内裤视频久久网站| 欧美一区二区成人| 亚洲特级毛片| 国产精品久久波多野结衣| 亚洲一区欧美二区| 欧美日本亚洲视频| 亚洲国产欧美一区二区三区丁香婷| 亚洲无人区一区| 免费在线视频一区| 牛人盗摄一区二区三区视频| 99精品国产99久久久久久福利| 亚洲欧美激情视频| 在线观看视频一区二区| 国产精品都在这里| 国内精品伊人久久久久av影院| 国产精品视频网址| 亚洲电影观看| 久久国产精品一区二区三区| 欧美性jizz18性欧美| 一区二区三区四区五区视频| 国产精品二区在线| 亚洲视频中文字幕| 亚洲欧美日韩系列| 欧美激情视频免费观看| 国产精品有限公司| 国产日韩欧美综合精品| 精品成人免费| 欧美阿v一级看视频| 午夜精品一区二区三区电影天堂| 欧美高清在线播放| 国产在线观看91精品一区| 国产精品欧美在线| 国产精品卡一卡二卡三| 亚洲看片一区| 欧美性生交xxxxx久久久| 99精品99久久久久久宅男| 禁断一区二区三区在线| 欧美日韩国产天堂| 原创国产精品91| 另类av一区二区| 久久久av水蜜桃| 欧美日韩精品欧美日韩精品一| 毛片基地黄久久久久久天堂| 亚洲激情另类| 国产精品最新自拍| 亚洲一区二区在线播放| 欧美怡红院视频一区二区三区| 亚洲欧美在线另类| 欧美日韩精品一区二区三区四区| 在线视频欧美精品| 欧美在线免费观看| 91久久精品国产91久久| 欧美日韩在线视频观看| 一本色道久久88综合日韩精品| 亚洲国产第一| 99视频在线精品国自产拍免费观看| 又紧又大又爽精品一区二区| 国模私拍视频一区| 亚洲美女福利视频网站| 欧美成年人在线观看| 国产亚洲日本欧美韩国| 影音先锋久久资源网| 在线视频免费在线观看一区二区| 欧美中文在线观看国产| 一本到高清视频免费精品| 欧美日韩亚洲一区二区三区在线| 久久夜色精品国产欧美乱极品| 久久精品国产一区二区电影| 韩国一区二区三区美女美女秀| 国产精品免费网站在线观看| 欧美色综合网| 伊人男人综合视频网| 国产手机视频精品| 国产精品亚洲欧美| 午夜亚洲性色福利视频| 狠狠色狠狠色综合日日tαg| 蜜桃av久久久亚洲精品| 欧美视频在线观看视频极品| 欧美3dxxxxhd| 欧美精品一区在线观看| 美女主播视频一区| 尤物网精品视频| 永久免费毛片在线播放不卡| 日韩视频二区| 久久亚洲欧美国产精品乐播| 一区二区视频免费在线观看| 国外成人性视频| 中文av一区二区| 欧美精品日韩www.p站| 欧美激情在线播放| 一区二区日本视频| 亚洲第一在线视频| 亚洲一区久久久| 免播放器亚洲一区| 亚洲精品1区| 欧美精品一区二区三区在线播放| 久久久免费精品| 亚洲欧洲精品成人久久奇米网| 亚洲日本理论电影| 国产精品久久久久久久久久久久| 亚洲精品国产精品久久清纯直播| 欧美日韩1080p| 欧美中文字幕在线观看| 欧美www视频在线观看| 亚洲欧美精品伊人久久| 蜜桃视频一区| 欧美午夜电影在线| 亚洲国产黄色片| 欧美日产一区二区三区在线观看| 亚洲欧美精品| 国产精品综合不卡av| 国产精品v日韩精品| 国产精品白丝黑袜喷水久久久| 国产欧美一区二区三区国产幕精品| 精品动漫3d一区二区三区| 亚洲大片一区二区三区| 先锋资源久久| 久久不射网站| 久久亚洲高清| 亚洲大片免费看| 久久福利资源站| 中文av一区特黄| 亚洲国产精品va在看黑人| 久久国产主播精品| 欧美欧美午夜aⅴ在线观看| 中文网丁香综合网| 老色批av在线精品| 亚洲一区二区三区欧美| 欧美理论电影在线播放| 欧美亚一区二区| 亚洲高清免费视频| 亚洲系列中文字幕| 久久久精品动漫| 亚洲欧美激情一区| 国产欧美日韩专区发布| 亚洲福利视频免费观看| 久久久久久久一区| 久久高清国产| 国产自产高清不卡| 欧美wwwwww| 久久久噜噜噜久久中文字免| 激情欧美亚洲| 国产日韩精品久久久| 美女黄色成人网| 午夜老司机精品| 黄色日韩网站视频| 黄色成人片子| 亚洲午夜精品| 久久久久久亚洲精品中文字幕| 国产精品毛片在线看| 在线观看亚洲专区| 欧美一级电影久久| 一级成人国产| 午夜精品久久久久久久| 亚洲国产精品悠悠久久琪琪| 欧美综合77777色婷婷| 久久综合久久88| 欧美日韩一区二区免费视频| 亚洲电影成人| 亚洲精品老司机| 欧美日韩国产另类不卡| 欧美久久九九| 欧美日韩无遮挡| 日韩一区二区久久| 久久人人爽人人爽| 免费欧美在线| 国产精品青草久久久久福利99| 亚洲欧美一区二区激情| 亚洲激情不卡| 午夜精品福利电影| 亚洲看片免费| 亚洲区免费影片| 亚洲美女少妇无套啪啪呻吟| 亚洲午夜视频在线| 欧美日韩一区二区三区| 亚洲欧洲偷拍精品| 宅男在线国产精品| 欧美午夜精品一区二区三区| 免费不卡欧美自拍视频| 欧美日本精品一区二区三区| 亚洲福利视频免费观看| 亚洲天堂男人| 亚洲国产日韩欧美在线动漫| 午夜视频久久久久久| 国产精品二区二区三区| 久久精品一区蜜桃臀影院| 欧美日韩一区二区三区在线视频| 亚洲激情av在线| 国产精品s色| 欧美精品一区二区视频| 欧美日韩不卡合集视频| 国语自产精品视频在线看一大j8| 亚洲国产成人av好男人在线观看| 亚洲欧洲日韩综合二区| 亚洲免费伊人电影在线观看av| 99re视频这里只有精品| 欧美高清在线视频观看不卡| 可以看av的网站久久看| 免费在线看成人av| av成人老司机| 欧美久久久久| 久久精品国语| 亚洲人成网在线播放| 国产精品99久久久久久久久| 欧美极品一区| 久久久久久久久蜜桃| 久久久国产精品亚洲一区| 一区二区三区回区在观看免费视频| 欧美四级在线| 亚洲免费在线视频| 欧美日韩国产成人在线| 99在线|亚洲一区二区| 国产欧美日韩视频在线观看| 亚洲欧美一区二区精品久久久| 亚洲美女在线视频| 亚洲精品久久久久久久久久久久久| 亚洲区中文字幕| 亚洲欧美福利一区二区| 久久久久久高潮国产精品视| 激情五月婷婷综合| 国产一区二区三区精品欧美日韩一区二区三区| 国内伊人久久久久久网站视频| 怡红院av一区二区三区| 欧美日韩免费一区| 亚欧成人在线| 国产精品盗摄久久久| 亚洲免费伊人电影在线观看av| 久久爱另类一区二区小说| 国语精品中文字幕| 国产视频精品va久久久久久| 亚洲午夜久久久久久尤物| 美女福利精品视频| 欧美承认网站| 欧美日韩国产区| 国产精品毛片| 黄色成人精品网站| 国产精品v欧美精品v日本精品动漫| 欧美日韩国产小视频在线观看|