衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

組合電路和時序電路的講解

電子設計 ? 作者:電子設計 ? 2018-09-25 09:50 ? 次閱讀

組合電路和時序電路是計算機原理的基礎課,組合電路描述的是單一的函數功能,函數輸出只與當前的函數輸入相關;時序電路則引入了時間維度,時序電路在通電的情況下,能夠保持狀態,電路的輸出不僅與當前的輸入有關,而且與前一時刻的電路狀態相關,如我們個人PC中的內存和CPU中的寄存器,均為時序電路。

說了這么多,我們學習的組合電路和時序電路在計算機中又是怎么一回事呢?為了便于理解,下面以一個大家都能接受的C語言程序開始,從上層向下層開始解釋。

void main(){

int a = 3, b = 5;

int sum = a + b;

}

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

#下面的每條匯編代碼對應一個二進制

addi $t0, 0, 3 # a = 0+3, a保存在$t0寄存器中, 對應的二進制代碼為:0010 00** **** **** **** **** **** ****(這里的星號*表示二進制,這里暫時不關心)

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

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

到這里,大家一定還在疑惑,不是說要翻譯成二進制代碼嗎?怎么是MIPS匯編語言?對,就是匯編語言,這個匯編語言中的每一條指令就對應一條二進制代碼,匯編的方式更容易讓人理解。

現在我們得到了計算機可以理解的MIPS指令(可以想象成可執行程序)了,接下來的問題是如何執行MIPS指令。

要執行程序,首先必須將可執行程序文件(從外設)加載到內存。可執行文件加載到內存時,操作系統會為每個可執行程序在內存中分配四個區:

1 代碼區。也就是前面的到的匯編代碼所對應的二進制碼

2 全局數據區。全局變量,靜態變量放在這個區

3 堆區。表示在程序執行過程中,動態申請的空間在這個區,如C語言中的malloc, free操作均是針對此區中的對象執行申請或釋放操作

4 棧區。函數運行時,局部變量的保存區域。

我們重點關注代碼區和棧區,初始時,其分布如下圖所示:

代碼區-1.png

其中PC(Program Counter)是程序計數器(是CPU中的一個寄存器,具有數據存儲功能),即用來指示下一個即將執行的指令的地址,本例中,進入main函數后,即將執行的第一條指令是a = 3,其地址為:0X FF FF FF 00, 因此PC指向其對應的匯編代碼的地址。

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

當a = 0執行完畢后,PC執行操作:PC = PC + 4,PC指向0X FF FF FF 04,即b = 5的指令的地址。此時,棧區的狀態為:

棧區-1.png

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

棧區-2.png

然后,CPU根據PC的的值,從指定地址0X FF FF FF 08處獲取指令,然后解析指令,并執行指令(即執行sum=a+b)。當sum=a+b執行完畢后,PC執行操作:PC = PC + 4,PC指向0X FF FF FF 12(因為,指令已經執行完畢,這里應該提示要從main函數返回)。此時,棧區的狀態為:

棧區-3.png

至此為止,main函數內部的流程基本上陳述完了(關于函數間調用,相對復雜,計算機組成中會詳細講解),但如何實現這些步驟呢,其中的關鍵問題包括如下:

問題:

1、知道內存地址,如何定位到那個地址???答案:地址譯碼器

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7536

    瀏覽量

    88638
  • 時序電路
    +關注

    關注

    1

    文章

    114

    瀏覽量

    21742
  • 組合電路
    +關注

    關注

    0

    文章

    11

    瀏覽量

    6713
