學習筆記隨記-FPGA/硬件加速

一、FPGA:Field Programmable Gate Array 現場可編程門陣列

可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內嵌專用硬核。

可編程輸入/輸出單元(I/O)單元

輸入/輸出(Input/Ouput)單元簡稱 I/O 單元,它們是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配需求,為了使 FPGA 具有更靈活的應用,目前大多數 FPGA 的 I/O 單元被設計為可編程模式,即通過軟件的靈活配置,可以適配不同的電氣標準與 I/O 物理特性;可以調整匹配阻抗特性、上下拉電阻、以及調整驅動電流的大小等。

基本可編程邏輯單元

組成 FPGA 的兩個最基本的部分是組合邏輯以及時序邏輯,分別實現這兩個基本部分的結構就是 FPGA 的基本單元。組合邏輯部分一般采用查找表(Look-Up-Table,LUT)的形式,時序邏輯部分一般采用觸發器(Flip-Flop,FF)的形式。

Xilinx 7 系列 FPGA 中的可編程邏輯單元叫 CLB(Configurable Logic Block,可配置邏輯塊)每個CLB 里包含兩個邏輯片(Slice)。

時序邏輯的基本單元采用 D 觸發器,這種觸發器是一種在時鐘的上升沿(或下降沿)將輸入信號的變化轉送至輸出的邊沿觸發器。

  • 建立時間(setup-time):如果在 CLK=0 時,由于門的傳輸延時,輸入信號沒有穩定的保存到主鎖存器中,那么當 CLK 從 0 變到 1,輸入關閉,輸出打開時,主鎖存器就只能給輸出端口提供一個不穩定的信號。為了避免這種情況的發生,需要輸入信號在上升沿到來前已經穩定。
  • 保持時間(hold-time):當 CLK 從 0 變到 1,由于門的傳輸延時,門不可能立刻關閉,如果此時發生輸入信號的變化,那當門關閉后實際保存的信號就可能是變化后的信號(相當于下一時刻的信號將我們需要的當前信號覆蓋了)。為了避免這種情況的發生,需要輸入信號在上升沿到來后保持一段時間的穩定。

根據數電中的知識,任何一個組合邏輯都可以表示成真值表的形式(邏輯輸入對應邏輯輸出),也就是任意的真值表所反映的內容都能由組合邏輯實現,查找表(LUT)就能完成這個任務。

存儲器

  • 硬宏存儲器:硬宏型存儲器被稱為塊存儲器(Block RAM,BRAM),實現方法就是以硬宏的形式在架構中嵌入存儲器塊。
  • 查找表存儲器:查找表存儲器被稱為分布式存儲器(Distributed RAM,分布式 RAM),使用 SLICEM 邏輯塊查找表中的真值表作為小型的存儲器,能實現 BRAM 不能實現的異步訪問,但是一般需要小規模存儲器時才采用這種方法(不能占用太多的用來實現邏輯的查找表資源)。

存儲的一些知識

?DMA? ? ? ?Direct Memory Access 直接存儲器存取

時鐘部分

PLL?Phase Lock?Loop

由鑒相器、環路濾波器和壓控振蕩器組成,鑒相器用來鑒別輸入信號Ui與輸出信號Uo之間的相位差,并輸出誤差電壓Ud。Ud中的噪聲和干擾成分被低通性質的環路濾波器濾除。形成壓控振蕩器(Vco)的控制電壓Uc,Uc作用于壓控振蕩器的結果是把它的輸出震蕩頻率fo拉向環路輸入信號頻率fi,當二者相等時,環路被鎖定,稱為入鎖。PLL并不是直接對晶振進行倍頻,而是將頻率穩定的晶振作為基準信號,與PLL內部振蕩電路生成的信號分頻后進行比較,使PLL輸出的信號頻率穩定,工作原理如下圖所示。

DLL Delay Lock Loop

DLL是基于數字抽樣方式,在輸入時鐘和反饋時鐘之間插入延遲,使輸入時鐘和反饋時鐘的上升沿一致來實現的。又稱數字鎖相環。一個最簡單的DLL與PLL的主要不同在于DLL用延時線代替了PLL的壓控振蕩器,延時線產生輸入時鐘的延時輸出。

二、體系結構

Von Neumann Architecture

系統總線 BUS

最高效的計算方式應該是怎樣的?

