本人簡單總結(jié)了一點計算機組成原理方面的知識尺碰,對于編程來講挣棕,了解這些基礎(chǔ)知識,可以更加輕易的掌握內(nèi)存管理亲桥,線程技術(shù)等方面的知識穴张。
1.電子數(shù)字計算機和電子模擬計算機的區(qū)別:電子數(shù)字計算機處理的信息是在時間上離散的數(shù)字量,運算的過程是不連續(xù)的两曼,電子模擬計算機中處理的信息是連續(xù)變換的物理量皂甘,運算的過程是連續(xù)的。
2.馮·諾依曼計算機的特點是什么悼凑?其中最主要的一點是什么偿枕?:計算機(指硬件)應(yīng)由運算器,存儲器户辫,控制器渐夸,輸入設(shè)備,輸出設(shè)備五大部件組成渔欢;計算機內(nèi)部采用二進制來表示指令和數(shù)據(jù)墓塌;將編好的程序和原始數(shù)據(jù)事先存入存儲器中,然后再啟動計算機工作。
3.計算機的硬件組成及功能:輸入設(shè)備:把人們編好的程序和原始數(shù)據(jù)送到計算機中去苫幢,并且將他們轉(zhuǎn)成計算機內(nèi)部所能識別和接受的信息方式访诱;輸出設(shè)備:將計算機的處理結(jié)果以人或其他設(shè)備所能接受的信息方式;存儲器:用來存放程序和數(shù)據(jù);運算器:對信息進行處理和運算韩肝;控制器:按照人們預先確定的操作步驟触菜,控制整個計算機的各部件有條不紊地自動工作。
4.什么叫總線哀峻?總線是一組能為多個部件服務(wù)的公共信息傳遞線路涡相,它能分時地發(fā)送與接收各部件的信息。單總線結(jié)構(gòu)及各部件都連接在單一的一組總線上剩蟀,這個總線被稱為系統(tǒng)總線催蝗。CPU與主存,CPU與外設(shè)之間可以直接進行信息交換育特,主存與外設(shè)丙号,外設(shè)與外設(shè)之間也可以直接進行信息交互,而無須經(jīng)過cpu的干預且预。
5.計算機的層次結(jié)構(gòu):多層次結(jié)構(gòu); 0:硬件組成的實體 1:微程序級(機器語言是微指令集)2:傳統(tǒng)機器幾(機器語言是該機的指令集--程序員用機器指令編寫的程序可以由微程序進行解釋)3:操作系統(tǒng)級(功能看:1直接管理傳統(tǒng)機器的軟硬件資源槽袄,2傳統(tǒng)機器的延伸) 4:匯編語言級數(shù)(完成匯編語言編譯的程序叫匯編語言)5:高級語言(由編譯程序來完成高級語言的翻譯工作)6:應(yīng)用語言(滿足計算機用提--面向問題的應(yīng)用語言)
6.計算機的主要指標:機器字長烙无,數(shù)據(jù)同理寬度锋谐,主存容量,運算速度等:機器字長:指參與運算的數(shù)的基本位數(shù)它是由加法器截酷,寄存器的位數(shù)決定的涮拗,數(shù)據(jù)通路寬度:是指數(shù)據(jù)總線第一次所能并行傳送信息的位數(shù),主存容量是指主存儲器的全部信息量迂苛,運算速度與機器的主頻三热,執(zhí)行什么樣的操作,主存本身的速度等許多因數(shù)有關(guān)三幻。
指令長度就漾,雙操作數(shù)運算類指令的執(zhí)行,地址個數(shù)對程序長度和指令長度的影響念搬,不同地址數(shù)指令抑堡,非規(guī)整性編碼----擴展操作碼法,地址碼位數(shù)與主存容量和最小尋址單位的關(guān)系朗徊,指令尋址和數(shù)據(jù)尋址首妖,常見數(shù)據(jù)尋址方式(CPU 根據(jù)指令約定的尋址方式對地址字段的有關(guān)信息作出解釋 ,以找到操作數(shù) 。 有 的指令設(shè)置專門的尋址方式字段 ,以說明采用何種尋址方式 ,有的指令則通過操作碼的含 義 ,隱含約定采用何種尋址方式 爷恳。 對于涉及多個地址的指令 ,各個地址可以有自己的尋址 方式 ,也就是說 ,一條指令中可以有多種尋址方式 有缆。
一個指令系統(tǒng)具有哪幾種尋址方式 ,這是設(shè)計指令系統(tǒng)的關(guān)鍵 ,也是初學者理解一個 指令系統(tǒng)的難點所在 。 因此 ,在這部分內(nèi)容的教學過程中 ,應(yīng)幫助學生從眾多的尋址方式 中歸納出一條清晰的思路來 。
首先看指令要調(diào)用的操作數(shù)可能存放在什么地方 ? 經(jīng)過分析發(fā)現(xiàn) ,操作數(shù)所在的位 置無非有下列 5 種情況 :
1 操作數(shù)就包含在某指令中或緊跟著某指令 ,相應(yīng)地需要由指令直接給出操作數(shù) 棚壁。 2 操作數(shù)在 CPU 的某個寄存器中 ,相應(yīng)地需要指令中給出寄存器編號 杯矩。
3 操作數(shù)在主存中 ,則指令應(yīng)以某種方式給出主存單元的地址碼 。 這里還可分為幾
種情況 :有的是對單個操作數(shù)進行處理 ;有的是對一個連續(xù)的數(shù)組或?qū)?shù)組中的某個元素 進行處理 ;有的是對一個表格或?qū)Ρ砀裰械哪硞€元素進行處理等 灌曙。 需要相應(yīng)地采取不同 的尋址方式 菊碟。
4 操作數(shù)在堆棧區(qū)中 ,可以隱含約定由堆棧指針 SP 提供地址 。
5 操作數(shù)在某個 I/O 接口的寄存器中 ,指令中需要提供 I/O 端口地址(獨立編址)或 總線地址(統(tǒng)一編址)在刺。
接下來 ,沿著從簡到繁的思路 ,大致可將眾多的尋址方式歸納為以下 4 大類 :
1 立即尋址———在讀取指令時從指令中獲得操作數(shù)逆害。
2 直接尋址類 ——— 直接給出寄存器編號或主存單元地址 ,以獲取操作數(shù)(如寄存器
尋 址 、直 接 尋 址 ) 蚣驼。
3 間接尋址類 ——— 先從某寄存器或主存中讀取地址 ,再按這個地址訪問主存 ,讀取 操 作 數(shù) ( 如 寄 存 器 間 接 尋 址 魄幕、間 接 尋 址 ) 。
4 變址類———指令給出的是形式地址,經(jīng)過某種計算(例如相加颖杏、相減纯陨、高低位地址 拼接等) ,才獲得有效地址 ,據(jù)此訪問主存以讀取操作數(shù) (如變址尋址 、基址尋址 留储、相對尋 址 翼抠、頁 面 尋 址 ) 。
盡管各種計算機的尋址方式種類甚多 ,尤其是不同系列的計算機之間更是既有大體 相同之處 ,也有各具特色之處 获讳。 不同的計算機對尋址方式的分類和命名也有各自的規(guī)定 , 但幾乎都是以上述 4 類為最基本的尋址方式 ,其他的則是它們的變型或組合 阴颖。 沿著上述 思路去學習 ,可以更好地理解各種尋址方式的含義 。)
各種數(shù)據(jù)尋址方式的速度比較:操作數(shù)可以在主存中 ,也可以在寄存器中 ,甚至可以在堆棧中 丐膝。 各種不同的 尋址方式獲取操作數(shù)的速度是不相同的 量愧。 9 種基本的數(shù)據(jù)尋址方式獲取操作數(shù)的順序依 次是 :
立即尋址
寄存器尋址 EA = Ri
直接尋址 EA = A
寄存器間接尋址 EA = (Ri )
頁面尋址 EA = PC//A
變址尋址 EA = (Rx )+ A
基址尋址 EA = (Rb )+ A
相對尋址 EA = (PC)+ A
間接尋址 EA = (A)
其中變址尋址 、基址尋址和相對尋址又可以統(tǒng)稱為偏移尋址 ,這幾種尋址方式形成有
效地址 EA 的機制相同 ,都是將指定寄存器的內(nèi)容與指令中的地址碼字段相加 ,所以獲取 操作數(shù)的速度相同 帅矗。
直接尋址 偎肃、寄存器間接尋址 、頁面尋址 浑此、變址尋址 累颂、基址尋址 、相對尋址等獲取操作數(shù) 都只需要訪問一次主存(不含取指令本身) ,根據(jù)有效地址 EA 得到的難易程度 ,速度上稍 有差別 凛俱。 寄存器間接尋址由于要先到寄存器中取出操作數(shù)的地址 ,所以獲取操作數(shù)的速 度要稍慢于直接尋址 ,而頁面尋址的有效地址 EA 通過簡單的拼接得到 ,將稍快于變址尋 址 紊馏、基址尋址和相對尋址 。
間接尋址指令中給出的地址 A 不是操作數(shù)的地址而是操作數(shù)地址的地址 最冰。 這就意 味著為獲取一個操作數(shù) ,至少需要兩次訪問主存(不含取指令本身)瘦棋。
面向堆棧的操作指令:
進棧指令(PUSH) 在棧頂增加一個新元素
出棧指令 (PO P ) 一元操作 二元操作
從棧頂取走一個元素
對棧頂元素進行操作以后 ,用結(jié)果替換棧頂元素 對棧頂?shù)膬蓚€元素進行操作以后 ,用結(jié)果替換棧頂元素。
存儲器堆棧組織
目前多數(shù)計算機的堆棧是在主存中開辟一個堆棧區(qū) ,為了避免堆棧區(qū)與其他存儲區(qū) 混淆 ,堆棧除需要有棧頂指針寄存器 SP 以外 ,還應(yīng)當設(shè)置堆棧上下界標志寄存器 暖哨。 圖 3唱7(a)表示存儲器堆棧的組織結(jié)構(gòu) ,其中 B(Bottom)寄存器為堆棧下界(棧底)指針 , L(Limit)寄存器為堆棧上界(棧頂)指針 赌朋。 對于自底向上生成的堆棧 ,在進棧時 ,SP > L 稱為堆椈四“上溢” ,這是不允許的 ;在出棧時 ,SP < B 稱為堆棧“下溢” ,也是不允許的 沛慢。 因 此 ,堆棧操作時 ,不但 SP 要修改 ,還需要判界 赡若。 若采用硬件方法實現(xiàn)修改棧指針 SP ← SP ± 1 ,以及判界操作 ,將會大大加速堆棧操作速度 。
為了進一步提高堆棧操作速度 ,還可以將棧頂部的兩個元素取到寄存器中 ,如圖 3唱7(b) 所示 团甲。 指令對棧頂和次棧頂?shù)臄?shù)據(jù)操作可直接在寄存器中進行 ,此時 ,棧頂指針 SP 指向 第三個棧元素 逾冬。 有的堆棧計算機 ,如 HP3000 ,將堆棧的頭 4 個元素存于寄存器中 。 這種設(shè)置棧頂元素寄存器的硬件結(jié)構(gòu)在面向堆棧運算的計算機中是普遍采用的 躺苦。
綜 合 起 來 ,硬 件 對 堆 棧 提 供 的 支 持 有 :棧 頂 指 針 S P 及 其 操 作 時 的 修 改 ,堆 棧 的 上 身腻、下
界寄存器及其判界 ,以及棧頂元素寄存器 3 種 。
1 .指令長度和機器字長有什么關(guān)系 ? 半字長指令 匹厘、單字長指令 嘀趟、雙字長指令分別表 示什么意思 ?
解 :指令長度與機器字長沒有固定的關(guān)系 ,指令長度可以等于機器字長 ,也可以大于 或小于機器字長 。 通常 ,把指令長度等于機器字長的指令稱為單字長指令 ;指令長度等于 半個機器字長的指令稱為半字長指令 ;指令長度等于兩個機器字長的指令稱為雙字長 指令 愈诚。
2 .零地址指令的操作數(shù)來自哪里 ? 一地址指令中 ,另一個操作數(shù)的地址通乘矗可采用 什么尋址方式獲得 ? 各舉一例說明 。
解 :雙操作數(shù)的零地址指令的操作數(shù)來自堆棧的棧頂和次棧頂 炕柔。 雙操作數(shù)的一地址 指令的另一個操作數(shù)通匙锰可采用隱含尋址方式獲得 ,即將另一操作數(shù)預先存放在累加器 中 。 例如 ,前述零地址和一地址的加法指令 匕累。
3 .某機為定長指令字結(jié)構(gòu) ,指令長度 16 位 ;每個操作數(shù)的地址碼長 6 位 ,指令分為 無操作數(shù) 陵刹、單操作數(shù)和雙操作數(shù)三類 。 若雙操作數(shù)指令已有 K 種 ,無操作數(shù)指令已有 L 種 ,問單操作數(shù)指令最多可能有多少種 ? 上述三類指令各自允許的最大指令條數(shù)是多少 ?解 : X = (2 - K ) × 2 - j 6 k 6 52 雙操作數(shù)指令的最大指令數(shù) :24- 1 哩罪。 單操作數(shù)指令的最大指令數(shù) :15 × 26- 1 (假設(shè)雙操作數(shù)指令僅 1 條 ,為無操作數(shù)指令留出 1 個擴展窗口) 授霸。 無操作數(shù)指令的最大指令數(shù) :216 - 212- 26 巡验。 其中 212 為表示某條二地址指令占用的 編碼數(shù) ,26 為表示某條單地址指令占用的編碼數(shù) 际插。 此時雙操作數(shù)和單操作數(shù)指令各僅有1條。
1 .如何區(qū)別存儲器和寄存器 ? 兩者是一回事的說法對嗎 ?
解 :存儲器和寄存器不是一回事 显设。 存儲器在 CPU 的外邊 ,專門用來存放程序和數(shù) 據(jù) ,訪問存儲器的速度較慢 框弛。 寄存器屬于 CPU 的一部分 ,訪問寄存器的速度很快 。
2 .存儲器的主要功能是什么 ? 為什么要把存儲系統(tǒng)分成若干個不同層次 ? 主要有 哪些層次 ?
解 :存儲器的主要功能是用來保存程序和數(shù)據(jù) 捕捂。 存儲系統(tǒng)是由幾個容量 瑟枫、速度和價格各不相同的存儲器用硬件 、軟件 指攒、硬件與軟件相結(jié)合的方法連接起來的系統(tǒng) 慷妙。 把存儲系 統(tǒng)分成若干個不同層次的目的是為了解決存儲容量 、存取速度和價格之間的矛盾 允悦。 由高 速緩沖存儲器 膝擂、主存儲器 、輔助存儲器構(gòu)成的三級存儲系統(tǒng)可以分為兩個層次 ,其中高速 緩存和主存間稱為 Cache - 主存存儲層次(Cache 存儲系統(tǒng)) ;主存和輔存間稱為主存 — 輔 存存儲層次(虛擬存儲系統(tǒng))。
3 .什么是半導體存儲器 ? 它有什么特點 ?
解 :采用半導體器件制造的存儲器 ,主要有 M OS 型存儲器和雙極型存儲器兩大類 绽乔。 半導體存儲器具有容量大 叁征、速度快 陈症、體積小 、可靠性高等特點 萍启。 半導體隨機存儲器存儲的 信息會因為斷電而丟失 。
4 .SRAM 記憶單元電路的工作原理是什么 ? 它和 DRAM 記憶單元電路相比有何異 同點 ?
解 :SRAM 記憶單元由 6 個 MOS 管組成 ,利用雙穩(wěn)態(tài)觸發(fā)器來存儲信息 ,可以對其 進行讀或?qū)?,只要電源不斷電 ,信息將可保留 屏鳍。 DRAM 記憶單元可以由 4 個和單個 MOS 管組成 ,利用柵極電容存儲信息 ,需要定時刷新 勘纯。
5 .動態(tài) RAM 為什么要刷新 ? 一般有幾種刷新方式 ? 各有什么優(yōu)缺點 ?
解 :DRAM 記憶單元是通過柵極電容上存儲的電荷來暫存信息的 ,由于電容上的電 荷會隨著時間的推移被逐漸泄放掉 ,因此每隔一定的時間必須向柵極電容補充一次電荷 , 這個過程就叫做刷新 。
常見的刷新方式有集中式 钓瞭、分散式和異步式 3 種 屡律。 集中方式的特點是讀寫操作時不 受刷新工作的影響 ,系統(tǒng)的存取速度比較高 ;但有死區(qū) ,而且存儲容量越大 ,死區(qū)就越長 。 分散方式的特點是沒有死區(qū) ;但它加長了系統(tǒng)的存取周期 ,降低了整機的速度 ,且刷新過 于頻繁 ,沒有充分利用所允許的最大刷新間隔 降淮。 異步方式雖然也有死區(qū) ,但比集中方式的 死區(qū)小得多 ,而且減少了刷新次數(shù) ,是比較實用的一種刷新方式 超埋。
6 .一般存儲芯片都設(shè)有片選端CS ,它有什么用途 ?
解 :片選線CS用來決定該芯片是否被選中 。 CS = 0 ,芯片被選中 ;CS = 1 ,芯片不 選中 佳鳖。
7 .DRAM 芯片和 SRAM 芯片通常有何不同 ? 解 :主要區(qū)別有 :
1 DRAM 記憶單元是利用柵極電容存儲信息 ;SRAM 記憶單元利用雙穩(wěn)態(tài)觸發(fā)器 來存儲信息 霍殴。
2 DRAM 集成度高 ,功耗小 ,但存取速度慢 ,一般用來組成大容量主存系統(tǒng) ;SRAM 的存取速度快 ,但集成度低 ,功耗也較大 ,所以一般用來組成高速緩沖存儲器和小容量主 存系統(tǒng) 。
3 SRAM 芯片需要有片選端CS ,DRAM 芯片可以不設(shè)CS ,而用行選通信號RAS 系吩、列選通CAS兼作片選信號 来庭。
4 SRAM 芯片的地址線直接與容量相關(guān) ,而 DRAM 芯片常采用了地址復用技術(shù) ,以
減少地址線的數(shù)量 。
8 .有哪幾種只讀存儲器 ? 它們各自有何特點 ?
解 :MROM :可靠性高 ,集成度高 ,形成批量之后價格便宜 ,但用戶對制造廠的依賴
性過大 ,靈活性差 穿挨。
PROM :允許用戶利用專門的設(shè)備(編程器)寫入自己的程序 ,但一旦寫入后 ,其內(nèi)容
將無法改變 月弛。 寫入都是不可逆的 ,所以只能進行一次性寫入 。
EPROM :不僅可以由用戶利用編程器寫入信息 ,而且可以對其內(nèi)容進行多次改寫 科盛。
EPROM 又可分為兩種 :紫外線擦除(UVEPROM )和電擦除(EEPROM ) 帽衙。
閃速存儲器 :既可在不加電的情況下長期保存信息 ,又能在線進行快速擦除與重寫 ,
兼?zhèn)淞?EEPROM 和 RAM 的優(yōu)點 。
9 .說明存取周期和存取時間的區(qū)別 贞绵。
解 :存取周期是指主存進行一次完整的讀寫操作所需的全部時間 ,即連續(xù)兩次訪問
存儲器操作之間所需要的最短時間 厉萝。 存取時間是指從啟動一次存儲器操作到完成該操作 所經(jīng)歷的時間 。 存取周期一定大于存取時間 榨崩。
10 .一個 1K × 8 的存儲芯片需要多少根地址線 谴垫、數(shù)據(jù)輸入線和輸出線 ?
解 :需要 10 根地址線 ,8 根數(shù)據(jù)輸入和輸出線 。
11 .某機字長為 32 位 ,其存儲容量是 64KB ,按字編址的尋址范圍是多少 ? 若主存以
字節(jié)編址 ,試畫出主存字地址和字節(jié)地址的分配情況 母蛛。
解 :某機字長為 32 位 ,其存儲容量是 64KB ,按字編址的尋址范圍是 16KW 翩剪。 若主存
以字節(jié)編址 ,每一個存儲字包含 4 個單獨編址的存儲字節(jié) 。 假設(shè)采用大端方案 ,即字地址 等于最高有效字節(jié)地址 ,且字地址總是等于 4 的整數(shù)倍 ,正好用地址碼的最末兩位來區(qū)分 同一個字中的 4 個字節(jié) 彩郊。 主存字地址和字節(jié)地址的分配情況如圖 5唱19 所示 前弯。
12 .一個容量為 16K × 32 位的存儲器 ,其地址線和數(shù)據(jù)線的總和是多少 ? 當選用下 列不同規(guī)格的存儲芯片時 ,各需要多少片 ?
解 :地址線14根 ,數(shù)據(jù)線32根 ,共46根舞肆。
若 選 用 不 同 規(guī) 格 的 存 儲 芯 片 ,則 需 要 :1 K × 4 位 芯 片 1 2 8 片 ,2 K × 8 位 芯 片 3 2 片 ,4 K × 4 位 芯 片 3 2 片 ,1 6 K × 1 位 芯 片 3 2 片 ,4 K × 8 位 芯 片 1 6 片 ,8 K × 8 位 芯 片 8 片 。
35 .總線的同步通信和異步通信有何不同 ? 試舉例說明一次全互鎖異步應(yīng)答的通信 情況 博杖。
解 :總線的同步通信是指系統(tǒng)采用一個統(tǒng)一的時鐘信號來協(xié)調(diào)發(fā)送和接收雙方的傳 送定時關(guān)系 椿胯。 時鐘產(chǎn)生相等的時間間隔 ,每個間隔構(gòu)成一個總線周期 。 總線的異步通信 沒有公用的時鐘 ,也沒有固定的時間間隔 ,完全依靠傳送雙方相互制約的“握手”信號來實 現(xiàn)定時控制 剃根。
全互鎖異步應(yīng)答的通信過程為 :“請求”信號的來到導致“回答”信號的來到 ,“請求”信 號的撤銷取決于“回答”信號的來到 ,而“請求”信號的撤銷又導致“回答”信號的撤銷 哩盲。