#嵌入式系統 #現場可編程邏輯閘陣列FPGA #微控制器MCU #數位訊號處理器DSP #軟體開發套件SDK #汽車電子 #先進駕駛輔助系統ADAS #毫米波mmWave #網路單晶片NoC
【ASIC FPGA X SoC SDK=?】
智慧應用不斷推陳出新,最初被用於概念驗證 (PoC) 的現場可編程邏輯閘陣列 (FPGA),地位亦不可同日而語。近幾年來在一個電路板上,FPGA 可作為中央處理器 (CPU)、圖形處理器 (GPU) 或微控制器 (MCU) 的加速引擎或協作處理器,然而如今的 FPGA,擔當主控的能力可毫不遜色!5G 通訊、自動駕駛、感測器融合 (Sensors Fusion) 演算法演進極快、且效率要求高,FPGA 憑藉配置靈活特性、加上安謀 (Arm) 強力生態的助攻,FPGA 隱然有升格主角之勢。
標榜「ASIC 等級的 FPGA」可解決系統流量擴充、延遲率與晶片互連的瓶頸,其運算效能更媲美專用晶片。擁有可加速 C / C++ 系統級設計和高階合成 (HLS) 完整函式庫的「SoC 等級的設計套件」,則允許在開發 Arm-based 處理器的同時,經由 FPGA 為密集運算自動加速,號稱較硬體加速的 C/C++ 演算法提升百倍效能,相較於 RTL (暫存器傳遞語言) 設計流程可讓系統驗證和建置時間加速百倍。此外,「異構多重處理」架構特別深受智能攝影機&邊緣人工智慧 (AI) 的青睞。
延伸閱讀:
《不只是加速協作!FPGA 展露大將之風》
http://compotechasia.com/a/feature/2019/1111/43277.html
(點擊內文標題即可閱讀全文)
#賽靈思Xilinx #Zynq-7000 #VivadoHLx #UltraScale #Vivado #VersalACAP #Vitis
「cpu暫存器」的推薦目錄:
- 關於cpu暫存器 在 COMPOTECHAsia電子與電腦 - 陸克文化 Facebook 的精選貼文
- 關於cpu暫存器 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於cpu暫存器 在 COMPOTECHAsia電子與電腦 - 陸克文化 Facebook 的最讚貼文
- 關於cpu暫存器 在 完整指令集的16 位元處理器MCU0s 的評價
- 關於cpu暫存器 在 09-03 CPU暫存器累加器介紹- 蔡政宏Eric Tsai - Facebook 的評價
- 關於cpu暫存器 在 暫存器| 他山教程,只選擇最優質的自學材料 的評價
- 關於cpu暫存器 在 CPU為何現在只到64位元? (第9頁) - Mobile01 的評價
cpu暫存器 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] The next generation Ethereum Virtual Machine — Ewasm VM
✍️ Peter Lai
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
The next generation Ethereum Virtual Machine — Ewasm VM
The next generation Ethereum Virtual Machine — Crosslink 2019 Taiwan
這篇文章是 Crosslink 2019 Taiwan 的一個議程紀錄:The next generation Ethereum Virtual Machine,由來自 Second State 的工程部 VP Hung-Ying Tai 分享 Ewasm VM 目前研究內容及未來的方向,內容非常精彩,包含了 EVM bytecode 、 Webassembly、Ewasm1.0 以及 Ewasm2.0 。
EVM bytecode 及 Webassembly(WASM)
以太坊的智能合約交易在執行時,例如 :轉 Token 到別的地址,我們是將 EVM bytecode 讀進以太坊的虛擬機執行,而 EVM bytecode 有以下幾點特色:
256 位元且堆疊式(staked-based)的虛擬機
很多高階的指令,例如:SSTORE, SLOAD, SHA3, EC, Call/Create contract
與實體系統架構(通常是 32/64 位元)有差異,而 256 位元則需要靠模擬來完成
較少程式語言(Vyper, Solidity, …)
Webassembly(WASM)是為了讓不同程式語言開發的套件都能在瀏覽器使用的一種二進位程式語言,WASM 有以下幾點特色:
堆疊式(staked-based)的虛擬機:有獨立的區域空間(暫存器或是記憶體),存取堆疊前 3 個物件(EVM 存取 16 個)
支持 32 / 64 位元的操作
沒有高階的指令
RISC 指令集也可以對應到 CPU ISA
較大的社群:主流的瀏覽器都支援,也有較多的程式語言(C++, Rust, GO, …)
Ewasm 1.0
接下來看看以太坊 Ewasm 的特性:
Ewasm 是 wasm 的子集合
因為不能有誤差,所以不支援浮點數運算
只能 import 以太坊的函式庫,避免 importㄒ系統函式庫
在每段指令之前插入 useGAS 來計算 GAS 的花費
Ethereum Environment Interface
EVM 裡有很多像是 SSLOAD, SHA3 的高階指令,這些指令在 Ewasm 1.0 裡,因為 WASM 可以動態讀取函式庫(模組),以太坊定義了 Ethereum Environment Interface 讓客戶端可以用不同的語言實作相對應的函示庫,而且也更容易完成 prototype 跟升級。
下圖是 Ethereum Environment Interface 定義的函數列表。
Ethereum Environment Interface Definition.
如何移除非法的指令?
Ewasm 使用 system contract 移除非法指令以及加入 useGas 的 bytecode,像是浮點數或是非法的 import,有以下兩種做法:
使用 smart contract 檢查合約的 bytecode
像目前的 precompiles 運行在客戶端上,在部署前先檢查合約
下圖是 Ewasm 1.0 的 stack,在部署合約前 Ewasm bytecode 會先經過 Sentinal 的檢查,成功部署後客戶端如果要執行合約會透過 EVM-C 跟 Heru(Wasm Engine)溝通。
Ewasm Stack
效能問題
究竟使用 Ewasm 效能真的會比較快嗎?講者分享各 EVM 執行 Sha1 以及 BN128mul 的結果,可以發現 EVM 在運行 BN128mul 時會是最快,主要是因為 WASM 支持 32 / 64 位元的操作,256 位元則需要另外模擬(1 個 256 位元的運算可以換成 25 個 64 位元的運算),所以 WASM 在跑 BN128mul 時才會比較慢。
Ewasm 2.0
Ewasm 2.0 的智能合約改叫 Execution Environments(EE),與 Ewasm 1.0 不一樣的有下列幾點
EE 全部都是 WASM 寫的
因為支援 cross shard,每個 EE 都是在一個 shard 上執行
EE 只能拿到 state root,而在合約的執行寫法也跟原來不一樣
EE 是 stateless
下圖可以看到 ERC20 Token 在 Ewasm 2.0 跟 Ewasm 1.0 storage 的比較,Ewasm 1.0 每個 data 都會有相對應的 key,而 Ewasm 2.0 只有存 state root,所以只能跟 state root 互動。
Ewasm 2.0 vs Ewasm 1.0
Phase One and Done
目前 Ewasm 2.0 到 phase one and done 的階段,也有測試的網路可以在 shard block 執行 EE,以太坊也有開源 Ewasm 2.0 的測試工具 Scout。
Hello World for Ewasm 2.0
上圖是 Eth 2 的 Hello World EE,可以看到 main 函數裡第一行讀取 pre state root,接下來驗證 block data size 是不是為 0,最後再將 state root 存回去,Eth 2 的智能合約寫起來都會像這樣。
結論
Ewasm 1.0 目前已經支援 EVM 1 大部分的功能也有測試鏈了,second state 開發一個編譯器 soll,能將 solidity 編譯成 Ewasm,想研究的人可以參考看看。
Ewasm 2.0 目前還在研究中,下圖是講者給大家分享的研究及貢獻的方向。
A MAYBE Roadmap
參考
Crosslink 簡報
webassembly.org
scout
soll
Ewasm overview and the precompile problem: Alex Beregszaszi and Casey Detrio @ Ethereum \\ Part 1 — YouTube
Ewasm overview and the precompile problem: Alex Beregszaszi and Casey Detrio @ Ethereum \\ Part 2 — YouTube
Wasm for blockchain&Eth2 execution: Paul Dworzanski,Alex Beregszaszi,Casey Detrio@Ethereum \\ Part 2 — YouTube
Ewasm for sharding
Ewasm updates
Ewasm design
wasm-intro
The next generation Ethereum Virtual Machine — Ewasm VM was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
cpu暫存器 在 COMPOTECHAsia電子與電腦 - 陸克文化 Facebook 的最讚貼文
#微控制器MCU #物聯網IoT #直流無刷馬達BLDC #指令集架構ISA
#整合式開發環境IDE
【MCU 問鼎處理器性能】
微控制器 (MCU) 功能不斷升級,用途也越來越廣;例如,物聯網 (IoT) 感測節點遠程控制、可攜式醫療裝置和遙控器電池、智慧建築空調/照明、多重擷取/比較/PWM 輸出 (MCCP) 等——支援低成本的無感測器直流無刷馬達 (BLDC) 電機控制應用,包括基於 PWM 的輸出轉向。部分高階 MCU 性能,甚至可與微處理器 (MPU) 一較高下。尤其 ARM- Cortex 內核普及後,不少 MCU 供應商為突顯自家產品的差異化性能,對評比機制亦頗為熱衷。
由嵌入式微處理器基準測試聯盟 (EEMBC) 所提出的「CoreMark」指標,以類似電腦 CPU 評測的方式,讓晶片測試或評估人員可透過 EEMBC 官網找到相對應的 MCU 評測結果,也可從官網下載 CoreMark 測試代碼自行測試。採用 MCU 前,有幾項選購重點可特別留意:
◆週邊功能模組 (外設) 的配置方式?獨立於內核之外以降低負載?
◆可配置邏輯單元 (CLC)?介面數量是否足夠?
◆指令集架構 (ISA)?代碼長度是否精簡?
◆記憶體空間?是否支援錯誤檢查和糾正 (ECC) 功能?
◆隱藏暫存器 (shadow register) 有助對中斷的快速回應?
◆計時器數量和定時方式?
◆工作電壓及功耗?休眠模式電流是否夠低?
◆循環冗餘校驗 (CRC) 演算?
在編譯器方面,microMIPS ISA 結合 16 位元與 32 位元指令,可精簡程式碼的大小;而圖形化程式碼設定器能輕鬆設置外設、系統計時器和接腳組態,並生成簡單易懂的代碼。透過各種處理器外掛模組 (PIM) 支援模組化電路板開發系統,包括:用於擴充板的 USB、CAN、乙太網路、無線、圖形等子板連接器,可縮短軟體開發時間。
演示視頻:
《Microchip--PIC32MM 系列單片機》
http://www.compotechasia.com/a/CTOV/2016/0804/32778.html
#微晶科技/微芯科技Microchip #PIC32MM #PIC24F XLP #PIC32MX
#PIC32MM0064GPL036 #Explorer16開發電路板 #MPLAB #microMIPS
[本文將於發佈次日下午轉載至 LinkedIn、Twitter 和 Google+ 公司官方專頁,歡迎關注]:
https://www.linkedin.com/company/compotechasia
https://twitter.com/lookCOMPOTECH
https://goo.gl/YU0rHY
cpu暫存器 在 暫存器| 他山教程,只選擇最優質的自學材料 的推薦與評價
Version < C++ 17 ... 儲存類說明符,它向編譯器提示將大量使用變數。 暫存器一詞與編譯器可能選擇將這樣的變數儲存在CPU 暫存器中的事實有關,因此可以在更 ... ... <看更多>
cpu暫存器 在 完整指令集的16 位元處理器MCU0s 的推薦與評價
MCU0 是一顆16 位元的CPU,所有暫存器都是16 位元的,總共有(IR, SP, LR, SW, PC, A) 等暫存器,如下所示: `define A R[0] // 累積器`define LR R[1] // 狀態暫存 ... ... <看更多>