目錄
- 前言
- 資料暫存器(DR)
- 地址暫存器(AR)
- 程式狀態暫存器(PSW)
- 累加暫存器(AC)
- 乘商暫存器(MQ)
- 程式計數器(PC)
- 指令暫存器(IR)
- MAR、MDR
- 小結
作者:小牛呼嚕嚕 | https://xiaoniuhululu.com
計算機內功、JAVA底層、面試相關資料等更多精彩文章在公眾號「小牛呼嚕嚕 」
前言
現代CPU內部除了運算器和控制器,還有一個常見的組件: 暫存器,是CPU內部用來存放資料的一些小型的存盤區域,用來暫時存放參與運算的資料以及運算結果,
在https://mp.weixin.qq.com/s/KecubYROQztHvwPicJb9wQ這篇文章中,我們了解了計算機各個硬體讀寫速度的差異,其中從存盤器速度、容量和價格的關系金字塔圖發現:

最上層的暫存器速度最快,容量最小,價格也最昂貴
下面我們來看看幾個常見暫存器:
資料暫存器(DR)
資料暫存器(Data Register,DR)又稱資料緩沖暫存器,資料暫存器用于存放運算元,其位數應滿足多數資料型別的數值范圍,其主要功能是作為CPU和主存、外設之間資訊傳輸的中轉站,用以彌補CPU和主存、外設之間操作速度上的差異,
資料暫存器用來暫時存放由主存盤器讀出的一條指令或一個資料字;反之,當向主存存入一條指令或一個資料字時,也將它們暫時存放在資料暫存器中,
資料暫存器的作用是 :
- 作為CPU和主存、外圍設備之間資訊傳送的中轉站;
- 彌補CPU和主存、外圍設備之間在操作速度上的差異;
- 在單累加器結構的運算器中,資料暫存器還可兼作運算元暫存器,
地址暫存器(AR)
地址暫存器(Address Register,AR)用來保存CPU當前所訪問的主存單元的地址,其本身可以具有通用性,也可用于特殊的尋址方式,如用于基址尋址的段指標(存放基地址)、用于變址尋址的變址暫存器和用于堆疊尋址的堆疊指標,地址暫存器的位數必須足夠長,以滿足最大的地址范圍,
由于在主存和CPU之間存在操作速度上的差異,所以必須使用地址暫存器來暫時保存主存的地址資訊,直到主存的存取操作完成為止,
程式狀態暫存器(PSW)
程式狀態暫存器(PSW),用來保存各類運算指令或測驗指令的結果的各種狀態資訊
除此之外,程式狀態字暫存器還用來保存中斷和系統作業狀態等資訊,以便CPU和系統及時了解機器運行狀態和程式運行狀態,
程式狀態暫存器 是構成 運算器的重要組成部分
累加暫存器(AC)
累加暫存器通常簡稱累加器(AC),是一個通用暫存器,
累加器的功能是:當運算器的算術邏輯單元ALU執行算識訓邏輯運算時,為ALU提供一個作業區,可以為ALU暫時保存一個運算元或運算結果,顯然,運算器中至少要有一個累加暫存器,
乘商暫存器(MQ)
在運算器中,乘商暫存器主要負責資料的乘法與除法運算并可保存運算結果,是運算器的基本組成部分,是運算器三個基本暫存器之一,
程式計數器(PC)
程式計數器(PC),具有寄存資訊和計數兩種功能,一般用來存放下一條指令在主存盤器中的地址,
在程式執行之前,首先必須將程式的首地址,即程式第一條指令所在主存單元的地址送入PC,因此PC的內容即是從主存提取的第一條指令的地址,
當執行指令時,CPU能自動遞增PC的內容,使其始終保存將要執行的下一條指令的主存地址,為取下一條指令做好準備,
但是,當遇到轉移指令時,下一條指令的地址將由轉移指令的地址碼欄位來指定,而不是像通常的那樣通過順序遞增PC的內容來取得,
指令暫存器(IR)
指令暫存器(Instruction Register,IR),用來保存當前欲執行的指令,
當執行一條指令時,首先把該指令從主存讀取到資料暫存器中,然后再傳送至指令暫存器,
指令包括操作碼和地址碼兩個欄位,為了執行指令,必須對操作碼進行測驗,識別出所要求的操作,指令譯碼器 就是完成這項作業的,指令譯碼器對指令暫存器的操作碼部分進行譯碼,以產生指令所要求操作的控制電位,并將其送到微操作控制線路上,在時序部件定時信號的作用下,產生具體的操作控制信號,
指令暫存器中操作碼欄位的輸出就是指令譯碼器的輸入,操作碼一經譯碼,即可向操作控制器發出具體操作的特定信號,
MAR、MDR
另外暫存器不只存在CPU中,存盤器中也存在暫存器,比如MAR、MDR
- MAR:存盤器地址暫存器,用于存放將被訪問的存盤單元的地址,作用和AR類似
- MDR:存盤器資料暫存器,用于存放欲存入存盤器中的資料或最近從存盤器中讀出的資料,作用和DR類似
其中MAR位數反映儲存單元的個數,即最多能表示多少個不同的狀態;MDR位數=儲存字長=每個儲存單元的大小
小結
將上面各個暫存器組合起來,我們可以畫出一幅計算機更細化的組成圖:

當存盤器開始讀操作的時候,存盤器將指定地址單元內的指令讀至MDR,再由MDR送至IR,
IR將指令中的操作碼送到CU中,用來分析指令并發出各種微操作命令序列,再加指令中地址碼送到MAR,用來去運算元
在CPU內部必須給ALU提供資料,因此ALU必須可直接訪問MDR,ALU的外圍還可以有另一些暫存器AC、MQ、X,這些暫存器用于ALU的輸入、輸出以及用于和MDR及用戶可見暫存器交換資料,
在CPU的控制和狀態暫存器中,還有用來存放程式狀態字PSW的暫存器,該暫存器用來存放條件碼和其他狀態資訊,在具有中斷系統的機器中還有中斷標記暫存器等等,
參考資料:
計算機組成原理(第2版)-唐朔飛
https://blog.csdn.net/weibo1230123/article/details/83106141
本篇文章到這里就結束啦,很感謝你能看到最后,如果覺得文章對你有幫助,別忘記關注我!更多精彩的文章

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/523978.html
標籤:其他
上一篇:設定新路線時路線未清除
下一篇:聊聊計算機中的暫存器
