跳到主要内容

Temp

CPU​

功能​

  1. 程序控制
  2. 操作控制
  3. 时间控制
  4. 数据控制

运算器​

  1. Memory→valuelDRMemory\xrightarrow{valuel}DR
  2. DR→valuelACDR\xrightarrow{valuel}AC
  3. Memory→valuerDRMemory\xrightarrow{valuer}DR
  4. DR→valuerALUDR\xrightarrow{valuer}ALU
  5. ALU→resultPSW→resultDR→resultAC50if DR→resultMemoryALU\xrightarrow{result}PSW\xrightarrow{result}DR\xrightarrow{result}AC\\ \hphantom{50}\text{if }DR\xrightarrow{result}Memory

功能​

  1. 算术运算
  2. 逻辑运算

控制器​

  1. Memory→instructionDR→instructionIRMemory\xrightarrow{instruction}DR\xrightarrow{instruction}IR

功能​

  1. 保证程序正确执行
  2. 处理异常

码制​

若机器字长n=8n=8,最高位为符号位,其余位为数值位,若所表示的真值超过字长称作溢出。

定点整数范围:

(-127,+127)

定点小数范围:

(-0.9921875,+0.9921875)

DecDec原Bin
-1272551 1111111
-01281 0000000
+000 0000000
1271270 1111111

定点整数范围:

(-127,+127)

定点小数范围:

(-0.9921875,+0.9921875)

DecDec反Bin
-1271281 0000000
-02551 1111111
+000 0000000
1271270 1111111

定点整数范围:

(-128,+127)

定点小数范围:

(-1,+0.9921875)

DecDec补Bin
-1281281 0000000
-0256100000000
+000 0000000
1271270 1111111

定点整数范围:

(-128,+127)

定点小数范围:

(-1,+0.9921875)

DecDec补Bin
-12800 0000000
-0256110000000
+001 0000000
1271271 1111111

码制转换​

Bin→Dec:    Bn−1...B0 Dec=∑i=0n−1Bi∗2iHex→Dec:    Hn−1...H0 Dec=∑i=0(n−1)Hi∗16iBin \to Dec:\\ \space\space\space\space B_{n-1}...B_0 \space Dec=\sum_{i=0}^{n-1}B_i*2^i \\ Hex \to Dec:\\ \space\space\space\space H_{n-1}...H_0 \space Dec=\sum_{i=0}^(n-1)H_i*16^i

浮点数​

阶符阶码数符尾数

一般表示​

M=2E∗F;F=(b0b1...bn−1)Et=E−offsetM=2^{E}*F; F=(b_0b_1...b_{n-1}) \\ E_t=E-offset

阶码真值Et;阶码E;尾数F\text{阶码真值}E_t \text{;}\text{阶码}E \text{;} \text{尾数}F

IEEE754​

M=(−1)S2E∗FM=(-1)^{S}2^{E}*F

if: E=0    →Et=1−offset    →Ft∈[0,2n−1]    ∴M∈[0,1)if: E=max⁡    →Et=0    ∴M∈{−∞,+∞,NaN}if: 0<E<max⁡    →Et=E−offset    →Ft∈[20,2n+1−1]    ∴M∈[−(F2n+1−1),−1]∪[1,F2n+1−1]\text{if: } E=0 \\ \space\space\space\space \to E_t=1-offset \\ \space\space\space\space \to F_t\in[0,2^{n}-1] \\ \space\space\space\space \therefore M\in[0,1) \\ \text{if: } E=\max \\ \space\space\space\space \to E_t=0 \\ \space\space\space\space \therefore M\in\lbrace-\infty,+\infty,NaN\rbrace \\ \text{if: } 0<E<\max \\ \space\space\space\space \to E_t=E-offset \\ \space\space\space\space \to F_t\in[2^0,2^{n+1}-1] \\ \space\space\space\space \therefore M\in[-(F^{2^{n+1}-1}),-1]\cup[1,F^{2^{n+1}-1}]

数符(−1)S;阶码E;尾数F\text{数符}(-1)^{S} \text{;} \text{阶码}E \text{;} \text{尾数}F

