TOSHIBA 微控制器基礎 介紹 - CPU 內核與整體配置 (1)

內核是一顆MCU中的主處理單元(也可以說是MCU的CPU),內核基本決定了一顆MCU半數以上的技術指標,因此對CPU內核進行配置就成為應用MCU的最關鍵步驟。
今天我們就以東芝的TLCS-870/C1內核作為示例,帶大家共同學習一下CPU整體配置的基本知識。

首先我們來認識一下微控制器的各個基本功能,如下圖所示,CPU具有用於存放微控制器中各種資料和程式的存儲電路以及用於執行計算的運算電路。
其中各個部分功能如下。

                                                       
                                            (圖片來源:作者 東芝半導體,網址:https://mp.weixin.qq.com/s/dWItFHtZZNBZIWVQnOfBpA)


PSW
(程式狀態字):用於保存操作結果和指令執行結果狀態的寄存器,由各種標誌組成。

通用寄存器:用於儲存資料的存儲電路,根據存儲電路的位置,通用寄存器分別稱為W、A、B、C、D、E、H、L等。
儲存計算結果的地方稱為累加器。在TLCS-870/C1中,W、A、B、C、D、E、H、L、IX和IY這十個寄存器具有累加器功能。

程式計數器(PC):用於儲存記憶體位址以讀取指令的存儲電路。

ALU(算數邏輯單位):用於執行計算的運算電路。

指令寄存器:用於暫時存儲讀取指令的存儲電路。

指令解碼器:對存儲在指令寄存器中的指令進行解密,並將其發送到控制單元。

中斷控制電路:用來控制中斷功能。

在這些功能中,程式計數器(PC)是管理下一步要執行指令存儲位址的寄存器。每次執行一條指令時,程式計數器指定的位址將進行+n處理(1字指令為+1,2字指令為+2)。
當在中斷指令等情況下,PC將存儲跳轉目標位址。CPU從PC讀取下一條要執行指令所在的位址,並依次執行。
例如,如果PC中存儲了0x8020(位址),則意味著CPU正在執行位址為0x8019的指令。
如果從PC讀取了位址0x8020,則CPU下一步要執行指令的位址0x8021將儲存在PC中。
這個過程可以參考圖2所示的流程示意。

                                                        


                                                       
                          (圖片來源:作者 東芝半導體,網址:https://mp.weixin.qq.com/s/dWItFHtZZNBZIWVQnOfBpA)

而通用寄存器可用於各種用途,例如累加器和資料處理。TLCS-870/C1有八個8位寄存器:W、A、B、C、D、E、H和L。
這八個寄存器也可以作為16位寄存器成對使用:WA、BC、DE和HL。這些組合只適用於相鄰的寄存器,例如,B和E、H和E等不能組合。
此外,TLCS-870/C1還有兩個16位通用寄存器IX和IY。這些寄存器主要作為訪問記憶體時的索引寄存器。

 

在CPU執行指令後,會有一個標誌指示記憶體的內容以及計算結果的狀態。PSW(程式狀態字)的作用就是收集這些標誌。
下圖是A寄存器(00111110)和B寄存器(11100000)相加的例子。計算結果(100011110)本應儲存在A寄存器中。
但是,由於A寄存器只能儲存8位元,所以將進位標設置為“1”,並將進位元標誌保留為發生進位元的資訊。
因此,在A寄存器中,存儲不包括最高有效位元1的(00011110)作為計算結果。
例如,如果計算結果是(100000000),則在進位元標誌中設置1,(00000000)儲存在A寄存器中,所以在零標誌中設置1。

                                                     
                               (圖片來源:作者 東芝半導體,網址:https://mp.weixin.qq.com/s/dWItFHtZZNBZIWVQnOfBpA)

此篇我們跟大家一起瞭解了微控制器的CPU部分功能單元和基本指令執行的知識,下一篇我們將帶大家一起認識另一個CPU配置的關鍵環節“中斷處理”。

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能

參考來源

TOSHIBA: https://mp.weixin.qq.com/s/dWItFHtZZNBZIWVQnOfBpA