硬體運作的基本機制(資料處理流程)

更新於 2024/12/08閱讀時間約 11 分鐘

本次筆記學習目標:了解 CPU 如何處理指令,記憶體如何儲存資料

簡單來說,CPU 會從 Cache 也就是較上層的記憶體取得資料

圖片來源:Introduction to Memory

raw-image

再用複習一次這張圖,其中Register 跟Cache 會很常被提到,因為他們離 CPU 最近,通常從這兩個地方取得。

raw-image

Memory 與 Storage:它們有什麼不同?

大家常常聽到「記憶體」和「儲存裝置」,但這兩個東西到底有什麼不同?其實,它們的差別很明顯:

Memory(記憶體) 

  • 記憶體的工作像是一個臨時的工作台,用來暫時存放正在運行的資料或程式。它速度快,但斷電後資料就會消失,屬於 揮發性記憶體
  • 常見的記憶體種類:
    • SRAM(靜態記憶體):速度超快,用於 CPU 的快取記憶體(Cache),但造價昂貴。
    • DRAM(動態記憶體):用於一般的主記憶體(RAM),比 SRAM 慢但便宜。
    • RAM(隨機存取記憶體):一般用來指 DRAM,電腦執行中的程式和資料都放在這裡。
    • ROM(唯讀記憶體):儲存固化的資料,例如電腦開機的基本指令(BIOS)。它是非揮發性記憶體,斷電後資料不會消失。

Storage(儲存裝置)

  • 儲存裝置像是一個大型倉庫,用來長期保存檔案、應用程式、作業系統等。它屬於 非揮發性記憶體,即使斷電,資料仍然存在。
  • 常見的儲存裝置:
    • 硬碟(HDD):磁碟式儲存,容量大但讀寫速度相對慢。
    • 固態硬碟(SSD):速度比 HDD 快很多,沒有機械結構,更耐用。
    • USB 隨身碟 / 記憶卡:便攜式儲存裝置,用於短期資料存取。

兩者的區別

  • 記憶體(Memory):執行程式用的暫存空間,速度快但容量小。
  • 儲存裝置(Storage):用來長期保存資料,速度慢但容量大。
    舉個例子,當你開啟一個應用程式時,它會從 儲存裝置 載入到 記憶體,讓 CPU 可以快速讀取來執行。

Memory 和 Storage 的關係圖。

raw-image

10+ Key Memory & Storage Systems: Crash Course System Design #5


CPU 的 Fetch-Decode-Execute Cycle(取指令-解碼-執行循環)

CPU 就像電腦的大腦,所有運算都由它來執行,而它的工作原理可以簡化為三個步驟:

  1. Fetch(取指令)
    CPU 從記憶體(RAM)中取出要執行的指令。這些指令以電壓的形式存在,0 表示低電壓,1 表示高電壓,組成機器語言的指令。舉例:CPU 發出訊號,要求記憶體提供下一條指令,像是「開啟一個檔案」。
  2. Decode(解碼)
    CPU 解讀剛取出的指令,判斷需要做什麼工作。指令會被拆解成小步驟,例如運算或資料移動。舉例:解讀出指令是「從磁碟讀取檔案到記憶體」。
  3. Execute(執行)
    CPU 執行剛解碼的指令,可能是進行數學運算、移動資料,或者與其他硬體互動。舉例:CPU 執行「將檔案從磁碟載入到記憶體」的指令,這裡可能涉及 I/O 裝置的操作。

這個過程就像一個永不停歇的循環,CPU 會不斷從記憶體中取指令、解碼、執行,直到所有指令完成。

參考影片:(待補充細節圖片給讀者)

The Fetch-Execute Cycle: What's Your Computer Actually Doing?


小總結

  1. 記憶體和儲存裝置各有用途,記憶體速度快但只能暫時存資料,儲存裝置負責長期保存。
  2. CPU 的取指-解碼-執行循環讓它能高效地執行程式。


