嵌入式系統基礎知識

目錄

一、馮·諾依曼結構與哈佛結構

(一)馮·諾依曼結構

(二)哈佛架構

二、ARM存儲模式

(一)大端模式

(二)小端模式

(三)混合模式

三、CISC 與 RISC

(一)指令集特點

(二)硬件結構

(三)性能表現

(四)應用場景

四、流水線技術

(一)基本原理

(二)優點

(三)缺點

(四)應用領域


一、馮·諾依曼結構與哈佛結構

????????馮·諾依曼結構哈佛結構是計算機體系結構中的兩種重要類型,以下從其基本定義特點應用場景等方面進行介紹:

(一)馮·諾依曼結構

1、定義

????????也稱為普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令和數據都存儲在同一存儲器中,并且通過同一組總線進行訪問

2、特點

(1)指令和數據共享存儲器

????????程序和數據存放在相同的存儲空間,可按地址訪問,數據和指令在形式上無差別,指令可像數據一樣被修改。

(2)分時復用總線

????????同一時刻只能進行取指令或數據讀寫操作,通過分時復用方式共享數據總線和地址總線,限制了數據傳輸帶寬。

(3)易于實現

????????結構簡單,設計和實現成本較低,通用性強,適用于多種類型的計算任務。

3、應用場景

????????廣泛應用于早期的計算機系統以及一些通用型計算機中,如個人計算機、服務器等。

????????例如,x86 架構的計算機大多采用馮諾依曼結構,能很好地滿足一般用戶的多樣化計算需求,包括辦公、娛樂、編程等各種任務。

(二)哈佛架構

1、定義

????????是一種將程序指令存儲和數據存儲分開的存儲器結構,有獨立的程序存儲器和數據存儲器,分別有各自的地址總線數據總線

2、特點

(1)指令和數據分開存儲

????????程序存儲器和數據存儲器相互獨立,可同時進行指令讀取和數據讀寫操作,提高了數據處理效率。
(2)獨立的總線

????????具有獨立的程序總線和數據總線,使指令和數據能并行傳輸,增加了數據傳輸帶寬,適合高速數據處理。

(3)提高指令執行效率

????????由于取指令和取數據可同時進行,能更高效地執行指令,尤其適用于實時性要求高的任務

3、應用場景

????????常用于一些對實時性和處理速度要求較高的系統中,如數字信號處理器(DSP)微控制器(MCU)以及一些專用的嵌入式系統。

????????例如,在音頻、視頻處理設備以及工業控制領域的嵌入式系統中,哈佛結構能快速處理大量數據,滿足實時處理的要求。

二、ARM存儲模式

????????ARM 處理器具有多種存儲模式,以適應不同的應用場景和數據處理需求,主要包括大端模式小端模式混合模式,以下是具體介紹:

(一)大端模式

1、數據存儲方式

????????數據的高位字節存于低地址,低位字節存于高地址。

????????例如,對于 32 位整數0x12345678,在大端模式下,0x12存于內存低地址,接著依次是0x34、0x56、0x78存于更高地址,就像按從左到右(高位在前)的順序存儲。

2、特點

????????符合人類正常思維習慣,先看到數據高位部分。

????????在處理文本、網絡協議等以字節為單位且有明確高低位順序的數據時,大端模式更方便,因為可以按順序讀取和處理字節,無需額外轉換。

3、應用場景

????????常用于一些對數據存儲格式有嚴格規范的場景,如網絡協議棧、文件系統等。在網絡傳輸中,數據通常以大端模式進行打包和傳輸,以確保不同設備和平臺之間的數據一致性。

(二)小端模式

1、數據存儲方式

????????與大端模式相反,數據的低位字節存于低地址,高位字節存于高地址。

????????對于0x12345678,在小端模式下,0x78存于內存低地址,接著是0x56、0x34、0x12存于更高地址,如同從右到左(低位在前)存儲。

2、特點

????????計算機硬件按字節讀取內存時,從小地址開始先讀取到數據低位部分,無需額外轉換操作,能提高數據處理效率,尤其在處理整數等基本數據類型時,CPU 可直接按字節讀取和組合數據,無需調整字節順序。

3、應用場景