現在大家應該都知道了,計算的瓶頸往往不在于運算單元數量的不夠或是速度不夠高,而是在內存帶寬上,也就是數據讀寫來不及,運算單元喂不飽。那最高效的計算方式自然就是能充分利用片上高速內存,讓運算單元等待數據的情況從不發生,同時盡可能的減少了對外部DDR的讀寫,這也同時降低了功耗,所以既要速度快又要功耗低這兩者其實并不矛盾

為什么FPGA比GPU的能耗更低呢?上面講的是原因之一,還有一個原因是FPGA是硬件可編程,所以它的數據通路是最直接的。比如說用FPGA算兩個數相加,那直接把兩個數從內存讀進來送到加法器那去加就行了。但在GPU中還要進行指令譯碼,知道是做加法之后還要把這兩個數往加法器那里送,這中間數據要經過一些選通器才會被正確的送到加法器那而不是別的運算單元那里。譯碼,數據經過選通,這些都會產生額外的功耗。而FPGA每次要做的運算都是固定的,所以不需要指令譯碼,也基本不需要數據的選通。

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

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

相關文章

docker宿主機修改ip后起不來問題解決

確保容器已經連接到了正確的網絡。如果沒有,你可以使用以下命令將容器連接到網絡: 1、停止docker網絡 ifconfig docker0 down1. 停止 Docker 服務 sudo systemctl stop docker2. 刪除 docker0 接口 sudo ip link delete docker03、刪除舊的網橋 docker n…

G1 垃圾回收算法詳解

目錄 簡介 G1 GC 的設計目標 內存結構 回收過程 初始標記(Initial Mark)并發標記(Concurrent Mark)最終標記(Final Mark / Remark)篩選回收(Cleanup / Evacuation) 混合回收&…

JavaEE多線程——鎖策略 CAS synchronized優化

目錄前言1.鎖策略1.1 樂觀鎖和悲觀鎖1.2 重量級鎖和輕量級鎖1.3 掛起等待鎖和自旋鎖1.4 公平鎖和非公平鎖1.5 可重入鎖和不可重入鎖1.6 讀寫鎖2.CAS2.1 CAS的應用2.2 CAS的ABA問題3.synchronized優化3.1鎖升級3.2鎖消除3.3鎖粗化總結前言 本篇文章主要介紹多線程中鎖策略、CAS…

Windows符號鏈接解決vscode和pycharm占用C盤空間太大的問題

Windows符號鏈接解決vscode和pycharm占用C盤空間太大的問題 參考文章:Windows符號鏈接 1、找到vscode和pycharm在C盤的緩存文件夾。 C:\Users\用戶名\AppData\Roaming\Code C:\Users\用戶名\.vscode\extensionsC:\Users\用戶名\AppData\Local\JetBrains C:\Users…

賦能家庭、行業與工業場景,智微智能新一代Twin Lake 全棧智能終端發布

在數字化浪潮席卷全球的今天,智能終端已成為連接物理世界與數字世界的核心樞紐。智微智能基于Intel Twin Lake平臺,推出覆蓋家庭/行業應用及工業物聯網的全場景產品矩陣,為不同場景下的用戶提供高效、可靠的產品和解決方案。Intel Twin Lake架…

復習筆記 31

前言 好好復習。今天距離考研初試還剩一百六十一天。我的時間其實沒剩多少了呀。我得好好加油。 歸并排序 #include<algorithm> #include<iostream>using namespace std;const int N 100010; int n; int a[N], tmp[N];void merge ( int a[], int l, int r ) {if (…

el-tree 懶加載 loadNode

el-tree 是 Element UI 提供的樹形組件&#xff0c;其懶加載功能通過 loadNode 方法實現&#xff0c;可以在用戶展開節點時動態加載子節點數據&#xff0c;避免一次性加載大量數據。下面介紹 loadNode 的具體用法和示例。基本用法loadNode 是 el-tree 的一個重要屬性&#xff0…

【機器學習入門巨詳細】(研0版)二創OPEN MLSYS

自學機器學習&#xff0c;從入門到精通導論機器學習的基本框架設計目標機器學習框架基本組成原理機器學習生態機器學習工作流環境配置數據處理模型定義損失函數和優化器訓練及保存模型測試及驗證模型定義深度神經網絡以層為核心定義神經網絡神經網絡層實現原理自定義神經網絡層…

Excel 轉 JSON by WTSolutions API 文檔

Excel 轉 JSON by WTSolutions API 文檔 簡介 Excel 轉 JSON API 提供了一種簡單的方式將 Excel 和 CSV 數據轉換為 JSON 格式。該 API 接受制表符分隔或逗號分隔的文本數據&#xff0c;并返回結構化的 JSON。 接口端點 POST https://mcp.wtsolutions.cn/excel-to-json-api 請求…

