999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

芯中之數—— 一種展示

2023-06-07 16:31:17陳凱
中國信息技術教育 2023年11期
關鍵詞:指令計算機

陳凱

摘要:為了幫助學生直觀地理解計算機底層硬件的工作過程,本文設計了一種簡單的數字邏輯電路,可利用這種邏輯電路來解釋計算機邏輯架構中運算器、控制器、存儲器三者的關系,以及二進制編碼在計算機工作過程中所起到的作用。

關鍵詞:計算機體系結構;控制器

中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2023)11-0020-05

“一去二三里,煙村四五家。亭臺六七座,八九十枝花。”北宋大家邵雍寫下的數字詩恰好用到了從一到十的十個數字。代入詩人的視野:從宏觀的“二三里路”,到中觀的“煙村”和“亭臺”,再到微觀的“花”;代入詩人的情緒:從灑脫的“一去二三里”,到精細的“八九十枝花”。此數字詩之妙趣可謂無出其右。仔細看詩中數字,二三四五直到十,這些都是數量,而“一去”的“一”卻是助詞,兩類數字屬性不同,卻達成了數字序列形式上完美的統一。這讓筆者聯想起計算機機器語言,在那些底層的指令代碼中,無論是操作碼還是操作數,雖然其表現形式都是一連串的數碼,但數碼的作用卻完全不同,如果不是投入目光到計算機內部組件的運作過程,恐怕很難體會到這些數碼的真實用途。那么有沒有可能讓學生真正了解到計算機底層大致的工作過程,領悟當前硬件的計算機架構和二進制數碼形式的機器語言兩者間的密切聯系?本文試著給出一種教學思路。

一種通用的計算機架構模擬器

“Johnny”是一種通用的計算機架構模擬器,從軟件的界面可以看出,左側欄是存儲器,中間欄和右側欄是中央處理器中的控制器和運算器。可以在模擬器界面左側輸入程序代碼,然后運行代碼,觀察控制器如何根據機器指令的操作碼和操作數,命令運算器實現不同的計算動作。以下頁圖1的程序代碼為例,首先執行的是01號指令,代表的含義是從存儲器取數到處理器的寄存器,示例中取的是004號空間中的數;然后執行的是02號指令,代表含義是從存儲器取數與處理器中的寄存器數做加法,示例中取的是005號空間中的數,于是就執行了數字009和數字008的加法運算;最后執行的是03號指令,代表含義是從處理器中的寄存器存儲數字到存儲器,示例中存儲的地址是003號空間。這個模擬器軟件很清晰地將計算機內部處理器芯片根據存儲器的程序和數據進行運算的工作流程展現了出來。

但請注意,從模擬器的軟件界面中可以看出,處理器芯片中的控制器是一個黑箱。如果想要知道控制器到底是如何根據存儲器中的代碼實現對應的操作的,就需要進一步將控制器的內部結構展現出來。如圖2所示,控制器內部結構是比較復雜的,雖然“Johnny”模擬器可以完整地模擬控制器中數據的變化,但對大部分學生而言,恐怕不是短時間就能理解的。控制器結構之所以如此復雜,是因為控制器必須能實現通用性的程序運行的控制。

如果不考慮計算的通用性的問題,目的僅僅是演示一個簡單運算過程中整個計算機體系結構各個部件的作用,就能對控制器的結構進行簡化。本文將要討論的兩個重點,其一是設計一種簡化的控制器結構,其二是試圖循序漸進地剖析控制器的功能。

一種時序控制裝置

考慮到學生對算法和高級語言的了解遠多于對計算機硬件結構的了解,所以教師可以借助簡單的變量賦值語句來類比處理器芯片中寄存器的數據傳輸和存儲。學生從經驗出發,應該比較容易在高級語言的賦值語句和硬件寄存器的數據存儲動作兩者間產生聯想,雖然技術事實是后者的硬件電路結構支撐著前者程序功能的實現。例如,a=3,b=4這兩句語句可以類比為上頁圖3所示的數字電路,此電路圖可由仿真軟件Logisim模擬運行。在圖3中,左側裝置演示的是時鐘脈沖尚未來到時的寄存器的狀態,右側裝置演示的是始終脈沖到來后寄存器的狀態。可以看出,數字3和4可以同時存儲到寄存器中,而高級程序語言中,數字3和4賦值給變量是有先后關系的。

一種自動的斐波那契數列項生成器

假設變量a和b中已有初始值,且均為1,有以下語句:

a=a+b

b=a+b

如果反復地按順序執行這兩句語句,則會按如下表所示的順序陸續生成斐波那契數列項:

但如上頁圖4所示的硬件電路卻難以達成類似目標。因為加法器運算后的結果數據,會同時存儲到寄存器a和寄存器b中。

