0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用ALU,RAM,寄存器打造一個CPU 1

jf_78858299 ? 來源:北洋洋洋 ? 作者:北洋 ? 2023-01-30 15:56 ? 次閱讀

CPU簡介

「計算機(jī)的心臟是中央處理單元,簡稱“CPU”」 。這篇文章就利用前幾篇文章中提到過的ALU,RAM,寄存器組件做一個CPU。

CPU負(fù)責(zé)運行程序, 「程序是由一個個操作組成的,這些操作叫做指令」 ,因為他們“指示”計算機(jī)要做什么.

CPU能做什么

「數(shù)學(xué)計算指令」 :讓ALU去做加減乘除或者更復(fù)雜的數(shù)學(xué)計算

「內(nèi)存指令」 :CPU會和內(nèi)存(RAM)通信,然后操作內(nèi)存進(jìn)行讀寫值

組裝CPU零件

16位內(nèi)存條

首先把上一篇文章的RAM拿出來(只有16個地址意味著是每個內(nèi)存是16位的,每個地址又可以存8位可以得出是8個內(nèi)存組裝在一起的;因此這個RAM可以看到是 「由8個16位內(nèi)存組成」 )。

「內(nèi)存條的尋址空間意味著每塊內(nèi)存可以可以存儲的位數(shù),內(nèi)存條中的每個地址可以存多少位又是由多少個內(nèi)存組成。」

可以看到每個地址都存儲著8位,在后面講解指令表的時候要注意這八位數(shù)字的表示方式。「前四位代表操作碼,后四位代表的是地址OR寄存器」

四個八位的寄存器

回顧一下:

上一篇文章中講到八位的寄存器無非是把八個鎖存器鏈接在一起,8個數(shù)據(jù)輸入線,8個數(shù)據(jù)輸出線,還有一個鏈接著所有鎖存器中的允許寫入線。總共17條線

寄存器的作用:用來 「臨時存儲數(shù)據(jù)」 和操作數(shù)據(jù)

指令表

數(shù)據(jù)是以二進(jìn)制值存儲在內(nèi)存里,程序也可以在內(nèi)存里。

指令: 「所有CPU支持的指令都會分配一個指令I(lǐng)D」 也就是表中的第一個INSTRUCTION中的LOAD_A

描述:就是描述這個指令I(lǐng)D是用來做什么操作的

「4-BIT OPCODE」 (操作碼):「這個指令要做的操作,用4位的操作碼表示」

「ADDRESS OR REGISTERS (地址OR 寄存器):也是4位,表示的是 「操作碼需要使用的地址或者寄存器」 (比如加載一個內(nèi)存里的值放入寄存器中就需要指定打開的是哪個內(nèi)存地址)

「在之前我們拿出RAM,可以看到每個地址都存儲著8位數(shù)字,前四位代表的就是操作碼,后四位代表的是地址OR寄存器」 「.」

「之后我們會模擬CPU的執(zhí)行過程,要執(zhí)行怎樣的操作以及怎么樣執(zhí)行就是通過RAM中存儲的這八位數(shù)字來運行的?!?/strong>

兩個八位的寄存器

「指令地址寄存器」 :追蹤程序運行到哪里了。用于通過地址**「定位到內(nèi)存條中的哪條指令,也就是存儲當(dāng)前指令的內(nèi)存地址ADDRESS」**

「指令寄存器」 :用于 「存儲當(dāng)前運行的指令DATA」 。通過指令地址寄存器讀取RAM中指定ADDRESS的DATA然后并寫入這個寄存器

開始運行

啟動計算機(jī)時,所有的寄存器都是0.

在RAM中放了一個程序(ADDRESS,DATA),現(xiàn)在就是要過一遍運行這個程序的過程

取指令階段

該階段負(fù)責(zé)拿到指令,即**「指令地址寄存器讀取RAM中對應(yīng)地址的值復(fù)制到指令寄存器」**

1.首先將 「指令地址寄存器連接到RAM」 中(ADDRESS INPUT),寄存器的初始值為0,因此會去讀取RAM中ADDRESS為0的DATA