git版本發布

cvs和svn都是集中式版本控制系統,而git是分布式版本控制系統。 1、集中式版本控制系統必須聯網才能工作&#xff0c;如果在局域網內還好&#xff0c;帶寬夠大&#xff0c;速度夠快&#xff0c;可如果在互聯網上&#xff0c;遇到網速慢的話&#xff0c;呵呵。分布式版本控制系統…

138-EMD-KPCA-CPO-CNN-BiGRU-Attention模型!

138-EMD-KPCA-CPO-CNN-BiGRU-Attention基于經驗模態分解和核主成分分析的長短期記憶網絡改進多維時間序列預測MATLAB代碼&#xff01;其中&#xff08;含CPO-CNN-BiGRU-attention、EMD-CPO-CNN-BiGRU-Attention、EMD-KPCA-CPO-CNN-BiGRU-Attention三個模型的對比&#xff09; 可…

系統思考:多元勝過能力

系統思考&#xff1a;從整體出發&#xff0c;打破瓶頸&#xff0c;擁抱多元 我們是否曾經陷入過這樣的困境&#xff1f; 1、專注能力提升&#xff0c;卻無法突破瓶頸&#xff1a;我和團隊日復一日地努力提升個人能力&#xff0c;投入無數時間和精力&#xff0c;但始終無法打破現…

qt樣式整合持續更新中(實測有效的)

// 僅顯示上邊框 一般可以作為直線使用 border-top: 2px solid black; //畫虛線 border-bottom: 2px dashed white; //單個圓角 border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; //透明背景 background:rgba(0,0,0,0); //設置字體 font:15pt; //給button設置…

[java][springboot]@PostConstruct的介紹和用法

在 Spring Boot&#xff08;以及整個 Spring Framework&#xff09;中&#xff0c;PostConstruct 是一個非常常用的注解&#xff0c;用于在 依賴注入完成后 執行一些初始化操作。import jakarta.annotation.PostConstruct; import org.springframework.stereotype.Component;Co…

Leaflet面試題及答案(41-60)

查看本專欄目錄 文章目錄 ?? 面試問題及答案(41-60)41. 如何判斷某個點是否在地圖可視區域內?42. 如何動態更新 Marker 位置?43. 如何清除地圖上的所有圖層?44. 如何保存地圖截圖?45. 如何檢測瀏覽器是否支持觸摸?46. Leaflet 是否支持 TypeScript?47. 如何修改默認圖…

Redis事件機制

Redis 采用事件驅動機制來處理大量的網絡IO。它并沒有使用 libevent 或者 libev 這樣的成熟開源方案&#xff0c;而是自己實現一個非常簡潔的事件驅動庫 ae_event。事件機制Redis中的事件驅動庫只關注網絡IO&#xff0c;以及定時器。該事件庫處理下面兩類事件&#xff1a;文件事…

Linux基礎開發工具

目錄 1.寫在前面 2.權限 3.file命令 4.基礎開發工具 1.軟件包管理器 5.編輯器vim 1.寫在前面 我們在上一講解中講解了權限是人事物屬性&#xff0c;還知道了擁有者所屬組其他人這三個概念&#xff0c;知道了33一組&#xff0c;rwx分別代表什么。那么下面我們繼續進行權限…

ICCV2025 特征點檢測 圖像匹配 RIPE

目測對剛性物體效果比較好代碼&#xff1a;https://github.com/fraunhoferhhi/RIPE 論文&#xff1a;https://arxiv.org/abs/2507.04839import cv2 import kornia.feature as KF import kornia.geometry as KG import matplotlib.pyplot as plt import numpy as np import torc…

Ubuntu22.0.4安裝PaddleNLP

Ubuntu22.0.4安裝PaddleNLP環境說明安裝底層框架Paddle安裝PddleNLP1. pip安裝2. 驗證安裝3. 最后問題集錦環境說明 1. miniconda 25.5.1 2. python 3.12.11 3. pip 25.1 4. nvidia 570.144 5. cuda 12.8**注意&#xff1a;**安裝過程可能遇到的一些問題&#xff0c;參考末尾的…

【HTTP服務端】Cookie?Session?Token?

文章目錄cookie與sessiontoken什么是JWT&#xff1f;JWT的組成結構1. Header&#xff08;頭部&#xff09;2. Payload&#xff08;負載&#xff09;3. Signature&#xff08;簽名&#xff09;JWT工作原理JWT的特點安全注意事項cookie與session cookie有哪些屬性 鍵值對&#xf…