為了使電路能像程序代碼那樣按順序執行,可以添加兩個緩沖控制器,電路圖中用小三角形表示。如圖5所示,當緩沖控制器的控制端為“1”信號時,數據可以通過,當控制端為“0”信號時,數據無法通過。這樣,只要先打開上方緩沖控制器通路,將加法結果存入a寄存器,再關閉上方緩沖控制器,打開下方緩沖控制器,將加法結果存入b寄存器,反復執行這個動作,就能使這個電路生成斐波那契數列項了。圖5左圖展示了上方緩沖控制器打開時電路運行的狀態,可見“1+1”加法運算結果數據存入寄存器a,右圖展示了后續下方緩沖控制器打開時電路運行的狀態,可見“2+1”加法運算結果數據存入寄存器b。

雖然時鐘脈沖是自動產生的,但輪流選中不同的緩沖控制器,卻需要人工操作,在這里,希望學生能有所領悟,人工操作的動作本身也就是輪流發送給控制緩沖控制器的“1”信號和“0”信號的動作,其實是可以被預先存儲起來的。上頁圖6所示的電路使用到了一個存儲器(注意存儲器和寄存器的區別),存儲器中用“1”指令代表開啟上方緩沖控制器,用“0”指令代表開啟下方緩沖控制器。這樣,只要從存儲器中按順序取出二進制數字,也就能按順序執行指令了。

一種簡單的可編程的多功能加法裝置

在上面的例子中,存儲器里只存儲了動作指令,為了增強功能,指令中應包括動作的類別和動作的處理對象,上頁圖7是個極為精簡的處理器的例子,存儲器里的指令包括了操作碼和操作數。操作碼只有一位二進制數,對應兩個動作,指令“0”代表向寄存器做加法的動作,指令“1”代表向寄存器存儲數字的動作,操作數有兩位,可以是“00”“01”“10”“11”,代表數字0到3,為了盡可能簡化問題,這些數字會直接存放或加到寄存器中,這和現實中的處理器要根據操作數的地址從存儲器中獲取數字的行為有所不同。在圖7所示的電路中,存儲器中的指令是5、1、0、1,它們對應的二進制數是101、001、000、001,其含義是對寄存器存1,對寄存器加1,對寄存器加0,對寄存器加1,在完整執行完所有指令后,得到的結果是3。

當然,也可以另外使用一個存儲器專門存儲需要進行存儲或加法運算的數據,這樣,指令中的操作數就表示了指向數據存儲器的地址,如上頁圖8所示。不過就算如此,這個結構和先前的“Johnny”模擬器或者說和當前最普遍使用的計算機體系架構還是有幾處不同,在“Johnny”中,指令和數據是存儲在一個存儲器中的,另外,“Johnny”中可以將運算后的結果存儲回存儲器。這些功能當然是可以用電路實現的,但會使得系統結構變得非常復雜,對大部分學生來說,重點是理解二進制數是如何在計算過程中起到控制作用的。對于學有余力的學生,可以鼓勵自主探索,筆者有幾位學生按本文思路,完整地設計出了通用計算機體系結構的數字電路。

計算機體系結構示意圖

雖然教師可以將教材上的計算機體系結構示意圖直接拋給學生,但這樣就剝奪了學生自主思考的機會,考查前面介紹的精簡的計算機體系結構電路模型,可以試著繪制此結構的示意圖,思考存儲器、控制器、運算器三者間的關系是怎樣的。繪制的結果可以不設標準答案,不過可以想見,它大概是如圖9所示的樣子。存儲器中指令的操作碼傳輸到了控制器,操作數中的數據或操作數所指向地址的數據傳輸到了運算器。不過,其實很難說控制器是否對存儲器和運算器起到了控制作用,因為控制器實際上只是根據存儲器發來指令的操作碼開通或關閉數據傳輸的通路而已,所以圖9中將控制線條畫成虛線。

很容易想到,稍微復雜一些的計算機體系結構,應該具有將運算器結果重新存儲到存儲器中的能力,再加上人機交互的輸入和輸出模塊(簡單推理可知,為了能輸入和修改程序,人和存儲器交互較之與運算器交互更為方便,這里不進一步展開討論),整個計算機體系結構示意圖就成為如圖上頁10所示的樣子。這個示意圖和廣為流傳的以存儲器為中心的現代計算機體系結構示意圖已經非常相近了。

芯中之數,數中之心