????????在大多數微處理器和微控制器中,小端模式是默認存儲模式,因為它更符合硬件的自然處理方式,能減少數據處理中的額外開銷,提高系統性能。

????????許多嵌入式系統和實時操作系統也常采用小端模式,以充分利用硬件性能,快速處理數據。

(三)混合模式

1、數據存儲方式

????????允許在同一系統或程序中同時使用大端模式和小端模式,根據具體數據類型、數據結構或應用需求靈活選擇存儲方式

2、特點

????????具有較高靈活性,可根據不同數據特性選擇最合適存儲模式,以優化存儲和訪問效率

????????但管理和維護數據存儲格式的復雜性增加,需要開發者明確區分不同數據的存儲模式,避免數據混淆和錯誤。

3、應用場景

????????在一些復雜的應用場景中,如同時處理多種不同格式數據?(如既有網絡數據又有本地存儲的整數數據) 的系統,或者需要與不同端模式設備進行交互的應用中,混合模式可提供更靈活的解決方案,使系統適應多種數據存儲和傳輸要求

三、CISC 與 RISC

????????CISC(復雜指令集計算機)和 RISC(精簡指令集計算機)是兩種不同的計算機指令集架構,以下從指令集特點硬件結構性能等方面對它們進行介紹:

(一)指令集特點

1、CISC

(1)指令數量多

????????包含大量不同功能的指令,指令長度可變,格式多樣。例如,既有簡單的加法指令,也有復雜的字符串處理指令等。

(2)指令功能復雜

????????一條指令可以完成多種操作,如在一條指令中實現內存訪問、算術運算和邏輯運算等。

(3)尋址方式豐富

????????支持多種尋址方式,如直接尋址、間接尋址、變址尋址等,這使得指令能夠靈活地訪問內存中的數據。

2、RISC

(1)指令數量少

????????只包含一些最基本、常用的指令,指令長度通常固定,格式相對簡單。例如,主要包括加法、減法、加載、存儲等簡單指令。

(2)指令功能簡單

????????每條指令通常只完成一個基本操作,如一條指令只進行一次加法運算或一次內存加載操作。

(3)尋址方式簡單

????????一般采用較少的尋址方式,通常以寄存器尋址為主,減少了指令執行時的復雜性。

(二)硬件結構

1、CISC

(1)硬件復雜

????????由于指令功能復雜,需要更多的硬件電路來實現指令的譯碼和執行,因此 CPU 內部結構復雜,包含多種專用的硬件單元,如乘法器、除法器等。

(2)指令執行單元多樣

????????為了支持不同類型的指令,有多個不同功能的指令執行單元,這些單元的設計和控制較為復雜。

2、RISC

(1)硬件簡單

????????指令簡單使得硬件設計相對容易,CPU 內部結構較為規整,通常采用流水線技術,提高指令執行效率。

(2)強調寄存器使用

????????具有較多的通用寄存器,數據處理主要在寄存器之間進行,減少了對內存的訪問,提高了數據處理速度。

(三)性能表現

1、CISC

(1)程序代碼緊湊

????????對于一些復雜的任務,由于一條指令可以完成較多工作,因此編寫的程序代碼相對較短,占用的內存空間較小。

(2)執行效率不均衡

????????對于簡單指令,執行速度可能較慢,因為硬件需要花費時間來譯碼和執行復雜的指令。而對于復雜任務,可能只需要較少的指令就能完成,執行效率較高

2、RISC

(1)指令執行速度快

????????由于指令簡單且長度固定,指令的譯碼和執行過程相對簡單,能夠在一個時鐘周期內完成一條指令的執行,因此指令執行速度快。

(2)程序代碼較長

????????因為每條指令功能單一,完成相同的任務可能需要更多的指令,所以程序代碼相對較長,占用的內存空間較大。

(四)應用場景

1、CISC

(1)通用計算機

????????適用于需要處理多種不同類型任務的通用計算機系統,如個人計算機、服務器等。

????????這些系統需要運行各種不同的軟件,包括操作系統、辦公軟件、數據庫管理系統等,CISC 的復雜指令集能滿足這些軟件對各種功能的需求。

(2)早期計算機系統

