国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

思維中的計算機

2022-05-19 08:11陳凱
中國信息技術(shù)教育 2022年9期
關(guān)鍵詞:直升飛機體系結(jié)構(gòu)部件

陳凱

在有些時候,為了要判斷某個論斷是否為真,人們并不需要實際去觀察或?qū)嶒灒恍枰劳邢胂髞韯?chuàng)建一個特殊的情境,將這個論斷放置到情境中加以考察,判別它是否在所有的可能性中都能成立。以上方法被稱為思想實驗。例如,伽利略為反駁亞里斯多德關(guān)于“越重的物體下落越快”觀點的比薩塔落球?qū)嶒灳褪且粋€著名的思想實驗的例子,即便不實際測試,而只是經(jīng)由邏輯推理,就可以知道,如果不同重量的球在同一高度下落卻不同時落地,會產(chǎn)生邏輯上的矛盾。

類似地,可以借助思想實驗的方式,在思維的想象空間中建立起某個計算裝置,通過這樣的方法對計算機的能力進行考察。筆者之所以做這方面的探索,是因為發(fā)現(xiàn),學生在面對存儲程序計算機的體系結(jié)構(gòu)的時候,可能會采取兩種不同的態(tài)度:一是直接將關(guān)于此體系結(jié)構(gòu)的知識,如五大邏輯部件、邏輯部件的作用、邏輯部件之間的關(guān)系等作為現(xiàn)成的知識加以接受;二是以批判性的目光看待這個體系結(jié)構(gòu),對何以有如此結(jié)構(gòu)或者是否可能有其他結(jié)構(gòu),或者當前絕大多數(shù)計算機為何采用此體系結(jié)構(gòu)的原因,自主產(chǎn)生出疑問。根據(jù)筆者的經(jīng)驗,課堂上圍繞以上問題主動發(fā)問者實屬罕見,但若發(fā)放調(diào)查問卷,詢問學生是否在學習過程中曾經(jīng)自主產(chǎn)生過——哪怕只是在很短暫的念頭中產(chǎn)生過——諸如此類疑問,肯定的回答大約占總調(diào)查人數(shù)的三分之一。但教師面臨的困難是,若真有學生提出關(guān)于計算機體系結(jié)構(gòu)的疑問,確實很難在有限的時間里加以回答,因為對這些問題的回答涉及太多學生未曾接觸到的計算機底層的技術(shù)細節(jié)。正因為如此,要想在計算機體系結(jié)構(gòu)這一部分教學中落實思維培養(yǎng)的目標,障礙很大。筆者試圖以思想實驗作為突破以上障礙的某一種可能的工具。

● 簡單的排序計算裝置——物理和邏輯的雙重保證

計算裝置工作的可行性需要得到物理的和邏輯的雙重保證。在物理方面,某種機械計算裝置中機構(gòu)的運轉(zhuǎn),無論是齒輪、連桿、金屬滾珠的運動,還是電子計算裝置中電信號的保持、反轉(zhuǎn)、按規(guī)則變化等,都在自然齊一律的保證之下;在邏輯方面,如果規(guī)定某種信號狀態(tài)為1,那么它就不會是0,如果規(guī)定某種運算是與邏輯運算,那么它不會自行變成或邏輯運算。有了物理和邏輯的保證,就能夠在頭腦中以思想實驗的方式來虛構(gòu)出某個計算裝置。例如,設計某個裝置,能將一系列體積不同的球,按其體積從小到大進行排序,可行的一種方法是:將這些球安置在略有傾角的滾動槽上緩慢滾落,槽上每隔一段距離,就開有小洞,越是靠上方的洞越小,越是靠下方的洞越大,所以,體積小的球會先行從洞中掉落,快速進入最下面的收集槽,而體積越大的球,就越慢進入到收集槽,最終,收集槽中的球是按體積從小到大排列的。以上過程,僅憑頭腦想象,就可認為是可行的。并且,在想象中還能發(fā)現(xiàn)這個裝置的弱點,只有當球的體積差異很大時,裝置才是可靠的,否則,球有可能在滾動中,卡入到比自己略小一些的洞口中上下不得。當然,還能設計出其他樣子的自動裝置方案,來給不同體積的球排序,這可以布置為一項開放且有挑戰(zhàn)性的任務。

● 純粹邏輯的簡單計算裝置

本文主要是想討論,在邏輯的保證下如何構(gòu)造思維中的計算裝置,而暫時擱置物理上的保證。這當然不是說物理現(xiàn)實不重要,其中的一個原因是為了在有限的教學時間內(nèi)有更集中的聚焦點。另一個很重要的原因是,當今人們所使用的計算裝置具有高度的虛擬化的特點,即便是在簡單的高級語言的程序表達式中,也難以看出計算機底層晶體管具體的工作過程。不妨想象一下,人們既可以在虛擬現(xiàn)實中以真實世界中建造計算機的方式來模擬建造計算機,當然也可以在虛擬現(xiàn)實中以不遵守現(xiàn)實物理規(guī)律的方式來建造計算機(這其實還更簡單),但兩者都必須遵守邏輯上的規(guī)則。