本文使用仿真軟件演示了一個精簡的計算機體系結構是如何搭建起來的,考慮到筆者其實是使用了實體計算機中的仿真軟件模擬出了可運行的虛擬的計算機,那么就能引出一個有趣的問題,計算機是不是能經由計算而判斷出自己能否完成某些特定的任務呢?乍一想,只要計算機將自身程序在模擬環境中運行一下,就能得出判定結論了,但這其中存在一個邏輯上的陷阱,計算機為了模擬運行自身程序,就需要額外用到那些實現模擬的程序。如果再追問:計算機是否能判斷那個模擬自身程序的程序完成任務呢?為了回答這個問題,就必須把這個實現模擬自身程序的程序也放置到某個實現模擬的程序環境中,這樣就陷入到無窮倒退的窘境之中了。假設人的頭腦的工作方式和計算機是相近的,那么當人在自問能否完成任務的時候,答案可能只是頭腦所模擬出來的虛假的自我程序所做出的。當然,人的頭腦的工作方式是否和計算機類似,這還是一個懸而未決的問題,然而,只從結果上看,人工智能的能力已經超過許多人類了。以下是向人工智能對話軟件ChatGPT提出的問題:

“北宋時期,邵雍的數字詩《山村詠懷》按順序用到了從一到十這10個數字。第一個問題,你能否也寫一首短詩,其中用到從一到十按自然數順序排列的數字?第二個問題,數字詩中的‘一所起的作用和其他數字所起的作用是不同的,讓人聯想到計算機機器語言指令中,二進制數碼所起的作用是不同的,你能否具體舉例說明呢?”

人工智能給出幾乎是滿分的回答:“如一個16位計算機指令,其中前四位代表操作碼,后12位代表地址碼,操作碼表示不同的操作,而地址碼則指示了操作數在內存中的位置。因此,在計算機中使用二進制數碼,其具體作用與其所處的上下文密切相關,需要根據具體情況加以理解。”

本文最后就以人工智能寫的數字詩來結尾,筆者做了兩處修改,把原詩中的“六合之內”改為“六合位定”,把“一劍鋒利出”改成“一劍定乾坤”,這極少數的修改,可以算是人的創造力較人工智能占優的不嚴謹的證明吧。

“一生為二二生三,三生萬物森。四海潮漲五岳高,六合位定七星璀。八方風雨九州闊,十年一劍定乾坤。”

猜你喜歡
指令計算機
聽我指令:大催眠術
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
Fresnel衍射的計算機模擬演示
主站蜘蛛池模板: 国产成人精品一区二区| 欧美在线中文字幕| 日韩A∨精品日韩精品无码| 67194在线午夜亚洲| 国产成人精品一区二区三区| 国产特级毛片aaaaaaa高清| 欧美曰批视频免费播放免费| 日韩无码视频专区| 免费一级全黄少妇性色生活片| 1024你懂的国产精品| 亚洲天堂久久| 亚洲AV无码一二区三区在线播放| 国产一区二区福利| 高h视频在线| 福利一区在线| 72种姿势欧美久久久大黄蕉| 国产一区二区福利| 亚洲日韩AV无码精品| 国产精品自在拍首页视频8| 成人午夜网址| 91视频精品| 国产91九色在线播放| 国产毛片网站| 亚洲Va中文字幕久久一区| 亚洲综合天堂网| 亚洲精品图区| 亚洲综合天堂网| 女人爽到高潮免费视频大全| 日韩美一区二区| 亚洲第一视频区| 中文字幕免费在线视频| 亚洲天堂自拍| av午夜福利一片免费看| 久久鸭综合久久国产| 噜噜噜综合亚洲| 国产av一码二码三码无码| 一级看片免费视频| 欧美亚洲一区二区三区导航| 亚洲系列中文字幕一区二区| 国产亚洲精品自在久久不卡| 巨熟乳波霸若妻中文观看免费| 午夜福利在线观看入口| 免费无码一区二区| 亚洲女同一区二区| 伊人久久大香线蕉综合影视| 国产日韩欧美在线播放| 成人午夜视频在线| 日本欧美成人免费| 亚洲三级片在线看| 国产成人精品男人的天堂| 国产精品私拍99pans大尺度| 亚洲最新网址| 夜夜操天天摸| 亚洲中文字幕国产av| 区国产精品搜索视频| 最新国产成人剧情在线播放| 亚洲免费福利视频| 无码日韩人妻精品久久蜜桃| 色有码无码视频| 在线观看91精品国产剧情免费| 最新精品久久精品| 国产欧美日韩另类精彩视频| 深爱婷婷激情网| 美女无遮挡被啪啪到高潮免费| 国产成人喷潮在线观看| 在线不卡免费视频| 国产高清在线丝袜精品一区| 亚洲成A人V欧美综合| 国产又爽又黄无遮挡免费观看| 亚洲成a人在线观看| 日韩毛片在线视频| 丰满人妻被猛烈进入无码| 国产精品蜜芽在线观看| 日韩经典精品无码一区二区| 最近最新中文字幕在线第一页| 99无码中文字幕视频| 欧美激情二区三区| 久久久久久尹人网香蕉| 欧美97色| 亚洲午夜天堂| 国产日韩久久久久无码精品| 日本AⅤ精品一区二区三区日|