收藏 人收藏

    評論

    相關推薦

    數字電路時序電路

    在《數字電路之如雷貫耳的“邏輯電路”》、《數字電路之數字集成電路IC》之后,本文是數字電路入門3,將帶來「
    發表于 08-01 10:58 ?1.9w次閱讀
    數字<b class='flag-5'>電路</b>之<b class='flag-5'>時序電路</b>

    時序電路的分析與設計方法

    邏輯電路分為組合邏輯電路時序邏輯電路。第四章已經學習了組合邏輯
    發表于 08-23 10:28

    什么是時序電路

    什么是時序電路時序電路核心部件觸發器的工作原理
    發表于 03-04 06:32

    PLD練習2(時序電路)

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

    同步時序電路

    同步時序電路 4.2.1 同步時序電路的結構和代數法描述
    發表于 01-12 13:31 ?5327次閱讀
    同步<b class='flag-5'>時序電路</b>

    什么是時序電路

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

    鋯石FPGA A4_Nano開發板視頻:時序電路的分析與設計

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

    鋯石FPGA A4_Nano開發板視頻:時序電路知識復習

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

    時序電路基本介紹

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

    基本邏輯電路時序電路組合電路設計

    從今天開始新的一章-Circuits,包括基本邏輯電路時序電路組合電路等。
    的頭像 發表于 10-10 15:39 ?1387次閱讀

    什么是時序電路

    那么,如何才能將過去的輸入狀態反映到現在的輸出上呢?「時序電路」到底需要些什么呢?人類總是根據過去的經驗,決定現在的行動,這時我們需要的就是—記憶。同樣,「時序電路」也需要這樣的功能。這種能夠實現人類記憶功能的元器件就是觸發器。
    的頭像 發表于 03-24 10:48 ?1309次閱讀
    什么是<b class='flag-5'>時序電路</b>?

    什么是同步時序電路和異步時序電路,同步和異步電路的區別?

    同步和異步時序電路都是使用反饋來產生下一代輸出的時序電路。根據這種反饋的類型,可以區分這兩種電路時序電路的輸出取決于當前和過去的輸入。時序電路
    的頭像 發表于 03-25 17:29 ?2.6w次閱讀
    什么是同步<b class='flag-5'>時序電路</b>和異步<b class='flag-5'>時序電路</b>,同步和異步<b class='flag-5'>電路</b>的區別?

    時序電路包括兩種類型 時序電路必然存在狀態循環對不對

    時序電路是由觸發器等時序元件組成的數字電路,用于處理時序信號,實現時序邏輯功能。根據時序元件的類
    的頭像 發表于 02-06 11:22 ?1642次閱讀

    時序電路的分類 時序電路的基本單元電路有哪些

    時序電路是一種能夠按照特定的順序進行操作的電路。它以時鐘信號為基準,根據輸入信號的狀態和過去的狀態來確定輸出信號的狀態。時序電路廣泛應用于計算機、通信系統、數字信號處理等領域。根據不同的分類標準
    的頭像 發表于 02-06 11:25 ?2903次閱讀

    時序電路基本原理是什么 時序電路由什么組成

    時序電路基本原理是指電路中的輸出信號與輸入信號的時間相關性。簡單來說,就是電路的輸出信號要依賴于其輸入信號的順序和時間間隔。 時序電路由時鐘信號、觸發器和
    的頭像 發表于 02-06 11:30 ?2193次閱讀
    现场百家乐官网的玩法技巧和规则 | 百家乐官网现金投注信誉平台| tt娱乐城注册| 哪家百家乐优惠最好且信誉不错| 百家乐有没有攻略| 土豪百家乐官网的玩法技巧和规则 | 百家乐代理每周返佣| 百家乐官网英皇娱乐| 百家乐官网和抽水官网| 实战百家乐官网博彩正网| 沾化县| 阿拉善右旗| 九龙县| 澳门足球博彩| 535棋牌游戏| 君豪棋牌怎么样| 尊爵线上娱乐| 板桥市| 皮山县| 乐九百家乐官网娱乐城| 百家乐官网太阳城线上| 澳门美高梅娱乐| 惠东县| 澳门百家乐官网心得玩博| 同乐城百家乐官网现金网| 澳门百家乐官网真人斗地主 | 百家乐官网鞋业| 最好百家乐官网的玩法技巧和规则 | 百家乐最全打法| 浩博百家乐娱乐城| 百家乐韩泰阁| 百家乐那里信誉好| 真百家乐游戏| 大发888网页多少| 188比分| 溆浦县| 百家乐官网龙虎桌布| 克拉克百家乐官网的玩法技巧和规则| 百家乐官网平注常赢玩法更| 百家乐三珠连跳打法| 百家乐讲谈|