那么,在純粹的思維空間中,一個最簡單的計算裝置應當是怎樣的?它應該有幾個組成部分?可以讓學生在五大邏輯部件的系統(tǒng)結(jié)構(gòu)圖上大膽對部件進行裁剪,看看在哪種情況下,剩下的部件還能組建成一個有計算功能的裝置。這是一個開放性的問題,大部分學生的回答是一致的,認為這個計算裝置至少應該有輸入、運算和輸出三部分。不妨在頭腦中想象某個布滿按鍵,但按了之后卻全無反應的盒子,或者想象某個布滿印有數(shù)字按鍵的盒子,按下什么數(shù)字則照樣顯示這個數(shù)字,又或者想象某個只管自顧自顯示數(shù)字的盒子。以上這些裝置可以歸為裝飾藝術(shù)品,但顯然不能用于計算。

這里有一個功能簡單的計算裝置的例子,某個用0和1兩種數(shù)字組成的點陣圖像,為了觀看方便,將數(shù)字0隱而不現(xiàn),這樣就可以看出這是一張直升飛機的圖像,如圖1所示。如果這些數(shù)字作為輸入數(shù)據(jù),而運算部件所做的是將所有的“01”轉(zhuǎn)換為“10”,那么輸出的數(shù)據(jù)所顯示的就是一個“向左移動”一格位置的直升飛機,如圖2所示。為了能順利地實現(xiàn)這個效果,每個數(shù)字1之間都至少夾著一個0。

可以假設,在符號串上方有許多個檢測符號串的掃描器,一旦發(fā)現(xiàn)符號串是“01”,就將其變成“10”,假設這個掃描器既能橫向掃描,也能縱向掃描,那么就能為直升飛機創(chuàng)設出上下移動的效果。至于這個功能具體是如何實現(xiàn)的,暫時不需要去深究,絕大多數(shù)學生認可這個功能是能夠被制造出來的。

即便是這種將符號串中所有的“01”轉(zhuǎn)換為“10”的簡單的計算裝置,當仔細分析它的輸入與輸出時,也能發(fā)現(xiàn)其中蘊藏著超出預想的復雜性??紤]要實現(xiàn)讓直升飛機不停地向左移動的功能,最簡單的辦法就是將輸出的結(jié)果重新反饋到輸入。但是,當人們這樣做的時候,又該如何定義什么是輸入、什么是輸出?對于每一次執(zhí)行轉(zhuǎn)換的動作來說,前一時刻的數(shù)據(jù)是輸入,轉(zhuǎn)換后的數(shù)據(jù)是輸出;但對于期望實現(xiàn)直升飛機移動的動畫效果的人來說,最初時刻的數(shù)據(jù)是輸入,一系列變化中的圖像效果是輸出。在控制論中,對于一個計算部件,將其放置在整個閉環(huán)的反饋系統(tǒng)中分析,與將其從整體系統(tǒng)中分離僅作為一個局部的組件來分析,其輸入和輸出是有很大區(qū)別的。如果不結(jié)合具體任務,而只是單純地觀看計算裝置的系統(tǒng)結(jié)構(gòu)圖,是很難發(fā)現(xiàn)這些微妙的區(qū)別的。

● 簡單計算裝置中的存儲和控制

對上述所說的僅有輸入、運算、輸出三個部件的簡單計算裝置繼續(xù)發(fā)問:這個裝置中真的沒有用于存儲的部件嗎?假設圖像點陣的輸入依靠的是某種開關(guān)矩陣,當觸碰矩陣中某個位置的開關(guān),相應位置的圖像點陣的值就發(fā)生變化,顯然,人沒有足夠多的手指去觸碰所有能讓直升飛機圖像顯現(xiàn)出來的開關(guān),所以當觸碰了開關(guān)后,相應位置的圖像點陣的值就應該被保持在那里,這種保持其實就是一種存儲。同樣地,對于輸出運算結(jié)果的部件來說,也需要能夠在一定時間內(nèi)保持點陣的狀態(tài)。這樣看來,這個簡單裝置中的輸入和輸出的部件,其實都兼有存儲的功能。人們在網(wǎng)絡上搜索存儲程序計算機體系結(jié)構(gòu)圖的時候就會發(fā)現(xiàn),有些結(jié)構(gòu)圖是以存儲器為中心繪制的,有些是以運算器為中心繪制的,這兩種繪制方式其實都只是展現(xiàn)出了計算機動態(tài)工作過程中的某一個角度的剖面。

以直升飛機的移動為例,如果要產(chǎn)生出一種連續(xù)移動的效果,就需要將輸出結(jié)果反饋到輸入。在頭腦中構(gòu)建一個簡單的反饋裝置,就能夠明白存儲和控制部件存在的必要性。假設某個桿子上裝了某種滑塊,滑塊只有“上”和“下”兩種狀態(tài),而運算部件唯一的功能就是將滑塊位置滑動到其原來相反的方向,考慮用戶期望的運算效果是讓滑塊不斷從上到下、從下到上往復運動,如果直接將輸出反饋到輸入(如上頁圖3),即便是在頭腦中想象一下,也會發(fā)現(xiàn)這在邏輯上是不成立的。

