時序波形圖是計算機操作順序的圖形表示,深刻而嚴謹地表現(xiàn)了機器運行的精確節(jié)律。在非計算機專業(yè)的教材中,一般不涉及機器周期問題,原因可能是課程的決策者們認為這是個難題,又沒有多大用處。但是,經過多年的實踐,我認為,了解機器周期的作用對于理解計算機工作的嚴格性是有益的,讀懂時序信號的波形圖對于了解計算機運行的諧調性是有幫助的。更加令人欣慰的是,這兒可以作為學習計算機優(yōu)良作風時最恰當的切入點。下面是我構思“存儲器讀寫時序波形圖”教學的過程、心里的活動和觀念的提升。
問題的提出
如圖1所示,在CPU從存儲器讀入數據或向存儲器寫出數據時,有的動作是CPU發(fā)出的,有的動作是存儲器發(fā)出的;有的信號是控制信號,有的信號是數據信號,有時讀取指令,有時讀取數據,有的是單向信號,有的是雙向信號。情況錯綜復雜,工作千頭萬緒。在此困難的情況下,是機器周期挺身而出,象一把嚴格、精密的梳子,把千頭萬緒的工作梳理得井井有條。機器周期的長短取決于非常精確的時鐘信號的頻率,在時鐘信號的約束下,CPU復雜的讀寫操作才得以按部就班、有條不紊地進行。
計算機運行時所呈現(xiàn)出來的嚴謹而諧調的特性是值得我們學習的。所以,應該深入淺出地把時鐘周期、機器周期和時序波形圖等內容寫入到《計算機應用基礎》教材之中,不但可以使學生掌握至關重要的基礎知識,還能夠對學生開展思想作風方面的教育,體現(xiàn)計算機的大文化教育觀。
設計的思路
怎樣使教材做到既深入又淺出呢?第一,本著知識含量不減少,教學難度要降低的原則來組織“機器周期”和“時序波形圖”的教學內容。舍棄原教材中出現(xiàn)在波形圖中的一些控制信號,如“M/IO”信號的作用是控制對存儲器操作還是對外設操作,出現(xiàn)“ADS”信號表示總線上的地址信號和控制信號已經有效,省略這些信號可以簡化波形圖中的信號,不會對CPU訪問存儲器的工作過程產生過多的影響。第二,把原圖中用符號表示的各種信號的名字用中文表示,并盡量通俗易懂。如原來用“W/R”表示讀寫控制信號,并且用字母上面的橫線表示低電平有效。更改后用“讀/寫控制”替代“W/R”,這樣有利于理解和記憶。第三,在解釋各種信號在時鐘周期的約束下流動時,一定要說清信號的來龍去脈,使整個信號過程清晰明了。如“讀/寫控制”信號來自CPU,控制的對象是存儲器。而“完成信號”是存儲器向CPU發(fā)出的應答信號。
根據這種思路,應該首先整體描述CPU訪問存儲器是經歷的3個機器周期,描述的線索是橫向進行的;還應該介紹地址信號及其與數據信號的位置關系,線索是縱向的;然后,必須交代兩個控制信號的作用,可以采用比喻的方法來化簡問題的難度;接下來是攻克教學難點問題,即解釋插入等待周期的原因和做法;最后,借助于讀取數據和寫入數據的過程,應該對時序圖中涉及到的5種信號(1個地址信號、1個數據信號,3個控制信號)及其相互之間的關系做出全面、系統(tǒng)的介紹,目的是將各種信號串聯(lián)起來理解。同時得出與標題相吻合的結論:只有在時鐘周期的作用下,計算機才得以有條不紊地處理千頭萬緒的數據。
梳理的過程
在教學中,應該對機器在時鐘脈沖控制下工作的過程,作出形象的、詳細的描述。必要時還可以借助于通俗的示意圖來說明嚴謹的原理性問題,使計算機的節(jié)律特性更加突出。下面,結合如圖2所示的時序圖,講述CPU訪問存儲器的過程,也可以看作是機器周期梳理各種信號的過程。一般情況下,一個機器周期包括T1和T2兩個時鐘周期,在T1中把各種外來信號都記憶在存儲器的譯碼或控制電路中,在T2結尾時才正式對有用的數據進行操作,或是從存儲器傳送到CPU,或是從CPU傳送到存儲器。下面,按照自上而下、從左向右的順序來分析“CPU讀寫存儲器的時序圖”。
了解梳子自身。從圖中可以看到,CPU訪問存儲器的整個過程經歷了3個機器周期和一個空閑周期。第1個周期的任務是CPU從存儲器中讀取指令,第2周期是CPU從存儲器中讀取數據,第3周期是CPU向存儲器中寫入數據。這個基本過程不難理解,問題是為什么在第3個機器周期中出現(xiàn)了3個時鐘周期(一個T1、兩個T2)呢?這個教學難點問題稍后再解決。最后是一個空閑周期。
梳理地址信號。我們接著向下看,既然CPU要從存儲器中讀取指令信息,首先應該把存放指令和操作數的存儲器地址送到地址總線上來,時序圖的第2行就是這種地址信號。被訪問存儲器的地址信息一旦出現(xiàn)在總線上,在沒有新的地址信號出現(xiàn)時,CPU與該存儲器之間開通的數據大道一直暢通無阻,直到讀寫操作結束后,這個通道才禁止通行。那么,為什么位于時序圖最下面一行中的數據讀入操作要比地址信號晚了一段時間呢?既然數據大道開通了,為什么不能同時讀取存儲器中的數據呢?產生這個問題的主要原因是“一個腦袋不能同時考慮幾個問題”、“一只手不能同時檸幾個螺絲”,在宏觀上我們看見的“計算機飛快運行”的現(xiàn)象,其實是好多進程排了好長的隊伍,秩序井然地等待CPU一件一件地處理。還有一個次要原因,那就是電路傳輸的延遲特性,好比貨物從倉庫運到交貨處,哪有不耽擱一點時間的。
了解控制信號。下面介紹兩個重要的控制信號。一個是“讀/寫控制”信號,它的作用是允許在一條很窄的馬路上雙向行駛車輛,但需要由紅綠燈來控制行駛的方向:紅燈亮了允許車輛從東向西行駛,綠燈亮了允許車輛從西向東行駛。聽起來有些荒唐,交通再緊張也不至于這樣來處理。但是,計算機就是這樣處理的,雙向數據傳輸是當今計算機的缺點,將來有可能實現(xiàn)讀取數據和寫入數據都會有自己獨立的傳輸通道,那時計算機的運行速度可能要大幅度提高,但要以硬件的投入為代價。在原來的教材中,用“W/R”來表示“讀寫控制”信號,在“R”上面還有一條橫線,表示在這條控制線是低電平時可以把存儲器的數據讀取到CPU中來。所以,在這條波形中,在所有向下凹陷的時段內都可以進行“讀”操作,反之,在向上凸起的時段內都可以進行“寫”操作。由于凹凸是交替進行的,所以不會在單行線上發(fā)生“撞車”事故。另一個控制信號是“數據/指令”,當此信號為低電平時允許讀取指令,高電平時允許讀寫數據。這是針對機器指令的結構設計的,因為在一條指令中有命令字段和操作數字段,執(zhí)行一條指令時必須先掌握“工藝”,即讀取指令碼,然后再提取“材料”,即獲得操作數。
插入等待周期。接下來的問題是解決前面留下來的教學難點,即“插入等待周期”的問題。倒數第2行的“完成任務”信號是存儲器與CPU的應答信號。當信號出現(xiàn)低電平時,意味著存儲器已經完成了CPU教給的任務,如已經把CPU要的數據送到了數據總線上,或已經收到了CPU送來的數據等。為什么在第3個周期中有兩個T2呢?本來在T2的末尾應該向CPU發(fā)出“完成任務”信號,但由于數據比較長沒能按時寫入到存儲器中,又不能半途而廢。因此,存儲器馬上在T2后面又插入了一個等待T2,要求CPU等待一個時鐘周期,CPU及時發(fā)現(xiàn)了這個問題,延長了地址信號及其他相應的控制信號。當然,如果一個不行,還允許插入多個等待信號,直到完成寫入數據的任務為止??吹綑C器的各個部件之間都能夠這樣如此的配合,想一想由于配合不當與同事爭論得面紅耳赤時,確實感覺到慚愧和臉紅。
捕捉數據信號。時序圖中的最后一個信號是“數據信號”。當“萬事俱備,只欠東風”時,數據信號出現(xiàn)在數據總線上了。讓我們從左向右來看一下,發(fā)生“讀”和“寫”操作時,條件具備了嗎?這時,CPU在干什么?存儲器又在干什么?首先分析第1個“讀取”指令的操作是否符合條件。在第一個機器周期的T1時段中,地址信號已經穩(wěn)定出現(xiàn),“讀/寫控制”為低電平有效狀態(tài),“數據/指令”也處于低電平有效狀態(tài),但數據總線上空空如也,存儲器還沒有把數據送到總線上,所以,“完成任務”信號呈現(xiàn)高電平,等待“東風”吹起。在T2的后半部,數據信號穩(wěn)定的出現(xiàn)在數據總線上了,當T2的脈沖信號消失的千鈞一發(fā)之際(上升沿觸發(fā)),數據被CPU取走了。為什么在那么窄的“沿”上交接數據呢?主要是基于“防止干擾信號混進來”,就象把人放進來后馬上關門,以防蚊子、蒼蠅混進來一樣。第2個機器周期是讀數據,除了“數據/指令”控制信號由低電平變?yōu)楦唠娖?表示可以對數據操作了)之外,其他現(xiàn)場條件以及讀取過程與第一個機器周期完全相同。第3個寫入數據的周期將實現(xiàn)數據從CPU向存儲器方向的傳輸,該機器周期占用了3個時鐘周期,除了“讀/寫控制”信號變成該高電平(表示可以進行寫操作了)之外,其他控制及數據傳輸過程與前兩個機器周期完全相同。
總線少時休息。最后還要對“空閑周期”做簡單的說明??臻e是針對總線爾言的。如果把總線比作交通道路,當道路上沒有車輛通過的時候,就可以把這段時間看作是空閑階段。有人會產生疑問:由于“空閑”的干擾,會不會使計算機亂了陣腳呢?只要用列隊時的“原地踏步”來形容總線周期的“空閑”現(xiàn)象就不難理解,空閑的時間再長,步調還是一致的?!暗却焙汀翱臻e”又一次見證了計算機原理與人類思維之間千絲萬縷的聯(lián)系。
理性的思考
怎樣深入挖掘計算機的文化內涵,融合到教學之中為學生的素質提高服務呢?在計算機的存儲器讀寫時序波形圖中就潛在著深刻而通俗的思想和作風方面的教育素材。“時序波形圖”是計算機的重要元素,在它井井有條工作的背后上演著對千頭萬緒的作業(yè)進行科學梳理的精彩劇目。如何讓理論問題事件化?如何讓技術問題生活化?如何使機器的問題人性化?如何揭開CPU訪問存儲器的工作內幕?如何讓學生感受到計算機是井井有條工作的典范?這些都是設計“存儲器讀寫時序波形圖”教學方案時應該重點考慮的問題。
在計算機外部中斷原理中也滲透著靈活和有序相配合的思想,無論當前的工作多么繁忙,只要有比自己級別高的其他工作要求,必須暫時放下手中的工作去響應;無論被中斷的時間有多長,中斷服務程序多么復雜,一旦完成臨時性的任務,仍然要回到斷點之處,認認真真地、按部就班地繼續(xù)做日常的工作,這就是來源于科學家意識中的機器作風。計算機教師不但要教好計算機課,還要邊教邊學,學習計算機的嚴格自律、一絲不茍、有條不紊的工作作風,這是人類永遠學不完的教材。