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

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

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

組合電路和時(shí)序電路的講解

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-09-25 09:50 ? 次閱讀

組合電路和時(shí)序電路是計(jì)算機(jī)原理的基礎(chǔ)課,組合電路描述的是單一的函數(shù)功能,函數(shù)輸出只與當(dāng)前的函數(shù)輸入相關(guān);時(shí)序電路則引入了時(shí)間維度,時(shí)序電路在通電的情況下,能夠保持狀態(tài),電路的輸出不僅與當(dāng)前的輸入有關(guān),而且與前一時(shí)刻的電路狀態(tài)相關(guān),如我們個(gè)人PC中的內(nèi)存和CPU中的寄存器,均為時(shí)序電路。

說(shuō)了這么多,我們學(xué)習(xí)的組合電路和時(shí)序電路在計(jì)算機(jī)中又是怎么一回事呢?為了便于理解,下面以一個(gè)大家都能接受的C語(yǔ)言程序開(kāi)始,從上層向下層開(kāi)始解釋。

void main(){

int a = 3, b = 5;

int sum = a + b;

}

這個(gè)例子大家都能明白,main函數(shù)要做的事情就是實(shí)現(xiàn)兩個(gè)數(shù)的加法操作。這是我們?nèi)祟?lèi)的思維方式,但是計(jì)算機(jī)并不認(rèn)識(shí),如何讓計(jì)算機(jī)理解呢?于是,我們需要將上面這個(gè)程序翻譯成機(jī)器能理解的模樣,這時(shí)候就需要借助編譯器(如常見(jiàn)的gcc、msc等)將上面的程序翻譯成MIPS指令(不同的CPU有不同的指令集,包括X86指令集、MIPS指令集、Sparc指令集等,我們?cè)谶@里用MIPS指令集,咱們的龍芯也是采用MIPS指令集),如下所示:

#下面的每條匯編代碼對(duì)應(yīng)一個(gè)二進(jìn)制

addi $t0, 0, 3 # a = 0+3, a保存在$t0寄存器中, 對(duì)應(yīng)的二進(jìn)制代碼為:0010 00** **** **** **** **** **** ****(這里的星號(hào)*表示二進(jìn)制,這里暫時(shí)不關(guān)心)

addi $t1, 0, 5 # b = 0+5, b保存在$t1寄存器中

addi $t2, $t1, $t0 # sum = a + b, sum保存在$t2寄存器中

到這里,大家一定還在疑惑,不是說(shuō)要翻譯成二進(jìn)制代碼嗎?怎么是MIPS匯編語(yǔ)言?對(duì),就是匯編語(yǔ)言,這個(gè)匯編語(yǔ)言中的每一條指令就對(duì)應(yīng)一條二進(jìn)制代碼,匯編的方式更容易讓人理解。

現(xiàn)在我們得到了計(jì)算機(jī)可以理解的MIPS指令(可以想象成可執(zhí)行程序)了,接下來(lái)的問(wèn)題是如何執(zhí)行MIPS指令。

要執(zhí)行程序,首先必須將可執(zhí)行程序文件(從外設(shè))加載到內(nèi)存。可執(zhí)行文件加載到內(nèi)存時(shí),操作系統(tǒng)會(huì)為每個(gè)可執(zhí)行程序在內(nèi)存中分配四個(gè)區(qū):

1 代碼區(qū)。也就是前面的到的匯編代碼所對(duì)應(yīng)的二進(jìn)制碼

2 全局?jǐn)?shù)據(jù)區(qū)。全局變量,靜態(tài)變量放在這個(gè)區(qū)

3 堆區(qū)。表示在程序執(zhí)行過(guò)程中,動(dòng)態(tài)申請(qǐng)的空間在這個(gè)區(qū),如C語(yǔ)言中的malloc, free操作均是針對(duì)此區(qū)中的對(duì)象執(zhí)行申請(qǐng)或釋放操作

4 棧區(qū)。函數(shù)運(yùn)行時(shí),局部變量的保存區(qū)域。

我們重點(diǎn)關(guān)注代碼區(qū)和棧區(qū),初始時(shí),其分布如下圖所示:

代碼區(qū)-1.png

其中PC(Program Counter)是程序計(jì)數(shù)器(是CPU中的一個(gè)寄存器,具有數(shù)據(jù)存儲(chǔ)功能),即用來(lái)指示下一個(gè)即將執(zhí)行的指令的地址,本例中,進(jìn)入main函數(shù)后,即將執(zhí)行的第一條指令是a = 3,其地址為:0X FF FF FF 00, 因此PC指向其對(duì)應(yīng)的匯編代碼的地址。

