曹玉波,張振濤,趙明麗,楊 瑩
(1.吉林化工學院 信息與控制工程學院,吉林 吉林 132022;2.吉林化工學院 教師發展中心,吉林 吉林 132022)
《微型計算機原理與應用》課程(簡稱“微機原理”)作為高校工科電類相關專業的核心必修專業基礎課程,能夠幫助學生學習和理解計算機底層軟硬件結合部位的基本工作原理,對于學生深入理解計算機“思維”和“行為”方式具有重要的意義和作用[1-4]。近半個世紀以來,微處理器和芯片技術取得了跨躍式的飛速發展,微型計算機硬件系統從8位、16位發展到32位、64位機,計算機性能取得了巨大的提升。8086/8088系列CPU作為16位微型計算機的典型代表,雖然已經鮮見應用,但是其硬件架構和設計理念,卻一直是后續機型發展和提高的基礎,在高等教育教學中作為微機原理課程教學的首選機型,依然是學生和理解計算機底層基本工作原理的最佳選擇,在計算機相關專業教育教學過程中具有不可替代的重要作用和地位[5-8]。
自20世紀70年代芯片技術獲得成熟應用以后,逐漸確立了以CPU(中央處理單元)、內存儲器和IO接口單元為骨架的計算機系統結構,分立元件式計算機快速被以微處理器為核心的微型計算所取代[9-10]。如圖1所示,微型計算機系統硬件主要由CPU、內存和IO接口單元組成,CPU是微機系統的核心,管理和控制內存完成指令和數據的取存,協調和管理各IO接口芯片與外部設備的進行信息交換,并在CPU內部完成指令的解析、運算和控制功能。對學生而言,理解CPU與內存的相互依賴關系和數據交換過程,掌握CPU如何通過IO接口芯片完成對外部設備狀態的讀取和動作的控制,是微機原理課程教學環節的重中之重。

圖1 微機系統硬件結構圖
在C語言等各類計算機編程語言課程教學中,指針一直是學生學習的一個重點和難點[4],其原因在于學生對計算機硬件核心架構中CPU和內存的關系理解不夠透徹。在微機原理課程教學中,內存的管理以及CPU和內存之間相互配合共同完成程序指令的執行這一過程應作為重點進行講述。
譯碼器是數字電子技術課程教學中的一個基本知識點,在微機原理課程之前學生應該已經理解和掌握。本質上,內存可以簡單理解為一譯碼器和一系列存儲單元的組合,假定某內存儲器系統有8個存儲單元,每個存儲單元可存儲8個二進制位(一個字節),則其等效電路可通過圖2表示,電路中所有內存單元數據線按位并聯在一起,接入CPU側數據總線,每個內存單元的片選信號線接到譯碼器的輸出端,當譯碼器輸入端(地址線)000~111信號(地址信息),則有唯一一個內存單元被選中,即該內存單元數據線與CPU側數據總線保持接通,可以與CPU進行數據交換,而其他所有單元數據線與系統數據總線全部斷開。以此類推,當內存單元數量為16、32或1K字節時,譯碼電路端入端所需地址線數分別為4、5或10根。無論內存單元數量有多少,其地址線和數據線的連接關系,都可以通過圖2所示電路來簡化和理解。

圖2 內存等效示意圖
8086/8088系列CPU有20根地址線,可以假定這些地址線通過20-1M譯碼電路分別連接到1M個內存單元的片選信號上,因而8086/8088系列CPU最大可尋址1M內存空間。事實上,內存儲器芯片為了增加存儲密度、降低功耗和生產成本,實際采用的控制電路并非如此,但是在入門學習過程中,借鑒這一思路來幫助學生理解內存儲器的基本工作原理和工作過程,是一種簡單并且非常有效的方法。IO接口芯片與CPU的連接,同樣具有類似的關系。
總線操作主要講述微型計算機軟、硬件結合并完成不同芯片之間信息交互的過程,是微機原理課程中最基礎也最重要的知識點。對于剛剛學完數字電子技術課程的學生而言,在基本沒有可編程芯片電路設計和使用經驗的情況下,這一部分內容的學習是一個極大的挑戰。通過這一部分內容,能夠幫助學生有效理解計算機不同芯片之間的數據傳送以及計算機指令對底層硬件的驅動過程。
8086/8088系列CPU采用雙列直插DIP封裝,共有40個引腳,包括有20根地址線和16根數據線(8088是8根數據線),為了節省引腳數量,芯片設計采用了數據與地址引腳復用的技術。以8086CPU為例,如圖3所示,CPU在最小工模式下,通過地址鎖存器、總線收發器將地址引腳和數據引腳分隔出來,從而形成地址總線、數據總線及控制總線的三總線基本架構。在總線操作過程中,采用分時復用技術,在總線操作不同的時段,分別進行地址信息的發送和數據信息的讀寫,從而完成CPU與內存或IO接口芯片的數據傳送。

圖3 微型計算機系統三總線結構
假定寄存器當前值AX為1000H,DS為2000H,內存21000H單元存放的值為1122H,分析和區別“MOV [1000H],AX”和“MOV AX,[1000H]”指令執行時CPU主要引腳的變化情況。


(a) CPU寫總線操作

《微型計算機原理與應用》是高等教育工科電類專業的一門重要的專業基礎必修課程。由于計算機技術本身的復雜性和發展速度過快等原因,導致該門課程在實際教育教學過程中存在諸多的困難;對于元器件數量龐大而連接關系又極為復雜的芯片電路,學生即無法深入分析歸納,也難于想象和理解。采用化繁為簡的方式,運用化簡的功能電路來示意和表達復雜的電路工作關系,幫助學生學習和理解CPU、內存、總線以及譯碼等核心知識,的確是一種行之有效的方法,在實際教學過程中取得了較好的效果。