????????在計算機發展的早期,由于硬件成本較高,人們希望通過復雜的指令集來減少程序代碼的長度,提高計算機的性能。因此,早期的計算機大多采用 CISC 架構。

2、RISC

(1)嵌入式系統

????????在嵌入式系統中,如手機、平板電腦、智能家電等,對芯片的功耗、成本和實時性要求較高。RISC 架構的簡單硬件結構使得芯片能夠在較低的功耗下運行,并且能夠快速響應外部事件,滿足嵌入式系統的要求。

(2)高性能計算

????????在一些高性能計算領域,如超級計算機、圖形處理單元(GPU)等,也采用 RISC 架構。通過大量的簡單指令并行執行,可以實現很高的計算性能。

四、流水線技術

????????流水線技術是一種將指令執行過程分解為多個階段并讓多個指令在不同階段同時執行的技術,以提高計算機系統的指令執行效率和性能。以下從原理特點應用等方面進行介紹:

(一)基本原理

????????把指令執行過程劃分為若干個相對獨立的階段,如取指令指令譯碼取操作數執行指令寫回結果等。每個階段由專門的硬件單元來完成,就像工廠生產線上的不同工序。

????????當一條指令進入流水線后,會依次經過各個階段,在每個時鐘周期,各階段同時處理不同指令的不同部分。

????????例如,在第一個時鐘周期,第一條指令進行取指令操作;第二個時鐘周期,第一條指令進入指令譯碼階段,同時第二條指令開始取指令操作,以此類推,實現多條指令的重疊執行。

(二)優點

1、提高指令執行效率

????????多條指令在流水線中同時處于不同的執行階段,大大提高了單位時間內執行指令的數量從而提高了整個系統的處理能力。

????????例如,若沒有流水線技術,執行一條指令需要 5 個時鐘周期,那么執行 5 條指令就需要 25 個時鐘周期;而采用流水線技術,在理想情況下,5 條指令只需 9 個時鐘周期(假設流水線有 5 個階段)。

2、簡化硬件設計

????????流水線技術將復雜的指令執行過程分解為多個簡單的階段,每個階段的硬件設計相對簡單,易于實現和優化。

????????同時,由于各階段可以并行工作,也便于采用大規模集成電路技術實現,提高了硬件的可靠性和穩定性。

3、提高系統的吞吐率

????????系統能夠持續不斷地處理指令,就像流水一樣源源不斷,從而提高了系統的整體性能和響應速度,能夠更好地滿足實時性要求較高的應用場景。

(三)缺點

1、數據相關問題

????????如果相鄰指令之間存在數據依賴關系,例如后一條指令需要使用前一條指令的執行結果,那么可能會導致流水線阻塞。因為后一條指令在相關數據未準備好之前,不能進入相應的執行階段,從而影響流水線的效率。

2、指令相關問題

????????當程序中存在條件轉移指令時,由于在指令執行到轉移指令時才能確定是否轉移以及轉移的目標地址,這就可能導致流水線中的后續指令被錯誤地預取和執行

????????一旦條件轉移的結果與之前的預測不符,就需要清空流水線,重新取指令,從而造成流水線的停頓和性能損失。

3、硬件資源沖突

????????如果多個指令同時需要使用同一硬件資源,如多個指令同時需要訪問內存或使用乘法器等,就會發生資源沖突,導致某些指令需要等待資源可用,進而影響流水線的連續性。

(四)應用領域

1、CPU 設計

????????幾乎所有現代的微處理器都采用了流水線技術,如英特爾、AMD 的 x86 架構處理器,以及 ARM 架構處理器等。

????????通過不斷優化流水線的深度和結構,提高了 CPU 的性能和運行頻率,使其能夠同時處理多個任務和復雜的計算。

2、數字信號處理(DSP)

????????在音頻、視頻處理,以及通信系統中的數字信號處理等領域,流水線技術被廣泛應用于提高信號處理的速度和實時性。

????????例如,在音頻編碼和解碼過程中,通過流水線技術可以快速地對音頻數據進行采樣、量化、編碼等操作。

3、圖形處理單元(GPU)

????????GPU 在處理圖形渲染、圖像識別等任務時,也采用流水線技術來提高處理效率