CPU根據(jù)PC的的值,從指定地址0X FF FF FF 00處獲取指令,然后解析指令,并執(zhí)行指令(即執(zhí)行a=3)。

當(dāng)a = 0執(zhí)行完畢后,PC執(zhí)行操作:PC = PC + 4,PC指向0X FF FF FF 04,即b = 5的指令的地址。此時(shí),棧區(qū)的狀態(tài)為:

棧區(qū)-1.png

接著,CPU根據(jù)PC的的值,從指定地址0X FF FF FF 04處獲取指令,然后解析指令,并執(zhí)行指令(即執(zhí)行b=5)。當(dāng)b=5執(zhí)行完畢后,PC執(zhí)行操作:PC = PC + 4,PC指向0X FF FF FF 08,即sum=a+b的指令的地址。此時(shí),棧區(qū)的狀態(tài)為:

棧區(qū)-2.png

然后,CPU根據(jù)PC的的值,從指定地址0X FF FF FF 08處獲取指令,然后解析指令,并執(zhí)行指令(即執(zhí)行sum=a+b)。當(dāng)sum=a+b執(zhí)行完畢后,PC執(zhí)行操作:PC = PC + 4,PC指向0X FF FF FF 12(因?yàn)?,指令已?jīng)執(zhí)行完畢,這里應(yīng)該提示要從main函數(shù)返回)。此時(shí),棧區(qū)的狀態(tài)為:

棧區(qū)-3.png

至此為止,main函數(shù)內(nèi)部的流程基本上陳述完了(關(guān)于函數(shù)間調(diào)用,相對(duì)復(fù)雜,計(jì)算機(jī)組成中會(huì)詳細(xì)講解),但如何實(shí)現(xiàn)這些步驟呢,其中的關(guān)鍵問(wèn)題包括如下:

問(wèn)題:

1、知道內(nèi)存地址,如何定位到那個(gè)地址???答案:地址譯碼器

2、獲取到a=3對(duì)應(yīng)的指令后,如何知道是做a=0+3的操作???答案:解析指令,指令譯碼器