2.「DATA會被復(fù)制到指令寄存器中,現(xiàn)在指令寄存器存儲了00101110這個指令」


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211797
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1368

    瀏覽量

    114705
  • ALU
    ALU
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    13101
收藏 人收藏

    評論

    相關(guān)推薦

    解析CPU中的寄存器

    8位寄存器在16位寄存器中,而16位寄存器在32位寄存器中。
    發(fā)表于 09-19 10:10 ?4145次閱讀

    淺析從寄存器到用戶態(tài)與內(nèi)核態(tài)

    寄存器CPU內(nèi)部重要的組成部分,寄存器內(nèi)部由N觸發(fā)組成,每個觸發(fā)可以保存
    的頭像 發(fā)表于 01-30 15:28 ?2708次閱讀

    閃存存儲寄存器嗎?_寄存器和存儲的區(qū)別

    閃存存儲寄存器嗎? 很明顯不是 ,屬于儲存,一個
    發(fā)表于 10-11 17:12 ?1.2w次閱讀

    8051單片機(jī)中的寄存器是算CPU還是RAM

    可以劃分CPURAM部分,但CPURAM有交叉的部分(比如寄存器組等) 4、CPU部分
    發(fā)表于 06-14 15:42 ?4041次閱讀

    關(guān)于Block RAM寄存器輸出

    關(guān)于Block RAM寄存器輸出,我們在《通過RTL改善時序的技巧之Block RAM的輸出》中介紹過。如果我們在時序報告中關(guān)鍵路徑上看到這樣條信息: 在第
    的頭像 發(fā)表于 03-26 15:50 ?1838次閱讀
    關(guān)于Block <b class='flag-5'>RAM</b>的<b class='flag-5'>寄存器</b>輸出

    GPIO寄存器

    每組IO口有10寄存器組成,如果芯片有GPIOA~GPIOI,9組那么共有90寄存器如果
    發(fā)表于 12-08 17:06 ?5次下載
    GPIO<b class='flag-5'>寄存器</b>

    如何在VHDL中實現(xiàn)簡單的寄存器

    寄存器是設(shè)備中用于存儲數(shù)據(jù)的常見電子元件。這些是最小的數(shù)據(jù)保存元素,用于存儲 CPU 正在處理的操作數(shù)或指令。有不同類型的寄存器,即指令寄存器、程序
    發(fā)表于 07-29 16:48 ?4656次閱讀
    如何在VHDL中實現(xiàn)<b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的<b class='flag-5'>寄存器</b>

    如何使用ALU,RAM,寄存器打造CPU 2

    CPU簡介 **「計算機(jī)的心臟是中央處理單元,簡稱“CPU”」** 。這篇文章就利用前幾篇文章中提到過的ALU,RAM,寄存器組件做
    的頭像 發(fā)表于 01-30 15:56 ?776次閱讀
    如何使用<b class='flag-5'>ALU</b>,<b class='flag-5'>RAM</b>,<b class='flag-5'>寄存器</b><b class='flag-5'>打造</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>CPU</b> 2

    如何使用ALU,RAM,寄存器打造CPU 3

    在指令表中我們看到ADD指令的后四位 **「寄存器 OR RAM地址列中,列出來的不是之前的RAM地址而是兩位的寄存器ID」** 。兩位可
    的頭像 發(fā)表于 01-30 16:01 ?1181次閱讀
    如何使用<b class='flag-5'>ALU</b>,<b class='flag-5'>RAM</b>,<b class='flag-5'>寄存器</b><b class='flag-5'>打造</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>CPU</b> 3

    cpu寄存器和存儲的區(qū)別

    cpu寄存器和存儲的區(qū)別 寄存器存在于CPU中,速度很快,數(shù)目有限;存儲是內(nèi)存,速度稍慢,但
    發(fā)表于 03-21 15:12 ?1450次閱讀

    計算機(jī)寄存器和存儲

    存儲,CPU都在片內(nèi),所以寄存器是片內(nèi)RAM
    發(fā)表于 03-21 15:22 ?2077次閱讀

    寄存器和存儲如何區(qū)分

    寄存器是計算機(jī)硬件中最快、最小、最常用的存儲。它是CPU內(nèi)部的存儲,通常作為指令和數(shù)據(jù)的存儲和暫存空間。在CPU中,
    的頭像 發(fā)表于 04-09 18:43 ?1.5w次閱讀

    用于RISC-V處理的三重模塊化冗余ALU寄存器文件的設(shè)計示

    用于RISC-V處理的三重模塊化冗余ALU寄存器文件的設(shè)計示例 演講ppt分享
    發(fā)表于 07-17 16:34 ?2次下載

    CPU的6主要寄存器

    CPU寄存器是中央處理內(nèi)的組成部分,是有限存貯容量的高速存貯部件。寄存器CPU內(nèi)部的元件,包括通用
    的頭像 發(fā)表于 02-03 15:15 ?4331次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機(jī)中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。
    的頭像 發(fā)表于 07-12 10:31 ?1381次閱讀