????????例如,在圖形渲染過程中,通過流水線技術可以依次完成頂點處理、光柵化、紋理映射、顏色計算等多個階段的操作,從而快速生成高質量的圖像。

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

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

相關文章

CSS 預處理器 Sass

目錄 Sass 一、Sass 是什么? 二、核心功能詳解 1. 變量(Variables) 2. 嵌套(Nesting) 3. 混合宏(Mixins) 4. 繼承(Inheritance) 5. 運算(Operations&…

信息收集新利器:SSearch Chrome 插件來了

SSearch 下載地址 SSearch 😣用途 每次谷歌語法搜索時還得自己寫,我想省事一點,弄了一個插件,先加了幾個常用的語法,點擊后會跳轉到對應搜索頁面,也可以直接在搜索框微調 后續也會加些其他語法 &#…

Docker搭建SFTP

在這個教程中,我們將通過一個簡單的例子來展示如何使用 Docker 和 atmoz/sftp 鏡像設置一個基本的 SFTP 服務。這個服務將允許用戶通過 SFTP 安全地訪問和管理文件。我們將配置一個名為 ops 的用戶,其密碼為 123456,并限定用戶只能訪問特定的…

正態分布習題集 · 答案與解析篇

正態分布習題集 答案與解析篇 與題目篇編號一致,如有其他解題思路,歡迎在評論區交流。 1. 基礎定義與性質 1.1 密度函數 X ~ N ( μ , σ 2 ) X \sim N(\mu,\sigma^2) X~N(μ,σ2) 的 PDF: [ f(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp\left(-\frac{(x-\mu)2}{2\sigma2}\…

Java學習手冊:SQL 優化技巧

一、SQL 查詢優化 選擇合適的索引列 :索引可以顯著提高查詢速度,但需要選擇合適的列來創建索引。通常,對于頻繁作為查詢條件的列、連接操作的列以及排序或分組操作的列,應該考慮創建索引。例如,在一個訂單表中&#xf…

(02)Redis 的訂閱發布Pub/Sub

我們為了自己實現一個MQ功能,就要深入底層挖掘現有開源產品的實現過程。 Redis 發布訂閱底層結構解析 Redis 不存儲消息,僅作為“實時中轉”;只有訂閱者在線時才能收到消息;消息是廣播給所有訂閱此頻道的客戶端。 1. 核心數據結…

使用Docker一鍵安裝SigLens:簡單快捷的日志分析解決方案

在當今復雜的IT環境中,高效的日志管理和分析變得越來越重要。SigLens作為一款強大的開源日志分析工具,為開發者和運維人員提供了直觀、高效的日志處理體驗。本文將介紹如何使用Docker快速安裝SigLens,讓您在幾分鐘內就能開始進行日志分析。 為什么選擇Docker安裝SigLens? Do…

C#與西門子PLC通信:S7NetPlus和HslCommunication使用指南

西門子S7協議是用來和PLC進行通訊的一個協議,默認端口是102,數據會保存在一個個DB塊中,比較經典的用法是一個DB塊專門用來讀取,一個用來寫入。 DB(數據塊) {塊號}.DBX/DBD/DBW{字節地址}.{位偏移} 1、數據…

【中間件】brpc_基礎_remote_task_queue

文章目錄 remote task queue1 簡介2 核心功能2.1 任務提交與分發2.2 無鎖或低鎖設計2.3 與 bthread 深度集成2.4 流量控制與背壓 3 關鍵實現機制3.1 數據結構3.2 任務提交接口3.3 任務竊取(Work Stealing)3.4 同步與喚醒 4 性能優化5 典型應用場景6 代碼…

C語言實現數據結構:堆排序和二叉樹_鏈式

一.堆的應用 1.堆排序 void test01() {int arr[] { 17,20,10,13,19,15 };int n sizeof(arr) / sizeof(arr[0]);HP p;HPInit(&p);for (int i 0; i < n; i){HPPush(&p, arr[i]);}int i 0;while (!HPEmpty(&p)){arr[i] HPTop(&p);HPPop(&p);}for (i…

C和指針——預處理

預處理是編譯前的過程&#xff0c;主要對define&#xff0c;include以及一些編譯器定義的內容進行替換 #define的本質就是替換 1、例子 #define FOREVER for(;;) 2、例子 #define TEMPD "1231231231\ 123123123" \\如果太長了&#xff0c;可以用\換行 3、例子——可…

C++ set和map

目錄 一、關聯式容器 1.1 鍵值對 1.1.1 概念 1.1.2 pair 1.2 樹形結構的關聯式容器 二、set 2.1 set 的介紹 2.2 set 的使用 2.2.1 set 的構造 2.2.2 set 的迭代器 2.2.3 set 的容量操作 2.2.4 set 的修改操作 2.2.5 set 的查找操作 三、multiset 3.1 multiset …

「Mac暢玩AIGC與多模態07」開發篇03 - 開發第一個 Agent 插件調用應用

一、概述 本篇介紹如何在 macOS 環境下,基于 Dify 平臺自帶的網頁爬蟲插件工具,開發一個可以提取網頁內容并作答的 Agent 應用。通過使用內置插件,無需自定義開發,即可實現基本的網頁信息提取與智能體回答整合。 二、環境準備 1. 確認本地部署環境 確保以下環境已搭建并…

cline或業務系統集成n8n的工作流(MCP Server Trigger、Call n8n Workflow Tool node)

1.成果展示 1.1n8n的主工作流 1.2n8n的子工作流 1.3cline集成效果 2.實操過程 2.1Call n8n Workflow Tool node節點 Call n8n Workflow Tool節點是一個工具&#xff0c;它允許代理運行另一個n8n工作流并獲取其輸出數據。 在此頁面上&#xff0c;您將找到“調用n8n工作流工具…

深入了解Linux系統—— 環境變量

命令行參數 我們知道&#xff0c;我們使用的指令它本質上也是一個程序&#xff0c;我們要執行這個指令&#xff0c;輸入指令名然后回車即可執行&#xff1b;但是對于指令帶選項&#xff0c;又是如何實現的呢&#xff1f; 問題&#xff1a;main函數有沒有參數&#xff1f; 在我…

pip安裝包時網絡不暢,替換國內PyPI鏡像源

1、PyPI 鏡像源 1.1、定義 PyPI 鏡像源是對 Python Package Index&#xff08;PyPI&#xff09;官方倉庫的復制。 PyPI 是 Python 社區中最大的軟件包倉庫&#xff0c;存儲著大量的 Python 包&#xff0c;供開發者們下載和使用。 然而&#xff0c;由于 PyPI 服務器位于國外&a…

貪心算法解決會議安排問題

文章目錄 前言 一、什么是貪心算法&#xff1f; 貪心算法的基本概念&#xff1a;貪心算法并不從整體最優上加以考慮&#xff0c;所做的選擇只是在某種意義上的局部最優選擇。 二、會議安排題目 1.題目理解 2.思路剖析 總結 前言 本文將主要介紹貪心算法需要注意的地方以…

從入門到登峰-嵌入式Tracker定位算法全景之旅 Part 4 |IMU 死算與校正:慣性導航在資源受限環境的落地

Part 4 |IMU 死算與校正:慣性導航在資源受限環境的落地 本章聚焦 ESP32-S3 平臺上如何利用 LSM6DS3 IMU 實現 死算(Dead Reckoning),并結合 零速更新(ZUPT) 或 磁力計輔助 進行 漂移校正,最終通過 EKF/UKF 融合提升定位精度。 一、傳感器簡介與校準 LSM6DS3 主要參數 加速…

力扣1128題解

記錄 2525.5.4 題目&#xff1a; 思路&#xff1a; 先將dominoes[i]的二元全部變為前大后小的形式&#xff0c;再遍歷該數組&#xff0c;用數組來記錄。 代碼&#xff1a; class Solution {public int numEquivDominoPairs(int[][] dominoes) {int [] [] cnt new int [10…

with的用法

Python SQLite 操作詳解 本文檔詳細解釋了使用 Python 操作 SQLite 數據庫時涉及的關鍵概念和代碼實踐&#xff0c;包括 with 語句、事務處理、批量插入以及相關的優化建議。 一、with 語句的作用&#xff08;自動關門的保險庫&#xff09; with sqlite3.connect(city_1301.d…