3、PC寄存器如何保存值?如何做加4操作?答案:計(jì)數(shù)器(寄存器講解)

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

    關(guān)注

    19

    文章

    7168

    瀏覽量

    87147
  • 時(shí)序電路
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    21652
  • 組合電路
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    6683
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)字電路時(shí)序電路

    在《數(shù)字電路之如雷貫耳的“邏輯電路”》、《數(shù)字電路之?dāng)?shù)字集成電路IC》之后,本文是數(shù)字電路入門(mén)3,將帶來(lái)「
    發(fā)表于 08-01 10:58 ?1.9w次閱讀
    數(shù)字<b class='flag-5'>電路</b>之<b class='flag-5'>時(shí)序電路</b>

    時(shí)序電路的分析與設(shè)計(jì)方法

    邏輯電路分為組合邏輯電路時(shí)序邏輯電路。第四章已經(jīng)學(xué)習(xí)了組合邏輯
    發(fā)表于 08-23 10:28

    什么是時(shí)序電路

    什么是時(shí)序電路?時(shí)序電路核心部件觸發(fā)器的工作原理
    發(fā)表于 03-04 06:32

    PLD練習(xí)2(時(shí)序電路)

    PLD練習(xí)2(時(shí)序電路)
    發(fā)表于 05-26 00:14 ?20次下載

    同步時(shí)序電路

    同步時(shí)序電路 4.2.1 同步時(shí)序電路的結(jié)構(gòu)和代數(shù)法描述
    發(fā)表于 01-12 13:31 ?5100次閱讀
    同步<b class='flag-5'>時(shí)序電路</b>

    什么是時(shí)序電路

    什么是時(shí)序電路 任意時(shí)刻的穩(wěn)定輸出,不僅與該時(shí)刻的輸入有關(guān),而且還
    發(fā)表于 01-12 13:23 ?8387次閱讀
    什么是<b class='flag-5'>時(shí)序電路</b>

    鋯石FPGA A4_Nano開(kāi)發(fā)板視頻:時(shí)序電路的分析與設(shè)計(jì)

    時(shí)序電路,是由最基本的邏輯門(mén)電路加上反饋邏輯回路(輸出到輸入)或器件組合而成的電路,與組合電路
    的頭像 發(fā)表于 09-27 07:10 ?2322次閱讀
    鋯石FPGA A4_Nano開(kāi)發(fā)板視頻:<b class='flag-5'>時(shí)序電路</b>的分析與設(shè)計(jì)

    鋯石FPGA A4_Nano開(kāi)發(fā)板視頻:時(shí)序電路知識(shí)復(fù)習(xí)

    時(shí)序電路,是由最基本的邏輯門(mén)電路加上反饋邏輯回路(輸出到輸入)或器件組合而成的電路,與組合電路
    的頭像 發(fā)表于 09-23 07:08 ?2217次閱讀
    鋯石FPGA A4_Nano開(kāi)發(fā)板視頻:<b class='flag-5'>時(shí)序電路</b>知識(shí)復(fù)習(xí)

    時(shí)序電路基本介紹

    組合邏輯和時(shí)序邏輯電路是數(shù)字系統(tǒng)設(shè)計(jì)的奠基石,其中組合電路包括多路復(fù)用器、解復(fù)用器、編碼器、解碼器等,而
    的頭像 發(fā)表于 09-12 16:44 ?8825次閱讀
    <b class='flag-5'>時(shí)序電路</b>基本介紹

    基本邏輯電路、時(shí)序電路組合電路設(shè)計(jì)

    從今天開(kāi)始新的一章-Circuits,包括基本邏輯電路時(shí)序電路、組合電路等。
    的頭像 發(fā)表于 10-10 15:39 ?1143次閱讀

    什么是時(shí)序電路?

    那么,如何才能將過(guò)去的輸入狀態(tài)反映到現(xiàn)在的輸出上呢?「時(shí)序電路」到底需要些什么呢?人類(lèi)總是根據(jù)過(guò)去的經(jīng)驗(yàn),決定現(xiàn)在的行動(dòng),這時(shí)我們需要的就是—記憶。同樣,「時(shí)序電路」也需要這樣的功能。這種能夠?qū)崿F(xiàn)人類(lèi)記憶功能的元器件就是觸發(fā)器。
    的頭像 發(fā)表于 03-24 10:48 ?1094次閱讀
    什么是<b class='flag-5'>時(shí)序電路</b>?

    什么是同步時(shí)序電路和異步時(shí)序電路,同步和異步電路的區(qū)別?

    同步和異步時(shí)序電路都是使用反饋來(lái)產(chǎn)生下一代輸出的時(shí)序電路。根據(jù)這種反饋的類(lèi)型,可以區(qū)分這兩種電路時(shí)序電路的輸出取決于當(dāng)前和過(guò)去的輸入。時(shí)序電路
    的頭像 發(fā)表于 03-25 17:29 ?2.3w次閱讀
    什么是同步<b class='flag-5'>時(shí)序電路</b>和異步<b class='flag-5'>時(shí)序電路</b>,同步和異步<b class='flag-5'>電路</b>的區(qū)別?

    時(shí)序電路包括兩種類(lèi)型 時(shí)序電路必然存在狀態(tài)循環(huán)對(duì)不對(duì)

    時(shí)序電路是由觸發(fā)器等時(shí)序元件組成的數(shù)字電路,用于處理時(shí)序信號(hào),實(shí)現(xiàn)時(shí)序邏輯功能。根據(jù)時(shí)序元件的類(lèi)
    的頭像 發(fā)表于 02-06 11:22 ?1025次閱讀

    時(shí)序電路的分類(lèi) 時(shí)序電路的基本單元電路有哪些

    時(shí)序電路是一種能夠按照特定的順序進(jìn)行操作的電路。它以時(shí)鐘信號(hào)為基準(zhǔn),根據(jù)輸入信號(hào)的狀態(tài)和過(guò)去的狀態(tài)來(lái)確定輸出信號(hào)的狀態(tài)。時(shí)序電路廣泛應(yīng)用于計(jì)算機(jī)、通信系統(tǒng)、數(shù)字信號(hào)處理等領(lǐng)域。根據(jù)不同的分類(lèi)標(biāo)準(zhǔn)
    的頭像 發(fā)表于 02-06 11:25 ?2089次閱讀

    時(shí)序電路基本原理是什么 時(shí)序電路由什么組成

    時(shí)序電路基本原理是指電路中的輸出信號(hào)與輸入信號(hào)的時(shí)間相關(guān)性。簡(jiǎn)單來(lái)說(shuō),就是電路的輸出信號(hào)要依賴(lài)于其輸入信號(hào)的順序和時(shí)間間隔。 時(shí)序電路由時(shí)鐘信號(hào)、觸發(fā)器和
    的頭像 發(fā)表于 02-06 11:30 ?1664次閱讀