計算機組成基礎(1)--數字邏輯層


計算機體系結構的學習,對做嵌入式開發很有作用,它可以讓你層次化理解你所用的開發板的相關細節。本文介紹計算機體系結構中的最底層——數字邏輯層。

數字邏輯層是純硬件實現層,學習本文也可爲後續學習硬件-模電相關知識鞏固基礎。

本文分析過程完全參考《計算機組成-結構化方法》,時間充裕的讀者推薦閱讀原文。此書行文邏輯是從最基礎的數電概念出發,一步一步搭建複雜系統,本文主要分析這種思路。很多數電的基礎概念不會過多闡述。

1、門與布爾代數

本節讀者要能回答以下問題:

  1. 基本的邏輯門有哪些?簡述工作機理?爲什麼它們是最基本的?
  2. 如何利用布爾函數進行組合邏輯電路的結構化設計過程?

邏輯門

邏輯門就是用高低電平表示0、1兩個邏輯值的電路,最簡答的三個門電路如下:(工作機理略,自行閱讀基本的模電知識)
在這裏插入圖片描述
由這幾個基本邏輯門可以組合成更多形態的邏輯門,例如多輸入與非/或非門、與/非門。

布爾代數

描述邏輯門輸入、輸出之間的函數,有真值表與布爾函數兩種表示方法。由布爾代數設計相應組合邏輯電路的結構化方法如下
在這裏插入圖片描述
這種結構化設計方法的好處是快、缺點是存在冗餘設計。減少冗餘設計的手段是化簡布爾代數(利用卡諾圖化簡,本文不涉及),但這會破壞結構化設計的思想。

2、基本數字邏輯電路

本節讀者要能回答以下問題:

  1. 多路選擇器?譯碼器?比較器?移位器?加法器?
  2. 算術邏輯單元的組成?

多路選擇器

在這裏插入圖片描述從兩個角度認識多路選擇器:

  1. 將ABC看成使能端,激活某一個輸入端信號傳輸至輸出端
  2. 將D0-D7看成使能端,實現不同ABC輸入信號的組合,從這個角度,8路選擇器可以實現任意三輸入的布爾函數

譯碼器

在這裏插入圖片描述輸入量的任意布爾組合只有一個輸出迴路會被激活。n位地址線可以譯碼出2n個地址。

比較器

在這裏插入圖片描述

移位器

在這裏插入圖片描述如何構成兩位移位器:

  1. 一級結構,則改動輸出線的連接
  2. 二級結構,再縱向串入一個1位移位器

如何構成任意位移位器,例如8位任意移位

  1. 串聯8個移位器可以麼?只能實現右移/左移8、6、4、2、0位,並且數據會丟失
  2. 一種不夠精巧的設計,1-8位的都設計出來,然後通過譯碼器選擇哪個工作。

加法器

在這裏插入圖片描述
在這裏插入圖片描述1位半加器、全加器的電路圖如上,如何組成多位加法器呢,例如16位加法器?

  1. 縱向並連16個全加器,缺點很明顯,高位的加法計算受到低位的進位信號影響,速度受限。(行波進位加法器)
  2. 低八位用一串加法器計算,高八位根據進位信號的不同有兩串加法器同時計算,再根據第八位計算出來的進位結果,選擇合適的高八位進位結果,這樣速度大大加快。(進位選擇加法器)

算術邏輯部件(ALU)

在這裏插入圖片描述將上文各電路組合起來,形成了上圖所示的1位算術邏輯單元,它可以根據使能信號(控制字節)選擇不同的計算功能,輸出相應的輸出結果。

時鐘

延時環節結構是怎麼樣的:兩個非門就構成了一個延時環節
在這裏插入圖片描述

3、內存

本節讀者要能回答以下問題:

  1. 鎖存器?觸發器?寄存器?
  2. 如何構成內存?內存芯片的結構?RAM和ROM的區別?

鎖存器

  • SR鎖存器
    鎖存器,顧名思義鎖存住信息,在新的輸入信號進入之前,將以前的信號鎖存住。
    在這裏插入圖片描述
  • 時鐘SR鎖存器
    一個實際點的鎖存器,只有在有時鐘信號的時候,才能對輸入信號進行鎖存。
    在這裏插入圖片描述
  • 時鐘D鎖存器
    SR鎖存器如果SR輸入端同時爲1,會造成競爭風險,要避免這種情況出現
    在這裏插入圖片描述

觸發器

觸發器和鎖存器的區別如下:觸發器用的是邊沿觸發、鎖存器用的是電平觸發。實現邊沿觸發的方式是在時鐘信號的上升沿/下降沿產生一個很短的脈衝
在這裏插入圖片描述由脈衝發生器可以構成觸發器,D觸發器如下所示:
在這裏插入圖片描述總結D觸發器、鎖存器的符號
在這裏插入圖片描述

寄存器

多個觸發器組合在一起構成寄存器,8位寄存器電路結構如下:
在這裏插入圖片描述

內存組成

對寄存器加上地址的概念構成內存
在這裏插入圖片描述

內存芯片

4M位內存的兩種組織方式如下所示:

  1. 第一種與上文描述一致,512K個地址,每個地址對應一個8位的寄存器。
  2. 第二種爲尋兩次地址,先從2048個行地址選出,再從2048個列地址選出,定位到一個一位寄存器。
    在這裏插入圖片描述

RAM和ROM

RAM可分爲靜態RAM和動態RAM。

  • 靜態RAM用的是類似前文介紹的D觸發器的電路,只要不掉電數據可以一直保存。SRAM訪問速度很快,一般用作高速緩存
  • 動態RAM用二極管、電容組成存儲單元,由於電荷會泄露,DRAM每一位需要每隔幾十毫秒刷新一次,但由於容量大、存儲密度高,一般用作主存。

RAM不是唯一的內存芯片,在嵌入式應用中,要求內存中的程序和數據在斷電情況下也能保存,這種需求導致了ROM的發展。EPROM、EEPROM、FLASH

4、CPU芯片

在這裏插入圖片描述

  • 總線控制信號:CPU用這些信號控制別的部件
  • 中斷信號:由外設請求CPU響應
  • 總線仲裁信號:防止多外設訪問總線,造成衝突

5、總線

RS232/485、CAN、SPI、IIC、UART、PCIe,瞭解相關協議

6、多內存時地址映射問題

一個完整的系統有多個存儲單元,每個存儲單元都有一套地址,怎麼把它們的地址統一起來呢

  • 地址總線多擴幾條作爲多個芯片的片選信號即可 。
  • 同時把IO設備也看成內存一部分(內存映射輸入/輸出
    在這裏插入圖片描述

兩種片選方式:

  • 本模塊數據線以外的全部線作爲片選信號(全地址譯碼)
  • 統計所有模塊個數,按照譯碼器的思想選擇最少的總線根數作爲片選信號(部分地址譯碼)

部分地址譯碼意味着多個虛擬地址對應了實際地址,原因很好理解:沒有用到的非片選非地址線的0、1狀態不影響片選效果。這會大量佔用內存空間,應該避免使用。
在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章