c++rs法计算hurst指数_计算机组成原理与接口技术
計算機組成原理與接口技術
——基于MIPS架構
@TOC
為什么要寫這個筆記?
課后整理筆記是一個復習的過程。上學期寫了一個數字電路的筆記,感覺這門課一下子得心應手起來。這學期繼續這個做法,選幾門覺得難的課程整理下筆記
寫給讀者
感謝你閱讀本筆記,本文不允許任何形式的轉載。有任何問題可以與我聯系,我的郵箱是wnn2000@hust.edu.cn
第一章 計算機基礎
1. 計算機結構
計算機系統由軟件和硬件組成,這門課主要研究硬件
計算機硬件包括CPU、存儲器、I/O設備等
CPU
CPU由ALU、控制器、寄存器組成ALU是運算單元控制器負責控制信號
CPU位數 = CPU中寄存器的位數 = CPU能夠一次并行處理的數據寬度 = 數據總線寬度
例如64位計算機,其CPU中寄存器的位數為64。它一次能并行處理64位的數據。它的數據總線寬度為64
存儲器
存儲器就是內存,由存儲矩陣構成,最小存儲單位為Byte,即8個bit
總線
總線是指計算機組件間規范化的交換數據的方式
總線分為數據總線、控制總線、地址總線數據總線是用來傳輸數據的,是雙向的控制總線是控制數據傳輸方向的信號線,是雙向的地址總線是傳輸數據位置的,是單向的
2. 計算機工作原理
基本術語
指令:計算機能識別并執行的基本操作命令
指令由操作數和操作碼組成。操作碼決定要完成什么操作,操作數指參加運算的數據及其所在的地址
指令以二進制的形式存在內存中
指令集:計算機全部指令的集合
程序:完成既定任務的指令序列
工作過程
1.讀取指令2.指令譯碼
3.獲取數據
4.執行運算
5.存儲結果
3. 計算機結構模型
馮諾依曼結構
計算機由控制器、運算器、存儲器、輸入設備、輸出設備五大部分組成
程序和數據以二進制不加區分存在存儲器(數據類型是由程序決定的)
計算機只有一個CPU,一個存儲器,一套總線。CPU的速度越來越快,但是由于只有一個存儲器和一套總線,使得讀數據、讀指令、存放結果不能并行
哈佛結構
為了解決以上問題,提出哈佛結構。提供兩個存儲器分別存放指令和數據,同時提供兩套總線
代價是增加了復雜度
改進的哈佛結構
提供兩個存儲器,但只有一套總線
混合結構
現在最常見的是混合結構
4. 計算機中的信息表示
計算機是數字電路,存儲的信息都是二進制信息
數制轉換
這部分網絡資料很多,就不記了
整數的編碼
原碼、反碼、補碼參考:https://www.jianshu.com/p/36ec7a047f29
這里提一下模的概念,模是符號位的進位位的權值。例如有8位二進制,模是第9位的權值,即28=256負數的補碼為模減去該數的絕對值,這是負數補碼的定義,可以越過原碼和反碼事實上,有些負數的原碼和反碼不存在,不能通過反碼+1的方法計算補碼。比如計算-128的8位補碼,-128的8位反碼不存在,那么-128的補碼為:256-128=128,即1000 0000機器碼的概念:機器碼包括原碼、反碼、補碼和移碼
小數的編碼
定點數
不需要保存小數點的位置,所有位置都用來存儲數字
包括定點整數、定點純小數、定點帶小數
浮點數
遵循IEEE 754編碼,分為單精度和雙精度。單精度有32位,雙精度有64位。浮點數從高位到低位分別是符號域、指數域和尾數域。其中符號域為了正負數的統一,需要加上偏移量
具體過程如圖所示,首先將實數進行二進制小數規范化,再填入對應的域,注意指數域需要加上偏差
以下是特殊情況和單精度規范化浮點數的表示范圍
5. 計算機的運算基礎
整數運算
無符號數運算
直接算溢出:當最高為向更高位有進位(或借位)時產生溢出
產生的進位或借位由狀態寄存器的CF位保存
有符號數運算
加減統一為補碼運算溢出:最高位進位狀態⊕次高位進位狀態=1,則溢出。溢出只可能發生在同符號的數運算之間
最高位和次高位,一個有進位一個沒有進位,則他們的狀態異或得1,則結果就有溢出
浮點數運算(難點)
1.檢測0操作數,如果有一個是0就不用算了2.指數對齊。小的指數向大的對齊。原因是:小的向大的對齊時,指數小的那個數的小數點左移,其尾數域右端的數字被移出,誤差小;而反過來誤差較大
3.尾數求和。都用補碼運算
4.結果規范化
例題:計算1.5 - 27.5(單精度)
首先把兩個浮點數表示出來
把1.5的小數點左移,與-27.5的補碼相加。得到的結果依然是補碼,再變回原碼
已經是規范化的小數了,本題結束
6.計算機中的信息存儲
當數據存在連續的存儲空間時,其地址是就是存儲空間的首地址
大字節序:高位存入低地址,低位存入高地址(MIPS采用大字節序)
小字節序:高位存入高地址,低位存入低地址
第二章 MIPS匯編語言
1.計算機語言
高級語言:獨立于硬件,描述算法
匯編語言:使用助記符號和地址符號來表示指令的語言,又稱符號語言
機器語言:依賴硬件,是二進制代碼,計算機可以直接執行
匯編:把匯編語言翻譯成機器語言的過程
匯編程序:實現匯編過程的軟件
匯編語言程序:用戶用匯編語言編寫的程序
2.計算機指令架構
CISC(復雜指令集計算機)
RISC(精簡指令集計算機)
兩種架構的對比
可以看出CISC的指令種類較多,長度不固定
而RISC只有三類指令,長度固定。注意:RISC只有裝載和存儲可以訪問存儲器,其他指令都在寄存器之間進行
二者各用用處,這門課我們學習的MIPS架構采用精簡指令集(RISC)
3.MIPS匯編指令概述
MIPS指令結構
MIPS匯編指令基本結構如下圖
在下面這條示例指令中,add是操作碼,決定這條指令進行加法操作;a, b, c是三個操作數,是操作的對象,其中a是目的操作數b, c是源操作數
add a, b, cMIPS操作數類型
操作數只有三種,分別是寄存器、存儲器和立即數寄存器操作數:是CPU內部的寄存器,表示方法是美元符加上寄存器的名稱或編號,如$s0,$s7,$3存儲器操作數:是內部存儲器,在MIPS架構下僅用于裝載(Load)和存儲(Store)指令。表示方法是常數加上括號寄存器的形式,其中的常數是偏移量,如4($s3)立即數操作數:就是常數,如4,8
MIPS指令類型
指令中的u表示操作數據是無符號數。這就解釋了為什么之前說內存中的數據類型是程序決定的
指令中的i表示這條指令的操作數含有立即數
數據傳送指令中的w h b分別表示這條指令針對的數據是字、半字、字節
這里將MIPS指令按照功能分類,之后我們還會按照編碼方式分類
4.MIPS指令操作數
寄存器操作數
MIPS有32個通用寄存器(0-0?31),具體內容如下圖
沒列出的$26,$27寄存器保留給異常處理函數使用
存儲器操作數
MIPS數據存儲要求邊界對齊。半字存儲地址需要為偶數;字的存儲地址需要為4的整數倍。MIPS指令是32位的,即一個字,所以指令的地址也是4的整數倍
表示方法僅有一種,是常數加上括號寄存器的形式,其中的常數是偏移量,如4($s3)
例如,A中存儲int,A保存在$s8中,請表示A[8]
答案為:32($8)。因為每一個int占據4個字節,偏移量為32
立即數操作數
是指出現在指令中的常數,如下列指令中的40
addi $s1,$s2,40立即數可以有10進制或者16進制表達方式。后者需要有0x作為前綴
5.MIPS指令編碼
我們知道MIPS的指令編碼都是定長的,那么如何用二進制編碼指令,即如何表示指令的操作碼和操作數?
回答這個問題前,我們將指令分為R型,I型,J型三種指令。實際上,我們分類的標準是這三種指令有不同的編碼形式
R型指令
I型指令
J型指令
小結
三種指令的編碼形式如下圖
6.MIPS常用匯編指令
數據傳送指令
裝載(Load)
指令格式如下
lx $Rt, Imm($Rs)顯然,裝載指令是I型指令。指令中的lx,Rt,Rs,Imm分別與I型指令的各個域對應lx并不代表真的有lx這個指令,在實際代碼中,要被替換成lw,lh,lhu,lb,lbu等lw指令將一個字的數據拷貝到寄存器。注意MIPS寄存器的左邊儲存數據的高位,存儲器的低地址存放數據的高位lh,lhu拷貝半字到寄存器。由于寄存器是32位,半字只有16位,所以二者需要分別進行有符號擴展和無符號擴展
有符號擴展是在高位補充符號位無符號擴展是在高位補充0
例如,16位立即數0x8000,進行有符號擴展和無符號擴展得到如下結果
有符號擴展:0xFFFF8000
無符號擴展:0x00008000
lb,lbu拷貝字節到寄存器。同樣要進行擴展,方式與上述一致
以上都是規則字的裝載,下面來講非規則字的裝載。這種情況發生在地址不是4的整數倍的時候(針對MIPS架構大字節序)lwl是左邊界對齊非規則字訪問。復制存儲器中從高位到低位的數據,粘貼在寄存器的左邊lwr是右邊界對齊非規則字訪問。復制存儲器中從低位到高位的數據,粘貼在寄存器的右邊
舉個lwl的例子。lwr與例子相反,就不舉了
從高字節的0到低字節的1,依次復制到寄存器的左邊。結果如下圖
非規則字的裝載可以和非規則字的存儲配合使用,實現小字節序
存儲(Store)
指令格式如下
sx $Rt, Imm($Rs) 存儲指令和裝載指令一樣,都是I型指令sx在實際代碼中為sw,sh,sbsw直接將寄存器中的一個字存到存儲器,注意地址必須是4的整數倍sh存半字,而且是低半字。因為高位是拓展而來的,不會影響數據的值sb存字節,而且是低字節
存儲指令中也有非規則字存儲指令swl是將寄存器中從左邊界開始的值,以從高位到低位的方式存到存儲器swr是將寄存器中從右邊界開始的值,以從低位到高位的方式存到存儲器swl與lwl過程相反,swr與lwr過程相反
舉個swl的例子
得到結果如下
一句話概括非規則裝載存儲:裝載是中間裝到邊界,存儲是邊界存到中間
特殊數據傳輸指令
四條都是R型指令。$Rd,$Rs代表域
代碼如下
lui $Rt,Imm 這是I型指令,功能是把16位立即數賦給寄存器的高16位,低16位補0
代碼的u不是無符號數的意思,而是高位(up)的意思
如何給寄存器賦32位值?需要用到后續課程的邏輯運算指令
算術運算指令
加減運算
先來看4條R型加減運算指令
add $Rd,$Rs,$Rt # 有OF作為溢出標志位 addu $Rd,$Rs,$Rt sub $Rd,$Rs,$Rt # 有OF作為溢出標志位,運算結果是Rs的值-Rt的值 subu $Rd,$Rs,$Rt還有2條I型加減運算指令
addi $Rt,$Rs,Imm #Imm是16位的,高16位補充符號位 addiu $Rt,$Rs,Imm #Imm是16位的,高16位充0立即數參與的時候就沒有減法了,因為只要加上一個負數就可以實現減法
乘法運算
mult $Rs,$Rt multu $Rs,$Rt 乘法結果的符號由參與運算的數的符號決定,所以要區分有符號和無符號(乘法的實現比較復雜,這只是簡單理解,想了解更多請看乘法電路)
乘法的結果保存在特殊寄存器中。高32位存在hi寄存器,低32位保存在lo寄存器中
想得到結果需要用到前文的mfhi,mflo等
除法運算
與乘法類似
div $Rs,$Rt divu $Rs,$Rt進行$Rs/$Rt的運算,結果保存在特殊寄存器中。余數存在hi寄存器,商存在lo寄存器中
位運算指令
位邏輯運算指令
先講與、或、或非、異或四類運算,這里都是位邏輯運算
邏輯運算的具體功能請參考《數字電路》課程可以通過或非0,異或1,實現非運算
移位指令
還有一類移位指令,分為邏輯移位和算術移位
# 邏輯移位指令,移入0,都是R型指令,Imm存在移位域 sll $Rd,$Rt,Imm #邏輯左移Imm srl $Rd,$Rt,Imm #邏輯右移Imm sllv $Rd,$Rs,$Rt #邏輯左移,移動的位數是$Rt的值 srlv $Rd,$Rs,$Rt #邏輯右移,移動的位數是$Rt的值# 算術移位指令,移入符號位,都是R型指令,Imm存在移位域 # 沒有算術左移,因為左移會丟失符號位 sra $Rd,$Rt,Imm #算術右移Imm srav $Rd,$Rs,$Rt #算術右移,移動的次數是$Rt的值程序控制指令
在學這部分知識前,我們先要復習以下幾個知識:
1.MIPS指令都是32位的,即4個字節,即1個字2.MIPS架構的存儲器要求邊界對齊,字的存放的首地址必須是4的整數倍,也就是地址的最低兩位是0
3.指令存放在存儲器中,且是順序存儲。在程序中相鄰的指令在內存中也相鄰
4.PC寄存器指向下一條指令的地址
5.在無跳轉指令時,程序依靠PC寄存器依次+4來順序執行指令;實現跳轉的關鍵是改變PC寄存器的值
相等條件控制指令
有beq和bne兩條指令,都是I型指令
beq $Rs,$Rt,label # $Rs,$Rt相等時跳轉到label bne $Rs,$Rt,label # $Rs,$Rt不相等時跳轉到labellabel是程序前的標號,代表指令的地址。實際上是一個常數,存在Imm域label實際上保存的是相對地址,即label-PC再右移兩位的低16位。結果是一個符號數,正數往后跳,負數往前跳
原因是地址的最低兩位是0,沒必要存。剩下的從低到高存16位。可見這兩條指令的跳轉有范圍限制
無條件控制指令
只有一條j指令
j label # 無條件跳轉到labelJ型指令的Imm域是26位的。實際上,保存的是label的去除高4位和低2位的中間26位j指令的跳轉也是有限的,跳轉到的指令的地址高4位必須和PC一樣
大小條件控制指令
與0比較
滿足條件時,跳轉到label
與非0比較
滿足條件時,會給第一個寄存器操作數置1
再結合beq和bne指令,實現跳轉
7.子程序原理
子程序調用和返回
子程序調用的過程實際上是main函數向sub函數跳轉的過程
調用子程序時,采用jal指令,這是一條J型指令
格式如下,label為標號
使用jal指令時,會將PC寄存器中的值暫存到$ra寄存器
函數調用結束后,使用jr指令就可跳轉回主程序,這是R型指令,格式如下
調用子程序時,依次使用$a0-$a3寄存器保存入口參數。使用$v0-$v1寄存器保存返回值
棧
數據進出遵循先進后出原則
出棧:先取出數據,再改變棧頂指針
入棧:先改變棧頂指針,再存入數據$sp指示棧頂$fp指示當前子程序可操作的棧的棧頂
8.MIPS尋址原理
尋址是指處理器獲得數據和指令的存儲地址
操作數尋址:獲取操作數的方式
1.寄存器尋址。例如指令add $Rd,$Rs,$Rt,操作數在寄存器中2.基址尋址。例如指令lw $Rt,(Imm)$Rs,地址由基地址和偏移地址組成
3.立即尋址。例如指令addi $Rt,$Rs,Imm,操作數來自指令中的立即數
指令尋址:獲取下一條指令存儲地址的方式
1.寄存器間接尋址。例如指令jr $Rs,PC來自寄存器2.PC相對尋址。例如指令beq $Rs,$Rt,label,新PC的值和原PC的值相關
3.偽直接尋址。例如指令j label,新PC的值基本來自指令
9.編譯、匯編、鏈接、裝載
c語言程序經過編譯,成為匯編語言程序
匯編語言程序經過匯編,成為目標文件
目標文件經過鏈接,成為可執行文件
可執行文件裝載到內存中運行
10.偽指令、宏指令和系統功能調用
偽指令
宏指令
系統功能調用
系統功能調用由系統軟件提供,作用為屏蔽不同特定硬件的具體操作,作為硬件抽象層。
第三章 微處理器
數據通路和控制信號如圖所示
1.控制器
ALU控制信號
通過兩級譯碼,來確定ALU執行哪種運算。
如果是I型指令,操作碼就可以確定運算類型;如果是R型指令,操作碼譯碼后還需結合功能碼,進一步譯碼來確定運算類型
主控制器
以下是控制信號和它們的具體含義
RegDst控制寫寄存器的編號RegWr和MemWr是寄存器和存儲器的寫控制信號ALUSrc控制ALU的第二個數據源是立即數還是寄存器Mem2Reg控制寫入寄存器的數據的來源是存儲器還是ALU運算的輸出這些控制信號由指令的操作碼譯碼而來,如圖所示
以下是各條指令的各個控制信號的取值
2.現代微處理器新技術
流水線、超標量和多核
3.異常處理
被中斷時,進入中斷程序前需要保存PC的值。用棧或者特殊功能寄存器MIPS EPC
中斷技術一章中詳細學習
第四章 存儲系統
1.分級存儲結構
時間局部性:剛剛訪問的存儲區域又馬上訪問空間局部性:訪問剛剛訪問的存儲區域的相鄰區域
存儲器的發展基本跟不上CPU的腳步。速度快的存儲器價格太貴,便宜的存儲器速度太慢
計算機內采用分級的存儲結構提高效率,如下圖
2.高速緩存
如果將經常使用的數據或指令裝載到高速緩存中,就可以提高速度
cache的容量小于內存,不可能把所有的數據都裝進cache。故需要建立一種映射機制,也就是說cache數據和內存數據的對應關系
cache映射機制
這里有三種映射機制,分別是直接映射(一路組相聯)、全相聯映射、組相聯映射
參考:https://blog.csdn.net/l_nan/article/details/78883996
cache寫策略
CPU寫緩存時,有以下幾種方式
1.透寫:既寫緩存,也寫內存
2.回寫:只寫緩存,當需替換時再寫入內存
3.配寫:寫內存后,再拷貝到緩存
4.不配寫:僅寫內存
1和3配合使用;2和4配合使用
3.虛擬存儲器
將外存當作內存使用
管理方式有分段管理和分頁管理
分段管理
從虛擬空間裝載一段數據到物理空間時,是連續裝載的,偏移地址是一樣的。因此要得到物理地址,只需要記錄段的首地址,即段地址。
保存段地址的方式有兩種:
1.用專用寄存器來保存。稱為實模式
2.用內存中的段地址描述符保存。稱為保護模式
以下是段地址描述符的結構
分頁管理
把內存和外存分為大小相同的頁,以頁為單位裝載
頁表存儲在內存中,頁表的索引是虛擬地址,值是物理地址
可以建立多級頁表,索引是虛擬地址的一部分,數據是下一級頁表的地址
TLB
把頁表存進高速緩存(全相聯映射),提高查找的效率
第五章 總線
1.總線分類
按位置分
片內總線:微處理器內部的總線,如AXI總線系統總線:連接計算機系統各個模塊的總線,通常在服務器上使用局部總線:專門針對某些類型的設備設計的總線,如PCI總線、PCIE總線外部總線:連接外部設備的總線,或稱為外部接口,如USBUARTSATASPIIIC
按定時分
同步:SPIIIC異步:USBUARTSATA半同步:AXIPCI
按數據傳輸方式分
并行:片內總線、系統總線、局部總線一般是并行。如AXIPCI串行:目前外部總線一般采用串行。局部總線PCIE是串行
按是否復用方式分
復用:所有串行總線都是復用的。也有并行總線采用復用,如PCI專用:AXI總線
2.總線操作類型
寫操作:主設備傳到從設備讀操作:從設備傳到主設備
3.AXI總線
4.PCI總線
并行
5.外部總線
目前,外部總線一般都是串行總線
異步串行的外部總線USBUARTSATA的特點如下
同步串行的外部總線SPIIIC的特點如下
第六章 半導體存儲器接口
1.常見半導體存儲器
2.容量擴展
3.空間映射
4.多類型數據訪問
5.存儲控制器
第七章 IO接口
http://1.IO尋址
分為存儲器映像IO尋址和獨立IO尋址
前者將IO接口映射到邏輯存儲空間,相當于存儲器;后者訪問IO接口時需要提供獨立的控制信號,不占用邏輯存儲空間
前者主要用于嵌入式系統,后者主要用于PC機
http://2.IO讀寫操作函數
介紹Standalone BSP端口讀寫C語言函數
Xil_In8(addr) # 從addr讀入8位數據 Xil_In16(addr) # 從addr讀入16位數據 Xil_In32(addr) # 從addr讀入32位數據 Xil_Out8(addr,value) # 向addr輸出8位數據 Xil_Out16(addr,value) # 向addr輸出16位數據 Xil_Out32(addr,value) # 向addr輸出32位數據3.常見IO設備接口設計
輸入設備與總線相連接時需要緩沖器,如74**244
輸出設備與總線相連接時需要鎖存器,如74**373
開關和LED燈
這部分比較簡單,就不記了
矩陣鍵盤
電路及控制程序如下
要識別一個按鍵,首先要判斷是否有按鍵按下。如果沒有按鍵按下,程序將在第一個while處死循環。當有按鍵按下時,ABCD引線會出現低電平。接下來逐列掃描,確定掃描碼
七段數碼管
四個七段數碼管接口電路如下
輸出位碼,即可選中對應的數碼管;然后再輸出段碼,即可點亮該數碼管
顯示5678的程序如下
LED點陣
行輸出1,列輸出0時,對應位置LED被點亮。接口電路和控制程序如下
4.GPIO
接口電路和寄存器含義如下
例題:設計控制程序,將16位開關實時反應到16位LED上,且16位開關表示的二進制數以十六進制形式顯示在4位七段數碼管上
第八章 中斷技術
1.中斷控制器
中斷控制器應該具有以下部分
1.中斷狀態寄存器:用來指示是哪一個設備產生中斷
2.中斷響應寄存器:響應后,用來清除中斷狀態
3.中斷使能寄存器:使能中斷
電路如下
2.AXI INTC中斷控制器
結構和寄存器含義如下圖
ISR為中斷狀態寄存器,某位為1時,表示對應位產生了中斷IER為中斷使能寄存器,某位為1時,使能對應位中斷輸入IAR為中斷響應寄存器,某位為1時,清除對應位中斷IMR為工作模式寄存器,某位為0時,標志工作在普通中斷模式;為1時,標志工作在快速中斷模式IVR保存最高優先級中斷源的編碼,intr0的優先級最高,intr31優先級最低。如果intr2產生中斷,而intr0和intr1沒有中斷,則IVR的值為0x2MER寄存器僅兩位。D1=1表示使能硬件中斷。D0=1表示允許Irq產生中斷請求ILR寄存器保存阻止的最高優先級中斷源的編碼。如果ILR=0x3,表示阻止intr3到intr31產生中斷IVAR寄存器共有32個寄存器,每個寄存器4B,保存各個中斷源的中斷向量
3.INTC編程控制
4.c語言中斷方式程序設計
microblaze_enable_interrupts();//微處理器開中斷 microblaze_disable_interrupts();//微處理器關中斷 void name() __attribute__((interrupt_handler));//注冊總中斷服務程序,用于普通中斷 void name() __attribute__((fast_interrupt));//用于快速中斷5.普通中斷方式應用
鴿了
6.快速中斷方式應用
鴿了
7.GPIO中斷
結構
相關寄存器
初始化程序(普通中斷)
清除中斷狀態。寫GPIO的IPISR寄存器和INTC的IAR寄存器
開放中斷。寫GPIO的GIER和IPIER寄存器開放GPIO中斷;寫INTC的IER,MER和IMR寄存器,開放INTC中斷并設定工作模式;開放微處理器的中斷
注冊中斷服務程序
配置GPIO的工作方式。寫GPIO_TRI寄存器
中斷服務程序(普通中斷)
1.識別中斷源,執行對應的中斷事務處理函數
2.返回前需要清除GPIO和INTC的中斷狀態
8.AXI Timer定時器
以下是定時器的結構和寄存器
以下是TCSR的各位的含義
定時器的計時模式過程如下
9.SPI接口
SPI是同步串行總線接口MOSI傳輸方向為主設備到從設備;MISO傳輸方向為從設備到主設備
選中從設備時,從設備選擇信號ss為低電平CPOL表示從設備空閑時的始終電平CPHA表示時鐘相位,0為0度,1為180度。第一個時鐘邊沿為相位0度,第二個時鐘邊沿為相位180度。
第九章 DMA技術
1.DMA傳輸系統構成
2.DMA傳輸分類
IO到存儲器存儲器到IO存儲器到存儲器(DMAC內部有FIFO存儲器)
3.DMA傳輸模式
單字節模式:DMA傳一個字節釋放總線塊傳輸模式:DMA傳輸塊時一直占用總線請求傳輸模式:外設和DMA中存在DREQ請求和DACK響應。當外設保持DREQ請求時,一直占用總線,否則釋放級聯模式:主DMA僅僅負責DMA請求,從DMA工作在前三種模式中的一種
總結
以上是生活随笔為你收集整理的c++rs法计算hurst指数_计算机组成原理与接口技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1610):hook使用
- 下一篇: 基于QT的音乐播放器