留言0
查看全部
avatar-img
發表第一個留言支持創作者!
本文用書櫃、書、書桌的比喻,深入探討電腦中資料儲存結構及作業系統如何協調資料處理。外部儲存裝置如同書櫃,主記憶體則比作書桌,處理器被比喻為讀書的人,並詳細介紹資料存取過程、Common Bus的角色以及作業系統的核心任務。透過此篇,讀者能更好地瞭解電腦在資料處理上的運作邏輯及作業系統的重要性。
本文深入探討 NoSQL 資料庫的特性及優勢,並將其與傳統 SQL 資料庫進行比較。NoSQL 資料庫因其結構靈活、擴展性強而適合儲存變化多端的數據,特別是在社交媒體和電商平臺等高需求場景。CAP 理論也被提出,解釋了分散式系統的能力取捨問題,幫助讀者瞭解在不同需求下如何選擇合適的資料庫技術。
本文探討 SQL 注入(SQL Injection)的攻擊原理及其防護措施。透過具體範例,解釋駭客如何利用應用程式漏洞進行資料庫攻擊,並提供有效的防範方法,包括使用參數化查詢、ORM 框架和輸入驗證等技術,確保應用程式的安全性。最後還簡介資料庫分區與分片的概念,讓讀者更全面理解如何管理和保護資料庫。
本文介紹了資料庫索引的基本原理、類型以及其在資料查詢中的重要性。索引類似於書的目錄,不僅可以提高查詢效率,還有助於組織資料。文章詳細說明瞭主索引、密集索引、稀疏索引、叢索引和非叢索引的定義與特點,並提供了實際的比喻和例子。透過深入瞭解索引的運作,讀者可以更好地設計和優化資料庫,並提升查詢效能。
本篇文章是作者自學 SQL 的筆記,詳述資料庫中的四種主要語言類別:DDL、DML、TCL 及 DCL,每類別對應的功能與常見操作一一列舉,並深入探討交易的特性及其 ACID 原則。此外,文章還解釋了資料庫的正規化及反正規化的必要性,對於學習 SQL 的讀者有很大的幫助。
本文將逐步拆解如何將 ER 圖轉換為 Schema,深入瞭解 ER 圖的意義以及其對於資料庫設計的重要性。透過影片內容,我們可以學習如何清晰地描述實體關係,並將複雜的資料結構轉化為易於管理的 Schema 形式。無論是初學者或有經驗的資料庫管理者,都能從中獲得實用的技巧和知識。
本文用書櫃、書、書桌的比喻,深入探討電腦中資料儲存結構及作業系統如何協調資料處理。外部儲存裝置如同書櫃,主記憶體則比作書桌,處理器被比喻為讀書的人,並詳細介紹資料存取過程、Common Bus的角色以及作業系統的核心任務。透過此篇,讀者能更好地瞭解電腦在資料處理上的運作邏輯及作業系統的重要性。
本文深入探討 NoSQL 資料庫的特性及優勢,並將其與傳統 SQL 資料庫進行比較。NoSQL 資料庫因其結構靈活、擴展性強而適合儲存變化多端的數據,特別是在社交媒體和電商平臺等高需求場景。CAP 理論也被提出,解釋了分散式系統的能力取捨問題,幫助讀者瞭解在不同需求下如何選擇合適的資料庫技術。
本文探討 SQL 注入(SQL Injection)的攻擊原理及其防護措施。透過具體範例,解釋駭客如何利用應用程式漏洞進行資料庫攻擊,並提供有效的防範方法,包括使用參數化查詢、ORM 框架和輸入驗證等技術,確保應用程式的安全性。最後還簡介資料庫分區與分片的概念,讓讀者更全面理解如何管理和保護資料庫。
本文介紹了資料庫索引的基本原理、類型以及其在資料查詢中的重要性。索引類似於書的目錄,不僅可以提高查詢效率,還有助於組織資料。文章詳細說明瞭主索引、密集索引、稀疏索引、叢索引和非叢索引的定義與特點,並提供了實際的比喻和例子。透過深入瞭解索引的運作,讀者可以更好地設計和優化資料庫,並提升查詢效能。
本篇文章是作者自學 SQL 的筆記,詳述資料庫中的四種主要語言類別:DDL、DML、TCL 及 DCL,每類別對應的功能與常見操作一一列舉,並深入探討交易的特性及其 ACID 原則。此外,文章還解釋了資料庫的正規化及反正規化的必要性,對於學習 SQL 的讀者有很大的幫助。
本文將逐步拆解如何將 ER 圖轉換為 Schema,深入瞭解 ER 圖的意義以及其對於資料庫設計的重要性。透過影片內容,我們可以學習如何清晰地描述實體關係,並將複雜的資料結構轉化為易於管理的 Schema 形式。無論是初學者或有經驗的資料庫管理者,都能從中獲得實用的技巧和知識。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
對於程式卡頓的問題,如何分析程式碼占用多少記憶體,如何釋放或改寫,可以先用python內建的tracemalloc模組來追蹤 Python 分配的記憶體區塊。 本文將介紹最簡單的用法,來分析一段程式碼占用了多少記憶體。 結果呈現 印出當前使用的記憶體,與峰值記憶體使用量。 程式範例 i
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
此篇文章連結 RAM 與 C語言陣列的關係並提供陣列與for-loop 使用的相關教學 前半段為基本電腦觀念、後半段為實作能力的教學
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
電腦有很多零件,有CPU、主機板(MB)、記憶體(Memory)... 今天我想分享,我這次組電腦的過程,還有一些好用的技巧,希望能幫助到大家,組出心中的完美電腦!
儲存庫 (Repository) 是檔案(File)的儲存區域。 在版本控制中,儲存庫是包含所有檔案的資料夾[1]。 每次改動檔案,你都可以選擇要不要儲存。 而那些有被處存的改動,就被稱為「提交 Commit」[2]。 而當一個儲存庫有多個開發者(Developer)在貢獻,
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
對於程式卡頓的問題,如何分析程式碼占用多少記憶體,如何釋放或改寫,可以先用python內建的tracemalloc模組來追蹤 Python 分配的記憶體區塊。 本文將介紹最簡單的用法,來分析一段程式碼占用了多少記憶體。 結果呈現 印出當前使用的記憶體,與峰值記憶體使用量。 程式範例 i
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
此篇文章連結 RAM 與 C語言陣列的關係並提供陣列與for-loop 使用的相關教學 前半段為基本電腦觀念、後半段為實作能力的教學
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
電腦有很多零件,有CPU、主機板(MB)、記憶體(Memory)... 今天我想分享,我這次組電腦的過程,還有一些好用的技巧,希望能幫助到大家,組出心中的完美電腦!
儲存庫 (Repository) 是檔案(File)的儲存區域。 在版本控制中,儲存庫是包含所有檔案的資料夾[1]。 每次改動檔案,你都可以選擇要不要儲存。 而那些有被處存的改動,就被稱為「提交 Commit」[2]。 而當一個儲存庫有多個開發者(Developer)在貢獻,
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)