阶码真值Et;E→移码;F→原码\text{阶码真值}E_t ;E\to\text{移码} ; F\to\text{原码}

  • 3种形式
    • 单精度
      • M=s⏞1eeeeeeee⏞8pppppppppp...pppppppppp⏞23⏟32M=\underbrace{\overbrace{s}^{1} \overbrace{eeeeeeee}^{8} \overbrace{pppppppppp...pppppppppp}^{23}}_{32}
    • 双精度
      • M=s⏞1eeeeeeeeeee⏞11pppppppppp......pppppppppp⏞52⏟64M=\underbrace{\overbrace{s}^{1} \overbrace{eeeeeeeeeee}^{11} \overbrace{pppppppppp......pppppppppp}^{52}}_{64}
    • 扩充精度\临时浮点数
      • M=s⏞1eeeeeeeeeeeeeee⏞15pppppppppp.........pppppppppp⏞64⏟80M=\underbrace{\overbrace{s}^{1} \overbrace{eeeeeeeeeeeeeee}^{15} \overbrace{pppppppppp.........pppppppppp}^{64}}_{80}
  • 3种情况
    • E全为0 表示非规格化的值
    • E全为1 表示特殊值
    • E为1,0混合 表示规格化的值

运算​

X=2i∗M;Y=2J∗Mi<jX=2^i*M;Y=2^J*M \\ i<j

K=∣i−j∣i=i+KMx±MyK=|i-j| \\ i=i+K \\ M_x \pm M_y

校验码​

奇偶校验码​

Parity Codes通过在编码中增加一位,使编码中的1的个数变为奇数或偶数。 这种校验方式只能检测到有奇数位发生变化的情况,且不能知道错误的是哪位。

海明码​

Hamming Code在数据位间插入k个校验位, 这种校验码可以知道出错的是那一位。 Data(Dn−1...D0);Parity(Pk...P1)∃k<n  ⟹  2k−1≥n+k→Hamming(Hn+k,Hn+k−1...H1)Data(D_{n-1}...D_0);Parity(P_k...P_1) \\ \exist k<n \implies 2^k-1 \ge n+k \\ \to Hamming(H_{n+k},H_{n+k-1}...H_1)

校验位​

∀Pi∈Data,i=2i−1if n=8    k=4H12H11H10H9H8H7H6H5H4H3H2H1D7D6D5D4P4D3D2D1P3D0P2P1∀Hi∈Hammingif Hi∉Parity    Hi=Hj+...+Hk&j+...+k=i&{Hj,...,Hk}∈Parity    Hi→Pj...Pkif Hj∈Parity    Hj=∑d∈Pjd0⊕d1⊕...\forall P_i \in Data, i=2^{i-1} \\ if \space n=8 \\ \space\space\space\space k=4 \\ \begin{matrix} H_{12} & H_{11} & H_{10} & H_9 & H_8 & H_7 & H_6 & H_5 & H_4 & H_3 & H_2 & H_1 \\ D_7 & D_6 & D_5 & D_4 & P_4 & D_3 & D_2 & D_1 & P_3 & D_0 & P_2 & P_1 \end{matrix} \\ \forall H_i \in Hamming \\ if \space H_i \notin Parity \\ \space\space\space\space H_i=H_j+...+H_k \And j+...+k=i \And \lbrace H_j,...,H_k \rbrace \in Parity \\ \space\space\space\space H_i \to P_j...P_k \\ if \space H_j \in Parity \\ \space\space\space\space H_j = \sum_{d \in P_j} d_0 \oplus d_1 \oplus ...

Hj偶校验;奇校验∼HjH_j \text{偶校验};\text{奇校验}\thicksim H_j

校验​

∀G, i≤kGi=Pi⊕∑d∈Pid0⊕d1⊕...if (G1...Gk)=0    →Passedif (G1...Gk)>0    H(Gk...G1)=^H(Gk...G1)    Passed\forall G,\space i \le k G_i=P_i \oplus \sum_{d \in P_i} d_0 \oplus d_1 \oplus ... \\ if \space (G_1...G_k)=0 \\ \space\space\space\space \to Passed \\ if \space (G_1...G_k)>0 \\ \space\space\space\space H_{(G_k...G_1)}= \text{\textasciicircum} H_{(G_k...G_1)} \\ \space\space\space\space Passed

循环冗余校验码​

Cyclic Redundancy Check