引入存儲和控制部件,就能夠讓裝置的自動運行在邏輯上成為可能。當反轉(zhuǎn)滑塊的運算完成后,由控制部件開通復制通道A,將剛才的輸出狀態(tài)傳遞給臨時存儲部件(注意,這里不討論具體的物理實現(xiàn),實際上需要設計某個裝置來保證狀態(tài)的單向傳遞),接下來,是關(guān)閉復制通道A,開啟復制通道B,將狀態(tài)傳遞給計算裝置的輸入部件。雖然上頁圖4中沒有特意畫出那個執(zhí)行開關(guān)A和B通道的控制部件,但大家很容易認可它是必須存在的。

● 能產(chǎn)生不同效果的簡單計算裝置

有一個問題很值得思考:上述計算裝置能實現(xiàn)的效果是單一的,如直升飛機的圖案只能向左移動,那么,怎么讓圖案向右移動呢?大家最容易想到的就是將規(guī)則變動一下,改成將所有的“01”轉(zhuǎn)換為“10”,但假設計算裝置是一個預先制造好的實體,修改轉(zhuǎn)換規(guī)則,就等同于要求修改實體結(jié)構(gòu)??紤]人們希望有這樣一個制造好的規(guī)則不再變動的裝置,可以自由決定直升飛機究竟是向左移動還是向右移動,當然,其中的符號變換規(guī)則可能會有許多條,也會涉及更多除了“0”和“1”之外的符號,也可能每一次變換符號的數(shù)量超過兩個(如把“abc”轉(zhuǎn)換為“efg”)。但這些轉(zhuǎn)換過程一定是嚴格按順序循環(huán)執(zhí)行的。另一個需要說明的情況是,裝置在運行過程中,必然會有許多必要的中間狀態(tài),但只要最終在某個時刻能實現(xiàn)圖像移動的效果就可以了。根據(jù)以上條件,請在頭腦中想象一下,這個裝置是否可行,甚至還可以在思維空間中模擬一下,究竟如何做才是可行的。對這個問題的調(diào)查結(jié)果顯示,大部分學生認為,實現(xiàn)多種移動效果是可行的??赡艿姆椒ó斎挥卸喾N,其中有一種方案很少被人想到,所以這里特別提一下,那就是將二維的數(shù)據(jù)擴展到三維,在代表圖像的數(shù)據(jù)層上方,覆蓋上一層代表操作動作的數(shù)據(jù),而符號串的變換也需要在三維的數(shù)據(jù)空間中進行。

可以繼續(xù)將問題變得普遍化一些,想象一些輸入的數(shù)據(jù)中,除了真正用來做運算的數(shù)據(jù)之外,其中某些數(shù)據(jù)起到了指定做何種運算的作用。根據(jù)上述一系列的想象,學生們基本上都認可,在輸入的數(shù)據(jù)中也可以混雜有代表某種指令的特殊的數(shù)據(jù),這樣就能夠指定讓運算部件對數(shù)據(jù)(不包括代表某種指令的數(shù)據(jù))做某幾種特定變換工作中的一種。然而從中也可以看出,將用作指令的數(shù)據(jù)以及用作對數(shù)據(jù)中間變化狀態(tài)進行記錄的數(shù)據(jù)一起混雜于輸入和輸出的數(shù)據(jù)中,對于使用計算裝置的用戶而言,是十分不友好的,這也是要在計算裝置中引入存儲器的另一個原因。

可以進一步引出的問題是,是不是存在這種可能,在輸入的數(shù)據(jù)中混雜有一系列特殊的指令,能夠指定讓運算部件對數(shù)據(jù)做任意種可能的變換工作。這個問題實際上是問,是不是存在某種程序用以實現(xiàn)通用性的任務。結(jié)論當然是存在,關(guān)于為何這種通用性程序存在的解答,最早來自圖靈的證明,證明中不僅用到了純粹用思想構(gòu)建的圖靈機,還用到了特定的數(shù)學工具,以及關(guān)于利用圖靈機來模擬圖靈機的可行性的精彩推論。盡管在有限的課時中可能難以詳述圖靈機的工作原理,但經(jīng)由以上一系列的純粹思維空間中的想象與推理,學生們就能夠領(lǐng)會到圖靈所做工作的巨大價值。

猜你喜歡
直升飛機體系結(jié)構(gòu)部件
蜻蜓與飛機
基于思維導圖的化學知識體系結(jié)構(gòu)構(gòu)建
軟件通信體系結(jié)構(gòu)(SCA)理念下的無線通信系統(tǒng)探究
一種陀飛輪表的雙秒輪結(jié)構(gòu)
現(xiàn)代漢字的兩種分析法與國家文字規(guī)范(四)
古文字中“口”部件的作用研究
認知無線網(wǎng)絡中的重點技術(shù)和研究
將Widget小部件放到
羊羊來了
水上直升飛機