74漢明碼編解碼原則
⑴ 編碼理論的信源編碼
廣義的信源編碼包括模數轉換(即把模擬量變換成二進制的數字量)和數據壓縮(即對這些數字量進行編碼來降低數碼率)兩個方面。信源編碼的主要任務是壓縮數據。 它有四種基本方法:
①匹配編碼。這種方法是根據編碼對象的出現概率(概率分布),分別給予不同長短的代碼,出現概率越大,所給代碼長度越短。這里所謂匹配就是指代碼長度與概率分布相匹配。莫爾斯碼是一種匹配編碼。匹配編碼還常採用去相關性的方法進一步壓縮數據。
②變換編碼。這種方法是先對信號進行變換,從一種信號空間變換成另一種信號空間,然後針對變換後的信號進行編碼。變換編碼在話音和圖像編碼中有廣泛的應用。常用的變換編碼有預測編碼和函數編碼兩類。預測編碼是根據信號的一些已知情況來預測信號即將發生的變化。它不傳送信號的采樣值,而傳送信號的采樣值與預測值之差。預測編碼用在數字電話和數字電視中。函數變換最常用的是快速傅里葉變換 (FFT)、餘弦變換、沃爾什變換、哈爾變換和阿達馬變換等。通過變換可得到信號的頻譜特性,因而可根據頻譜特點來壓縮數碼。
③矢量編碼。這種方法是將可能傳輸的消息分類按地址存儲在接收端的電子計算機資料庫中,發送端只發送資料庫的地址,即可查出消息的內容,從而大大壓縮發送的數據。
④識別編碼。這種方法主要用於有標准形狀的文字、符號和數據的編碼。但話音也可以進行識別編碼。識別編碼的作用不僅限於壓縮數據,它在模式識別中也有廣泛的應用。 信道編碼的主要任務是為了區分通路和增加通信的可靠性。以區分通路為主要目的的編碼常採用正交碼。以增加通信可靠性為主要目的的編碼常採用糾錯碼。正交碼也具有很強的抗干擾能力。在信道編碼中也採用檢錯碼。
信源編碼器輸出 位碼元一組的碼。它們攜帶著信息,稱為信息元。這樣的信息元通過信道編碼器後,變換成 位碼元一組的碼字。信息元和碼字是一一對應的。 接收到錯誤的碼字後能在解碼時自動糾正錯誤的碼稱為糾錯碼。糾錯碼是一種重要的抗干擾碼,可增加通信的可靠性。糾錯碼是利用碼字中有規律的冗餘度,即利用冗餘度使碼字的碼元之間產生有規律的相關性,或使碼字與碼字之間產生有規律的相關性。通常把信息元中的碼元數與對應碼字的碼元數 的比值R稱為編碼效率,即R=/,碼字的冗餘度為1-R。
糾錯碼有兩類:分組碼和卷積碼。
分組碼
常記作(,)碼,其中是一個碼字的碼元數(即碼字長),是信息碼元數,-是監督碼元數。在一個碼字中,如果信息碼元安排在前位,監督碼元安排在後-位,這種碼稱為組織碼或系統碼。如果分組碼中任何兩個 比特的碼字進行模2相加(即不進位的普通二進制加法,模2加法記號是)可得到另一個碼字,這種碼稱為群碼。任何一致監督分組碼都是群碼。如果一個碼字經過循環以後必然是另一個碼字,這種碼稱為循環碼。循環碼是群碼的一個重要子集著名的BCH碼是一種循環群碼。能糾正突發錯誤的費爾碼是一種分組循環碼。漢明碼也是一種群碼。通常把兩個碼字之間不同碼元的數目稱為漢明距離。兩兩碼字之間漢明距離的最小值稱為最小漢明距離,它是漢明碼檢錯糾錯能力的重要測度漢明碼要糾正E個錯誤,它的最小漢明距離至少必須是2E+1;要發現最多E個錯誤,其最小漢明距離應為E+1。
卷積碼
如果特定的一致監督關系不是在一個碼字中實現,而是在個碼字中實現,這種碼稱為卷積碼。卷積碼可用移位寄存器來實現,這種卷積編碼器的輸出可看作是輸入信息碼元序列與編碼器響應函數的卷積。能糾正突發錯誤的哈格伯爾格碼也是一種卷積碼。在平穩高斯雜訊干擾的信道上採用序貫解碼方法的卷積碼有很好的性能,能用於衛星通信和深空通信。 為了防止竊譯而進行的再編碼稱為保密編碼。其目的是為了隱藏敏感的信息。它常採用替換或亂置或兩者兼有的方法。一個密碼體制通常包括兩個基本部分:加(解)密演算法和可以更換的控制演算法的密鑰。密碼根據它的結構分為序列密碼和分組密碼兩類。序列密碼是演算法在密鑰控制下產生的一種隨機序列,並逐位與明文混合而得到密文。其主要優點是不存在誤碼擴散,但對同步有較高的要求。它廣泛用於通信系統中。分組密碼是演算法在密鑰控制下對明文按組加密。這樣產生的密文位一般與相應的明文組和密鑰中的位有相互依賴性,因而能引起誤碼擴散。它多用於消息的確認和數字簽名中。
密碼學還研究通過破譯來截獲密文的方法。破譯方法有確定性分析法和統計性分析法兩類。確定性分析法是利用一個或幾個未知量來表示所期望的未知量從而破譯密文。統計分析法是利用存在於明文與密文或密鑰之間的統計關系破譯密文。
⑵ 編碼理論的編碼理論
研究信息傳輸過程中信號編碼規律的數學理論。編碼理論與資訊理論、數理統計、概率論、隨機過程、線性代數、近世代數、數論、有限幾何和組合分析等學科有密切關系,已成為應用數學的一個分支。編碼是指為了達到某種目的而對信號進行的一種變換。其逆變換稱為解碼或解碼。 根據編碼的目的不同,編碼理論有三個分支:
①信源編碼。對信源輸出的信號進行變換,包括連續信號的離散化,即將模擬信號通過采樣和量化變成數字信號,以及對數據進行壓縮,提高數字信號傳輸的有效性而進行的編碼。
②信道編碼。對信源編碼器輸出的信號進行再變換,包括區分通路、適應信道條件和提高通信可靠性而進行的編碼。
③保密編碼。對信道編碼器輸出的信號進行再變換,即為了使信息在傳輸過程中不易被人竊取而進行的編碼。編碼理論在數字化遙測遙控系統、電氣通信、數字通信、圖像通信、衛星通信、深空通信、計算技術、數據處理、圖像處理、自動控制、人工智慧和模式識別等方面都有廣泛的應用。 前向糾錯(英語:Forward error correction,縮寫FEC)是一種在單向通信系統中控制傳輸錯誤的技術,通過連同數據發送額外的信息進行錯誤恢復,以降低誤碼率(bit error rate,BER)。FEC又分為帶內FEC和帶外FEC。FEC的處理往往發生在早期階段處理後的數字信號是第一次收到。也就是說,糾錯電路往往是不可分區的一部分的模擬到數字的轉換過程中,還涉及數字調制解調,或線路編碼和解碼。
FEC是通過添加冗餘信息的傳輸採用預先確定的演算法。1949年漢明(Hamming)提出了可糾正單個隨機差錯的漢明碼。1960年Hoopueghem,Bose和Chaudhum發明了BCH碼,Reed與Solomon又提出 ReedSolomon(RS)編碼,糾錯能力很強,後來稱之為里德-所羅門誤碼校正編碼(The reed-solomon error correction code,即後來的附加的前向糾錯)。ITU-T G.975/G.709規定了「帶外FEC」是在SDH層下面增加一FEC層,專門處理FEC的問題。帶外FEC編碼冗餘度大,糾錯能力較強。FEC有別於ARQ,發現錯誤無須通知發送方重發。一旦系統丟失了原始的數據包,FEC機制可以以冗餘數據包加以補入。例如有一數據包為「10」,分成二個數據包,分別為「1」和「0」,有一冗餘數據包「0」,收到任意兩個數據包就能組裝出原始的包。但這些冗餘數據包也會產生額外負擔。 1843年美國著名畫家S.F.B.莫爾斯精心設計出莫爾斯碼,廣泛應用在電報通信中。莫爾斯碼使用三種不同的符號:點、劃和間隔,可看作是順序三進制碼。根據編碼理論可以證明,莫爾斯碼與理論上可達到的極限只差15%。但是直到20世紀30~40年代才開始形成編碼理論。1928年美國電信工程師H.奈奎斯特提出著名的采樣定理,為連續信號離散化奠定了基礎。1948年美國應用數學家C.E.香農在《通信中的數學理論》一文中提出信息熵的概念,為信源編碼奠定了理論基礎。1949年香農在《有雜訊時的通信》一文中提出了信道容量的概念和信道編碼定理,為信道編碼奠定了理論基礎。無噪信道編碼定理(又稱香農第一定理)指出,碼字的平均長度只能大於或等於信源的熵。有噪信道編碼定理(又稱香農第二定理)則是編碼存在定理。(見香農三大定理)它指出只要信息傳輸速率小於信道容量,就存在一類編碼,使信息傳輸的錯誤概率可以任意小。隨著計算技術和數字通信的發展,糾錯編碼和密碼學得到迅速的發展。
在信源編碼方面
1951年香農證明,當信源輸出有冗餘的消息時可通過編碼改變信源的輸出,使信息傳輸速率接近信道容量。1948年香農就提出能使信源與信道匹配的香農編碼。1949年美國麻省理工學院的R.M.費諾提出費諾編碼。1951年美國電信工程師D.A.哈夫曼提出更有效的哈夫曼編碼。此後又出現了傳真編碼、圖像編碼和話音編碼,對數據壓縮進行了深入的研究,解決了數字通信中提出的許多實際問題。
在糾錯編碼方面
1948年香農就提出一位糾錯碼(碼字長=7,信息碼元數=4)。1949年出現三位糾錯的格雷碼(碼字長=23,信息碼元數=12)。1950年美國數學家理查德·衛斯里·漢明發表論文《檢錯碼和糾錯碼》,提出著名的漢明碼,對糾錯編碼產生了重要的影響。1955年出現卷積碼。卷積碼至今仍有很廣泛的應用。1957年引入循環碼。循環碼構造簡單,便於應用代數理論進行設計,也容易實現。1959年出現能糾正突發錯誤的哈格伯爾格碼和費爾碼。1959年美國的R.C.博斯和D.K.雷·喬達利與法國的A.奧昆岡幾乎同時獨立地發表一種著名的循環碼,後來稱為BCH碼(即Bose-Chaudhuri-Hocquenghem碼)。1965年提出序貫解碼,序貫解碼已用於空間通信。1967年A.J.維特比提出最大似然卷積解碼,稱為維特比解碼。1978年出現矢量編碼法。矢量編碼法是一種高效率的編碼技術。1980年用數論方法實現里德-所羅門碼(Reed-Solomon碼),簡稱RS碼。它實際上是多進制的BCH碼。這種糾錯編碼技術能使編碼器集成電路的元件數減少一個數量級。它已在衛星通信中得到了廣泛的應用。RS碼和卷積碼結合而構造的級連碼,可用於深空通信。
在密碼學方面
1949年香農發表《保密系統的通信理論》,通常它被認為是密碼學的先驅性著作。1976年狄菲和赫爾曼首次提出公開密鑰密碼體制,為密碼學的研究開辟了新的方向。超大規模集成電路和高速計算機的應用,,促進了保密編碼理論的發展,同時也給保密通信的安全性帶來很大的威脅。70年代以來把計算復雜性理論引入密碼學,出現了所謂P類、NP類和NP完全類問題。演算法的復雜性函數呈指數型增長,因此密鑰空間擴大,使密碼的分析和搜索麵臨嚴重的挑戰。密碼學開始向縱深方向發展。
⑶ 電路板上的Tⅴ一cⅴBS代表什麼
1. 計算機組成原理概論
計算機:數字電子計算機
組成:計算機硬體系統的邏輯實現
原理:不以具體機型為依託的,基本實現原理。
計算機組成原理:掌握如何實現的具體細節。
1.1 計算機系統簡介
計算機系統由兩大部分組成:硬體和軟體。軟體又包括系統軟體和應用軟體。
系統軟體可以管理整個計算機系統:
- 語言處理程序(將高級語言轉換為機器可以懂得指令)
- 操作系統
- 服務性程序(比如數學庫、MPI服務程序進行並行之間的通信)
- 資料庫管理系統
- 網路軟體
應用軟體是按照任務需要編製成的程序。
可以簡單將軟體看作一個層次結構,硬體為軟體提供介面,系統軟體又為應用軟體形成介面,來完成不同的程序。
對於計算機的物理結構層次,我們這門課主要研究邏輯層和微電路層的具體實現方式。
計算機系統的指令層次如下圖所示
操作系統可以管理軟硬體的資源。
計算機系統結構定義了系統軟硬體的交界面,定義了哪些功能由軟體實現,哪些功能由硬體實現,定義為==程序員所見到的計算機系統的屬性概念性的結構與功能特性==。(指令系統,數據類型,定址技術,I/O機理),即程序員需要理解的東西。
計算機組成:實現計算機體系結構所體現的屬性,即具體指令的實現。
1.2 計算機的基本組成 1.2.1 馮諾依曼結構
上圖實線表示數據流動,虛線表示控制反饋。
- 計算機結構由五大部件組成:存儲器、運算器、控制器、輸入設備、輸出設備
- 以運算器為中心==程序存儲在存儲器中==
- 指令和數據以同等地位保存在存儲器中,可以按照地址尋找。
- 指令和數據由二進製表示,指令由操作碼和地址碼組成,操作碼指明指令要干什麼,地址碼指明操作數晌運的地址。
馮諾依曼結構以運算器為中心,容易形成瓶頸。我們可以使用存儲器作為中心來進行優化,但是還不夠。
1.2.2 現代計算機硬體框圖
指令和數據都是保存在存儲器中的。
1.2.3 存儲器的基本組成
MAR是存儲器地址寄存器,保存了存儲單元的地址和編號,長度猛清反映存儲單元的個數。
MDR是存儲器數據寄存器,保存了要存入存儲體的數據或剛從存儲體拿出來的數據,長度反映存儲字長。
利用MAR和MDR來將數據放入存儲器。
1.2.4 運算器的結構
ALU(算術邏輯單元),通常是一個組合電路,輸入撤銷,輸出也撤銷,因此需要加上寄存器保存參與運算的計算。
數據寄存器X保存輸入參數,ACC為累加寄存器,保存結果,乘法可能使得數據位數保存不下,使用MQ寄存器保存低位。
上表中存放了不同運算中,運算器的工作過程,以乘法為例,操作過程如下:
- 首先將被乘數取出來放到ACC中
- 從指令中的乘數地址M中取出乘數,送入MQ中
- 將被乘數送到X中
- 將ACC清零
- 完成乘法操作,結果由ACC和MQ保存
這些操作的過程順序是由控制器來控制完成的。
1.2.5 控制器的基本結構
控制器的功能是解釋指令(完成指令)、保證指令的按序執行。
- PC(程序計數器)寄存器保存了當前指令的地址,進行取指令,PC有計數功能。
- IR(指令寄存器)存放當前要執行的指令,將操作碼送入CU進行分析。
- CU(控制單元)發出控制信號,控制相對應的部件來執行指令。
下面以取數指令為例分析指令執行過程(取數送到ACC中)
- PC保存指令的地址,送到MAR進行定址
- MAR根據地址到存儲體中找到保存的指令
- MDR從存儲體中取出指令
- 送到IR中,IR存放要執行的指令
- IR將操作碼送入CU中進行分析
- 同時將地址碼送到MAR中找這個數的數據
- MAR根據地址到存儲體中找到要取的數
- MDR保存從存儲體中取出的數
- CU控制下,將宴知梁要取的數送到ACC中。
CU分析控制這些步驟的過程。
1.3 計算機硬體的主要技術指標
- 機器字長:CPU一次能處理數據的位數,與CPU中寄存器位數有關。
- 運算速度:主頻、核數以及每個核支持的線程數、CPI(執行一條指令所需的時鍾周期數)、MIPS(每秒執行百萬條指令)、FLOPS(每秒浮點運算次數)。
- 存儲容量:主存容量(可使用存儲單元個數×存儲字長來表示存儲體容量,MAR * MDR)(也可使用位元組數來表示)、輔存容量(位元組數表示)。
第一台計算機,1946年ENIAC,十進制運算。
電子技術的發展與計算機體系結構技術的發展對計算機的發展產生了決定性作用。
根據硬體技術來對計算機進行劃分代碼
電子管→晶體管→大規模集成電路→大規模集成電路→超大規模集成電路
軟體技術的發展:機器語言(面向機器)、匯編語言(面向機器)、高級語言(面向問題)。
2.2 計算機的應用
- 科學計算和數據處理
- 工業控制和實時控制
- 網路技術
- 虛擬現實
- 辦公自動化和管理信息系統
- CAD/CAM/CIMS
- 多媒體技術
- 人工智慧
匯流排是連接各個部件的信息傳輸線,是各個部件共享的傳輸介質,是信號的公共傳輸線。
如果使用單匯流排結構(系統匯流排),那麼同時只能有一對部件進行信號傳輸,效率較低,使用雙匯流排結構效率會更高。
上面的結構,無法在I/O和主存之間進行直接的信息傳輸,必須要通過CPU。
3.2 匯流排的分類
- 片內匯流排:晶元內部的匯流排。
- 系統匯流排:計算機各部件之間的信息傳輸線。可分為:
- 數據匯流排,雙向的,一般小於等於機器字長和存儲字長。
- 地址匯流排,單向的,與存儲地址、I/O地址有關。
- 控制匯流排,雙向(CPU發出存儲器讀寫指令,匯流排允許,中斷確認等;CPU接收中斷請求、匯流排請求)
- 通信匯流排:計算機之間或計算機和其它設備之間的通信,並行通信匯流排和串列通信匯流排。
匯流排印刷到電路板上(主板),其他設備插板插到電路板上。
匯流排的性能指標:
- 匯流排寬度:數據線根數,同時可以傳輸多少位。
- 標准傳輸率:每秒傳輸的最大位元組數MBps
- 時鍾同步/不同步
- 匯流排復用:地址線與數據線是否可以復用
- 信號線數:地址線、數據線和控制線的總和
- 匯流排控制方式
- 其他指標:負載能力等
3.4 匯流排結構
增加了DMA(直接存儲器訪問)匯流排,外部設備直接訪問存儲器內存。高速設備直接通過DMA訪問主存。
CPU與cache通過局部匯流排進行相連,擴展匯流排將外部設備連接。
高速設備和低速設備分離,分別連接到高速匯流排和擴展匯流排上。
PCI高速匯流排來連接高速設備,PCI匯流排可以通過橋來進行擴展。
3.5 匯流排控制 3.5.1 匯流排判優控制
通過是否能對匯流排發出佔用請求,我們將設備分為主設備(主模塊)和從設備(從模塊)。主設備可以對匯流排有控制權,從設備響應從主設備發來的匯流排命令。
匯流排判優控制可以分為兩種:集中式和分布式。下面介紹幾種集中式的匯流排判優控制結構。
主設備通過BR申請匯流排的控制權,有設備在使用匯流排,則設置BS。匯流排控制部件通過BG來鏈式查詢這些介面是否提出了BR,遇到了BR則交出控制權。
因此,優先順序則為BG的查詢順序。這種結構對電路故障特別敏感,尤其是BG,如果BG後面出了問題,會導致後面的設備一直不會響應。
數據線用於數據的傳輸,地址線用於從設備的查找。通過設備地址線來查找某個設備是否發出匯流排請求。計數器的值通過設備地址線進行傳輸,來查找某個設備是否發出請求。可以自定義計數器的計數方式,來改變從哪個設備先查詢等。
為每個I/O介面增加了BR和BG,通過排隊器來進行優先順序排隊。這種方式使用的線數較多。
3.5.2 匯流排通信控制
為了解決通信雙方(主從設備)協調配合的問題。
匯流排的傳輸周期(完成一次主從設備完整可靠的傳輸所需要的時間):
- 申請分配階段:主設備申請,匯流排決定
- 定址階段:主設備向向從設備給出地址和命令
- 傳數階段:主設備和從設備進行交換數據
- 結束階段:主從設備撤銷有關信息
- T1,主設備給出地址信號
- T2,給出從設備的讀命令信號
- T3,從設備給出數據,輸出到匯流排,完成數據交換
- T4,撤銷地址信號,結束周期
強制同步,如果設備之間速度不同,快的設備需要等慢的設備。
不互鎖:不管從設備是否接收到請求信號,過段時間主設備都會撤銷請求。不管主設備是否接收到應答信號,從設備多段時間都會撤銷應答。
半互鎖和全互鎖針對上面進行改進。
增加等待響應信號,當wait為低電平,則等待一個T。
使用分離式通信來將匯流排空閑的時間也充分利用起來。
4. 存儲器 4.1 概述
按照存取方式對存儲器進行分類:
- 存取時間與物理地址無關(隨機訪問):隨機存儲器、只讀存儲器。
- 存取時間與物理地址有關(串列訪問):順序存取存儲器(磁帶)、直接存取存儲器(磁碟)。
按照在計算機中的作用分類:
存儲器的層次結構:
- 寄存器包括體系結構寄存器和非體系結構寄存器。
- 一部分緩存放在了CPU之中。
- 緩存——主存層次,使用硬體方法連接到一個整體(對程序員透明,即不需要了解),速度較快,解決CPU和主存之間速度差距較大的問題,緩存即為cache,CPU可以直接從緩存調用數據,cache和主存也進行數據交換。使用主存儲器的實地址和物理地址。
- 主存——輔存層次,使用軟硬體結合方式連接,容量較大,解決容量不足問題。這個層次稱為虛擬存儲器,使用虛地址和邏輯地址。
主存的基本組成:
主存與CPU之間的聯系:
主存中存儲單元地址的分配:
- 每個位元組(8位)一個地址,如果一個存儲單元存儲32位,即四個位元組為一個字,可以將高位位元組/低位位元組,放在小的地址作為字地址。
主存的技術指標:
4.2.2 主存儲器半導體晶元簡介
基本結構:
- 地址線(單向)給出地址,經過解碼驅動電路來選擇指定的存儲單元,完成數據的讀寫操作(數據線雙向)。
- 片選線是晶元選擇信號,給出這次選擇的地址是不是這個晶元的地址。
- 讀寫控制線,控制操作允許讀還是寫。
- 根據地址線和數據線條數,可以計算出晶元容量。如果地址線10條,數據線4條,那麼晶元容量則為1K×4位。即1K個地址,每個地址數據4位。
解碼驅動方式:
第一種方法是線選法
- 使用地址解碼器,給定輸入,輸出只有一根線(字線)是有效的,圖中一根線中是8個晶元組合成一個字,那麼只有一根線的這一組晶元有效。
- 這種方法,每個字的存儲單元都需要一根線,當容量較大的時候,很麻煩。
第二種方法是重合法
- 將所有存儲單元布置成二維的陣列,使用兩個地址解碼器XY,一組(X,Y)對應一個存儲單元。
- 這樣會大大降低所需要的線數量。
SRAM的基本電路:
- 使用觸發器T1-T4來存儲0/1,T5、T6控制存儲單元讀寫,實際中會有許多虛線框進行堆疊,T7、T8列開關,一列共用。同樣,可以橫向進行堆疊,那麼行地址選擇的這一行,所有存儲單元的T5和T6都會導通,但是只有對應列也有效的那個存儲單元才進行讀寫。
- 通過行選和列選,選中進行讀寫操作的存儲單元。
SRAM晶元舉例(Intel 2114):
- WE讀寫控制信號,CS片選信號,A0-A9為地址線,4個I/O數據線。
- 10根地址線,使用重合法,6線為行地址,4線為列地址,每個列信號控制四列,這樣一次就可以選擇4位,將這4位看做是一個存儲單元。就完成了1K×4位的選擇。
DRAM的基本電路:
- 利用電容,如果電容保存了電荷,則認為保存是1,沒有電,則認為是0。
- 保存在Cg上,T1、T2、T3是控制管。
- 讀出信息與原信息相反,需要加非門。
- 寫入信息與輸入信息相同。
還有一種結構是單管動態RAM:
- 讀出數據時,數據線有電,則為1。
- 寫入時,Cs充電為1,放電為0。
三管DRAM晶元舉例(Intel 1103):
- 因為電容會漏電,刷新放大器會定時對存儲的信息進行刷新。
單管DRAM晶元舉例(Intel 4116 16k×1位):
- 只有7根地址線,通過兩次,來接受行地址和列地址,存放到對應的緩存器中。
- 通過行時鍾、列時鍾、寫時鍾來控制讀寫。
動態RAM的刷新:
- 每一次刷新只與行地址有關,與列地址沒有關系,每次刷新一行。
- 集中刷新(在某段時間集中刷新所有的電容),這段時間DRAM是不可用的,稱為死區。
- 分散刷新(每次讀寫操作之後,將某一行刷新),相當於將原來的讀寫操作的時間變長,把刷新操作放在讀寫操作中,這樣就不存在死區。分散刷新比較頻繁,有點過度刷新了。
- 非同步刷新(將上面兩種結合),則每隔一段時間對某一行進行刷新,即多個讀寫操作加一個刷新操作。
- DRAM的集成度較高,每個存儲單元復雜度較低。
- SRAM的速度較快,一般用作緩存。
ROM中一般保存系統信息或系統程序。早期是只讀的,不可以寫,經過多年的發展和改進,現在的ROM可以自己多次讀寫。
- 掩模ROM(MROM):只讀,不能修改。行列選擇線交叉處有MOS管則為1,沒有則為0。
- PROM(一次性編程):熔絲斷了,則為0,否則為1。可以一次性的破壞性編程。
- EPROM(可以多次編程):N型溝道浮動柵MOS電路。S與D導通為1,不導通為0。
- EEPROM(多次性編程):電可擦寫、局部擦寫、全部擦寫。
- Flash Memory(快閃記憶體型存儲器):比EEPROM快,具有RAM的一些功能。
存儲器容量擴展可以通過位擴展(增加存儲字長)、字擴展(增加存儲字的數量)、同時擴展。
CPU與存儲器的連接:
- 地址線的連接:低位作為地址,高位作為片選信號
- 數據線的連接
- 讀寫命令控制線的連接
- 片選線的連接:MREQ信號(表示該信號是連接存儲器還是I/O介面)一定要連接到片選信號中,使得只有這個信號有效,才是CPU和內存連接工作。
- 合理選擇存儲晶元(ROM/RAM,晶元的性能參數)
- 其他:時序、負載
校驗,檢測合法代碼,對非法代碼進行糾錯。
編碼的糾錯、檢錯能力與編碼的最小距離有關。最小距離為任意兩組合法代碼之間二進制位數的最小差異。$$ L-1 = D + C (D≥C) $$L為最小距離,D為檢測錯誤的位數,C為糾正錯誤的位數。
漢明碼是具有一位糾錯能力的編碼,漢明碼都採用了奇偶校驗和分組校驗(分組的奇偶校驗,分組之間是有重疊的,校驗位放在2 ^ k處,k=0,1,2,3...)。
漢明碼的分組,將代碼中每一位進行分組(1,2,3,4,5,6,7序號),將每一位的序號進行分組,序號的二進制最右邊一位為1的,第一組,右邊第二位為1的,第二組......
==最後的校驗結果,哪一位是1,那麼這位對應的那組中的那個序號的代碼位出錯。如果出現了多個1,那麼就是這幾個組中公共的那位出錯了。==
4.2.7 提高主存的訪問以及存儲速度
CPU速度提升很快,但是存儲器的速度提升較慢。
我們可以採用高速器件,採用層次結構(Cache-主存),==調整主存結構。==
- 單體多字系統:使得存儲器的存儲字長大於CPU的字長(比如是CPU字長的4倍),這樣一次讀取就可以讀取多個指令。但是這樣會導致存儲器結構復雜, 而且,如果需要執行的指令不是連續存放的,會更麻煩。
- 多體並行方式:
- 高位交叉:對各個存儲體進行編號,存儲體內部自行編號,每個存儲體獨立,有自己的控制編號。這樣CPU給出的地址是體號+體內地址,各個存儲體可以並行處理。(類似存儲器容量的擴展)如果程序指令存方式順序的,實際上還是在一個存儲體中,並無法提升存儲體速度。
- 低位交叉:體內地址+體號,使用橫向的編碼,比如存儲體為M0-M3,那麼第一個地址為M0的第一個位置,第二個地址為M1的第一個位置......這樣M0中所有地址後兩位都為00,M1都為01,M2都為10,M3都為11。後兩位給出了存儲體的選擇地址。這樣如果程序指令順序存放的地址,實際上是不同存儲體並行處理,這樣就提升了效率,流水操作。
CPU與主存(DRAM)之間存在速度差異,為了避免CPU「空等」的現象,使用cache。
程序訪問的局部性原理:
- 時間的局部性:當前正在使用的指令或數據,會在不久的將來還會使用到,那麼應該把這種數據或指令放在緩存中。
- 空間的局部性:當前正在使用的指令或數據,不久的將來,相鄰的指令或數據會使用到,那麼應該把當前和相鄰的指令和數據放到緩存中。
cache的工作原理:
把主存和cache分成大小相等的塊,每個塊大小相等,主存的塊數量遠遠大於cache的塊數量。==主存與cache之間的信息傳送是按塊傳送,塊內地址不變,cache的每個塊的標記,標記了這個塊是主存的哪個塊。==
主存塊調入了緩存(即cache標記了),稱為命中,CPU可直接在緩存中取得數據;如果沒有調入,稱為未命中。
我們希望,每次執行程序,都盡可能的在cache中提取數據,這樣速度會很快。CPU欲訪問的信息在Cache中的比率稱為命中率,命中率與Cache的容量和塊長有關。一般每塊取4-8個字,一般為一個存取周期內從主存調出的信息長度。
cache與主存的訪問效率:
這裡面平均訪問時間為每次訪問的平均時間(可能從cache,可能從主存)。
4.3.2 cache的基本結構與讀寫操作
cache的基本結構:
讀寫操作:
- 前者時刻保持了cache和主存的一致,後者只寫cache中,當cache中退出時才寫回主存。
cache的改進:
- 增加cache的級數:片內cache,片外cache。
- 分立緩存:指令cache,數據cache。
即主存的任意一塊載入到cache中的哪塊。
直接映射:
即主存中任意一個塊,只能映射到指定的一個cache塊中,cache塊可以是一對多的。相當於將主存分區,每個區內的這些塊,對應於cache的所有塊;這樣在cache的標記中,有t位的標記,表示當前該cache塊存放的是主存哪個區的對應位置信息。
這種方法cache塊的利用率比較低,且可能會沖突。
全相聯映射:
主存中任意一個塊,可以被放入cache中的任意一個塊中。
這樣的話,雖然塊的利用率高了,但是因為塊可以映射到任意一個位置,如果查詢某個主存塊是否已經放入cache,需要比較所有的cache標記,速度較慢。
==組相聯映射==:
與直接映射相似,==將cache分組,每個組可以有多個塊;將主存分區,每個區的大小為cache的組數==。這樣每個區的第0塊,可以放入cache第0組的任何一個位置,因為每個組有多個塊,解決了直接映射的沖突問題;想查詢某個主存的塊是否放入了cache,只需要在對應的組進行查詢即可,解決了全相聯映射的問題。
4.3.4 替換演算法
如果內存塊滿了,如何替換,將誰彈出。
先進先出(FIFO)演算法
近期最少使用(LRU)演算法
4.4 輔助存儲器
輔助存儲器的主要作用是保存程序、文檔和影音資料,不能直接與CPU交換信息,需要調入主存才能進行讀寫。
包括磁碟存儲器和光碟存儲器等。
⑷ 信道編碼都有哪些
1、信道編碼的種類主要包括:線性分組碼、卷積碼、級聯碼、Turbo碼和LDPC碼。
2、其中分組碼又分為:漢明碼,格雷碼,循環碼(BCH碼,RS碼,CRC循環冗餘校驗碼。
信道編碼,也叫差錯控制編碼,是所有現代通信系統的基石。
幾十年來,信道編碼技術不斷逼近香農極限,波瀾壯闊般推動著人類通信邁過一個又一個頂峰,信道編碼在發送端對原數據添加冗餘信息,這些冗餘信息是和原數據相關的,再在接收端根據這種相關性來檢測和糾正傳輸過程產生的差錯,這些加入的冗餘信息就是糾錯碼,用它來對抗傳輸過程的干擾。
(4)74漢明碼編譯碼原則擴展閱讀:
作用
數字信號在傳輸中往往由於各種原因,使得在傳送的數據流中產生誤碼,從而使接收端產生圖象跳躍、不連續、出現馬賽克等現象。
所以通過信道編碼這一環節,對數碼流進行相應的處理,使系統具有一定的糾錯能力和抗干擾能力,可極大地避免碼流傳送中誤碼的發生。
誤碼的處理技術有糾錯、交織、線性內插等。
⑸ 單片機串口通信編解碼
串口直接丟過去收到就是了,為啥還要編碼解碼?加密么