前言
?計(jì)算機(jī)發(fā)展史
其實(shí)計(jì)算機(jī)在很早以前就處處是它的影子:
?計(jì)算機(jī)發(fā)展的主要?dú)v程
- 機(jī)械計(jì)算時(shí)代:在19世紀(jì)和20世紀(jì)初期,人們使用機(jī)械裝置進(jìn)行計(jì)算。最早的計(jì)算機(jī)由查爾斯·巴貝奇設(shè)計(jì),稱(chēng)為“分析機(jī)”。但是,這種機(jī)械計(jì)算機(jī)很大,準(zhǔn)確度也不高。
- 電子管計(jì)算時(shí)代:在20世紀(jì)30年代,電子管的發(fā)明引領(lǐng)了計(jì)算機(jī)的發(fā)展。美國(guó)的阿塔納索夫-貝瑞計(jì)算機(jī)(Atanasoff-Berry Computer)被認(rèn)為是第一臺(tái)真正的電子計(jì)算機(jī)。而艾倫·圖靈設(shè)計(jì)的英國(guó)Bombe解密設(shè)備也是采用電子管技術(shù)。
- 晶體管計(jì)算時(shí)代:20世紀(jì)50年代,晶體管取代了電子管,成為新一代計(jì)算機(jī)的核心部件。這使得計(jì)算機(jī)變得更小、更快、更可靠和更經(jīng)濟(jì)。IBM公司的System/360系列計(jì)算機(jī),是晶體管計(jì)算機(jī)的杰出代表。
- 集成電路計(jì)算時(shí)代:20世紀(jì)60年代,集成電路的發(fā)明帶來(lái)了計(jì)算機(jī)革命。集成電路是將多個(gè)晶體管、電阻器、電容器等元件集成在一起形成的微型電路板,可以大幅度壓縮計(jì)算機(jī)的體積和成本。DEC公司的PDP-8和IBM公司的System/370系列計(jì)算機(jī)是典型的使用集成電路技術(shù)的計(jì)算機(jī)。
- 微處理器計(jì)算時(shí)代:20世紀(jì)70年代,Intel公司推出了第一款微處理器芯片(Intel 4004),這標(biāo)志著個(gè)人計(jì)算機(jī)的誕生。微處理器是一種由CPU、控制單元和存儲(chǔ)器組成的芯片,它使得整個(gè)計(jì)算機(jī)系統(tǒng)可以集成在一個(gè)小型設(shè)備中。Apple II和IBM PC是微處理器計(jì)算機(jī)的代表。
- 個(gè)人計(jì)算機(jī)時(shí)代:20世紀(jì)80年代,個(gè)人計(jì)算機(jī)開(kāi)始走向成熟。IBM PC及其兼容機(jī)成為最主流的個(gè)人計(jì)算機(jī),Macintosh則成為了另一種受歡迎的操作系統(tǒng)。計(jì)算機(jī)逐漸普及到家庭和辦公場(chǎng)所,從此改變了人們的工作和生活方式。
- 互聯(lián)網(wǎng)時(shí)代:20世紀(jì)90年代,互聯(lián)網(wǎng)的普及和發(fā)展徹底改變了計(jì)算機(jī)的應(yīng)用方式。人們可以通過(guò)互聯(lián)網(wǎng)進(jìn)行電子郵件、在線(xiàn)購(gòu)物、社交媒體等活動(dòng),計(jì)算機(jī)已經(jīng)成為人們生活和工作中不可或缺的一部分。
- 移動(dòng)計(jì)算時(shí)代:21世紀(jì)以來(lái),移動(dòng)計(jì)算開(kāi)始崛起。智能手機(jī)和平板電腦的出現(xiàn),使得人們隨時(shí)隨地可以進(jìn)行各種計(jì)算和通訊活動(dòng)。此外,云計(jì)算技術(shù)也逐漸發(fā)展壯大,為人們提供更方便、高效、安全的計(jì)算資源。
人類(lèi)對(duì)計(jì)算的需求,驅(qū)動(dòng)我們不斷的發(fā)明、改善計(jì)算機(jī)。目前這個(gè)時(shí)代是 “ 電子計(jì)算機(jī) ” 的時(shí)代,發(fā)展的 潮流是:更快速、更穩(wěn)定、更微型。
?圖靈與馮諾依曼
說(shuō)起計(jì)算機(jī)我們首先要了解的就是這兩位祖師爺,一位是從理論上奠定了計(jì)算機(jī)基礎(chǔ),另一位是在發(fā)明電子計(jì)算機(jī)中所起到關(guān)鍵性作用,被西方人譽(yù)為“計(jì)算機(jī)之父”。
圖靈
?誰(shuí)年輕時(shí)不是一個(gè)帥哥呢???
?人物經(jīng)歷
艾倫·麥席森·圖靈(Alan Mathison Turing)是一位英國(guó)數(shù)學(xué)家、邏輯學(xué)家和密碼學(xué)家,被譽(yù)為計(jì)算機(jī)科學(xué)之父。他的一生經(jīng)歷充滿(mǎn)了傳奇色彩。
1912年6月23日,圖靈出生在英國(guó)的倫敦,是一個(gè)富有的家庭的兒子。在小時(shí)候,他就表現(xiàn)出了超群的智力和對(duì)數(shù)學(xué)的天賦。他自幼勤奮好學(xué),閱讀了大量的數(shù)學(xué)書(shū)籍和論文,十分喜歡研究數(shù)學(xué)問(wèn)題。
1929年,圖靈考入劍橋大學(xué)國(guó)王學(xué)院學(xué)習(xí)數(shù)學(xué),并在1931年獲得了數(shù)學(xué)榮譽(yù)學(xué)士學(xué)位。隨后,他繼續(xù)在劍橋大學(xué)攻讀博士學(xué)位,并在1936年發(fā)表了《可計(jì)算數(shù)及其在問(wèn)題上的應(yīng)用》一文,提出了“圖靈機(jī)”的概念,這是計(jì)算機(jī)科學(xué)中一個(gè)非常重要的理論基礎(chǔ)。
到了二戰(zhàn)期間,圖靈加入了英國(guó)情報(bào)局,負(fù)責(zé)破解德國(guó)的密碼系統(tǒng)。他主導(dǎo)開(kāi)發(fā)了一種名為“圖靈機(jī)器”的機(jī)械設(shè)備,可以自動(dòng)破解德國(guó)軍方的密電。這項(xiàng)工作對(duì)于英國(guó)在二戰(zhàn)期間的勝利起到了重要的作用。
戰(zhàn)爭(zhēng)結(jié)束后,圖靈繼續(xù)在劍橋大學(xué)從事計(jì)算機(jī)和人工智能的研究。他是第一個(gè)提出“人工智能”一詞的人,也是計(jì)算機(jī)科學(xué)中最有影響力、最具創(chuàng)造性的人物之一。不幸的是,他的生命經(jīng)歷被彩虹情色事件打破。1952年,他因?yàn)樯嫦油詰俣欢ㄗ铮黄冉邮芎蔂柮芍委?,并失去了?guó)家安全機(jī)構(gòu)的任職資格。在此背景下,1954年6月7日,圖靈在自己家中去世,死因是氰化鉀中毒,享年42歲。
直到20世紀(jì)70年代,才有越來(lái)越多的人們開(kāi)始重視圖靈的成就和貢獻(xiàn)。1983年,英國(guó)政府正式宣布向圖靈道歉,稱(chēng)他是一位“偉大的數(shù)學(xué)家”,并對(duì)他所受到的不公當(dāng)場(chǎng)表示遺憾。1999年,在《時(shí)代周刊》評(píng)選的“20世紀(jì)最杰出100人”名單上,圖靈名列第46位。
總的來(lái)說(shuō),圖靈是一位偉大的數(shù)學(xué)家、邏輯學(xué)家和密碼學(xué)家,他的成就和貢獻(xiàn)影響了整個(gè)計(jì)算機(jī)科學(xué)領(lǐng)域,并為人工智能的發(fā)展奠定了基礎(chǔ)。他的一生經(jīng)歷雖然注定有些不幸和戲劇性,但是他所留下來(lái)的精神和思想,將永存于計(jì)算機(jī)科學(xué)史上。
?圖靈機(jī)
圖靈機(jī),又稱(chēng)圖靈計(jì)算機(jī)指一個(gè)抽象的機(jī)器,于1936年提出的一種抽象的計(jì)算模型,即將人們使用紙筆進(jìn)行數(shù)學(xué)運(yùn)算的過(guò)程進(jìn)行抽象,由一個(gè)虛擬的機(jī)器替代人類(lèi)進(jìn)行數(shù)學(xué)運(yùn)算。它有一條無(wú)限長(zhǎng)的紙帶,紙帶分成了一個(gè)一個(gè)的小方格,每個(gè)方格有不同的顏色。有一個(gè)機(jī)器頭在紙帶上移來(lái)移去。機(jī)器頭有一組內(nèi)部狀態(tài),還有一些固定的程序。在每個(gè)時(shí)刻,機(jī)器頭都要從當(dāng)前紙帶上讀入一個(gè)方格信息,然后結(jié)合自己的內(nèi)部狀態(tài)查找程序表,根據(jù)程序輸出信息到紙帶方格上,并轉(zhuǎn)換自己的內(nèi)部狀態(tài),然后進(jìn)行移動(dòng)?。
?想詳細(xì)了解可看:?什么是圖靈機(jī) - 知乎 (zhihu.com)
?馮諾依曼
?網(wǎng)上流傳甚廣的一張圖:年輕人,你渴望力量嗎???(可見(jiàn)大家對(duì)祖師爺?shù)某绨荩?/p>
人物經(jīng)歷
約翰·馮·諾依曼(John von Neumann)是一位匈牙利出生的美國(guó)數(shù)學(xué)家、物理學(xué)家和計(jì)算機(jī)科學(xué)家,也是現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)和程序設(shè)計(jì)的重要先驅(qū)之一。
1903年12月28日,馮諾依曼出生在匈牙利的布達(dá)佩斯市,是一個(gè)富裕的猶太人家庭的孩子。他自幼表現(xiàn)出了卓越的智力和對(duì)數(shù)學(xué)的天賦。在成長(zhǎng)過(guò)程中,他接觸了許多不同領(lǐng)域的知識(shí),并表現(xiàn)出了對(duì)物理學(xué)、化學(xué)和哲學(xué)等方面的濃厚興趣。
1921年,馮諾依曼進(jìn)入柏林大學(xué)學(xué)習(xí)化學(xué),并于1925年獲得了博士學(xué)位。隨后,他轉(zhuǎn)向了數(shù)學(xué)領(lǐng)域,并成為了德國(guó)著名數(shù)學(xué)家希爾伯特的學(xué)生之一。在此期間,他發(fā)表了一系列關(guān)于量子力學(xué)、矩陣論和函數(shù)分析等方面的論文,展現(xiàn)了卓越的數(shù)學(xué)才華。
1930年,馮諾依曼來(lái)到美國(guó),并開(kāi)始在普林斯頓大學(xué)擔(dān)任數(shù)學(xué)系教授。在普林斯頓工作的期間,他與愛(ài)因斯坦等人合作,成為了美國(guó)原子彈計(jì)劃的顧問(wèn)之一,并對(duì)核武器的研制做出了重要貢獻(xiàn)。
二戰(zhàn)結(jié)束后,馮諾依曼繼續(xù)從事計(jì)算機(jī)和物理學(xué)的研究,并提出了現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)的重要概念(馮諾依曼體系)。他是第一個(gè)將計(jì)算機(jī)內(nèi)部存儲(chǔ)程序的思想化為實(shí)際方案的人,并提出了“存儲(chǔ)程序計(jì)算機(jī)”和“指令集架構(gòu)”的概念。這些概念對(duì)現(xiàn)代計(jì)算機(jī)的設(shè)計(jì)和開(kāi)發(fā)產(chǎn)生了深遠(yuǎn)的影響,也為馮諾依曼贏得了“計(jì)算機(jī)科學(xué)之父”的美譽(yù)。
1955年,馮諾依曼被診斷出罕見(jiàn)的骨髓增生性疾病,并于當(dāng)年2月8日去世,享年51歲。他留下來(lái)的貢獻(xiàn)和成就不僅影響了計(jì)算機(jī)科學(xué)領(lǐng)域,也影響了物理學(xué)、數(shù)學(xué)和其他許多領(lǐng)域的發(fā)展。
總的來(lái)說(shuō),馮諾依曼的一生經(jīng)歷充滿(mǎn)了傳奇色彩。他是一位極具才華的數(shù)學(xué)家、物理學(xué)家和計(jì)算機(jī)科學(xué)家,為現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)和程序設(shè)計(jì)的發(fā)展做出了重要貢獻(xiàn)。他對(duì)于人類(lèi)思維方式的影響和貢獻(xiàn)將永存于歷史長(zhǎng)河中。
上面說(shuō)到馮諾依曼體系,直到現(xiàn)在大部分計(jì)算機(jī)仍然遵守 馮諾依曼體系結(jié)構(gòu)。下面我就來(lái)講講馮諾依曼體系
?馮諾依曼體系
馮諾依曼體系是一種計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)和工作原理,也稱(chēng)為馮諾依曼計(jì)算機(jī)體系結(jié)構(gòu)。該體系結(jié)構(gòu)由匈牙利數(shù)學(xué)家約翰·馮諾伊曼于1945年提出,被譽(yù)為現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)的奠基之作。
馮諾依曼體系結(jié)構(gòu)主要分為四個(gè)部分:存儲(chǔ)器、算術(shù)邏輯單元(ALU)、控制器和輸入/輸出(I/O)設(shè)備。其中,存儲(chǔ)器用于存儲(chǔ)指令和數(shù)據(jù),ALU負(fù)責(zé)進(jìn)行算術(shù)、邏輯運(yùn)算等操作,控制器則負(fù)責(zé)控制指令的執(zhí)行過(guò)程,而I/O設(shè)備則用于與外部世界交互。
在馮諾依曼體系結(jié)構(gòu)中,所有指令和數(shù)據(jù)都以二進(jìn)制形式存儲(chǔ)在內(nèi)存中,CPU通過(guò)總線(xiàn)來(lái)讀取和寫(xiě)入內(nèi)存中的數(shù)據(jù)。CPU可以根據(jù)指令集中的指令來(lái)執(zhí)行不同的操作,如加法、減法、乘法、除法等算術(shù)運(yùn)算,以及邏輯運(yùn)算、比較運(yùn)算、移位等操作。同時(shí),CPU還可以通過(guò)控制器來(lái)控制程序的執(zhí)行流程,實(shí)現(xiàn)分支、循環(huán)、函數(shù)調(diào)用等功能。所有這些操作都是由指令集中的指令來(lái)實(shí)現(xiàn)的。
馮·諾依曼體系的一大優(yōu)勢(shì)是其具有較高的通用性,即可以運(yùn)行各種不同的程序。同時(shí),由于其存儲(chǔ)程序的特性,使得修改程序變得更加方便,這是其他類(lèi)型計(jì)算機(jī)體系結(jié)構(gòu)所不具備的優(yōu)勢(shì)之一。
馮諾依曼體系結(jié)構(gòu)的設(shè)計(jì)使得計(jì)算機(jī)能夠以通用的方式進(jìn)行程序設(shè)計(jì),并且能夠?qū)⒂?jì)算機(jī)內(nèi)部的運(yùn)算和存儲(chǔ)空間分離開(kāi)來(lái)。這對(duì)于現(xiàn)代計(jì)算機(jī)科學(xué)的發(fā)展具有歷史性的意義。同時(shí),馮諾依曼體系結(jié)構(gòu)的出現(xiàn)也標(biāo)志著計(jì)算機(jī)科學(xué)從硬件設(shè)計(jì)上實(shí)現(xiàn)了程序可重用的革命。
我只是簡(jiǎn)單介紹了一下馮諾依曼體系,想詳細(xì)了解的小伙伴可看三分鐘帶你了解馮.諾依曼結(jié)構(gòu) - 知乎 (zhihu.com)
- CPU 中央處理器: 進(jìn)行算術(shù)運(yùn)算和邏輯判斷.
- 存儲(chǔ)器: 分為外存和內(nèi)存, 用于存儲(chǔ)數(shù)據(jù)(使用二進(jìn)制方式存儲(chǔ))
- 輸入設(shè)備: 用戶(hù)給計(jì)算機(jī)發(fā)號(hào)施令的設(shè)備.
- 輸出設(shè)備: 計(jì)算機(jī)用戶(hù)匯報(bào)結(jié)果的設(shè)備.
?計(jì)算機(jī)小常識(shí):
計(jì)算機(jī)的工作原理
計(jì)算機(jī)的工作原理可以簡(jiǎn)單地概括為:輸入、處理和輸出。
-
輸入(Input):計(jì)算機(jī)需要從外界獲取數(shù)據(jù)和指令,例如通過(guò)鍵盤(pán)、鼠標(biāo)、掃描儀等設(shè)備輸入數(shù)據(jù),并通過(guò)網(wǎng)絡(luò)或存儲(chǔ)設(shè)備讀取程序。
-
處理(Processing):計(jì)算機(jī)對(duì)輸入的數(shù)據(jù)和指令進(jìn)行處理,并產(chǎn)生結(jié)果。處理過(guò)程包括數(shù)據(jù)運(yùn)算、邏輯判斷、控制流程等操作。這是計(jì)算機(jī)最核心的功能,主要由 CPU(中央處理器)和內(nèi)存組成,并通過(guò)各種輸入/輸出設(shè)備與用戶(hù)交互。
-
輸出(Output):計(jì)算機(jī)將處理結(jié)果輸出給用戶(hù),如顯示器、音頻設(shè)備、打印機(jī)等。用戶(hù)可以看到或聽(tīng)到計(jì)算機(jī)處理的結(jié)果。
在計(jì)算機(jī)內(nèi)部,數(shù)據(jù)和指令通常以二進(jìn)制形式表示和處理。二進(jìn)制是一種只包含0和1的數(shù)字系統(tǒng),與十進(jìn)制相比,它可以更直接地映射到計(jì)算機(jī)存儲(chǔ)器中的電子信號(hào)。數(shù)據(jù)和指令都可以被存儲(chǔ)在計(jì)算機(jī)內(nèi)存(RAM)中,由CPU通過(guò)總線(xiàn)訪(fǎng)問(wèn)。
計(jì)算機(jī)的工作原理基于通用圖靈機(jī)模型。這個(gè)模型定義了一個(gè)機(jī)器狀態(tài)、指令集、數(shù)據(jù)格式和輸入輸出方式的規(guī)范,可應(yīng)用于任何計(jì)算機(jī)體系結(jié)構(gòu)。實(shí)際上,現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)包括 CPU、內(nèi)存、I/O 控制器等組件,并使用操作系統(tǒng)來(lái)協(xié)調(diào)它們的工作。操作系統(tǒng)提供了許多高級(jí)函數(shù)和服務(wù),隱藏了底層硬件細(xì)節(jié),使得程序員可以更容易地編寫(xiě)程序。
可以看出cpu是計(jì)算機(jī)的靈魂所在,那下面我們來(lái)認(rèn)識(shí)認(rèn)識(shí)cpu,看看cpu是如何工作的。
cpu的基本工作流程
CPU(中央處理器)是計(jì)算機(jī)的核心部件,它的工作流程可以分為以下三個(gè)步驟。
????????1、取指令階段(Instruction Fetch)??
CPU從內(nèi)存中讀取下一條要執(zhí)行的指令,并將其存儲(chǔ)在指令寄存器中。這些指令按照地址順序存放在內(nèi)存中,由程序計(jì)數(shù)器(Program Counter,PC)來(lái)記錄下一條指令的地址。取指令階段通常需要多次執(zhí)行,以讀取多個(gè)指令。
????????2、解碼階段(Instruction Decode)??
CPU從指令寄存器中讀取指令,并對(duì)其進(jìn)行解碼。在這個(gè)階段,CPU會(huì)確定該指令需要對(duì)哪些數(shù)據(jù)進(jìn)行操作,以及操作的方式和結(jié)果存放的位置等信息。這些信息被存儲(chǔ)在控制單元的控制信號(hào)中,用于指導(dǎo)CPU后續(xù)的執(zhí)行過(guò)程。
????????3、執(zhí)行階段(Execution)??
CPU根據(jù)指令解碼階段提供的控制信號(hào),執(zhí)行相應(yīng)的操作,并將結(jié)果存儲(chǔ)到寄存器或內(nèi)存中。執(zhí)行階段包括算術(shù)邏輯運(yùn)算、數(shù)據(jù)傳輸和控制轉(zhuǎn)移等操作。其中,算術(shù)邏輯運(yùn)算包括加法、減法、乘法、除法、位運(yùn)算和邏輯運(yùn)算等;數(shù)據(jù)傳輸包括從寄存器或內(nèi)存中讀取數(shù)據(jù),以及將數(shù)據(jù)寫(xiě)入寄存器或內(nèi)存中;控制轉(zhuǎn)移包括跳轉(zhuǎn)、分支和函數(shù)調(diào)用等操作。
以上三個(gè)階段構(gòu)成了CPU的主要工作流程。在實(shí)際應(yīng)用中,為了提高CPU的性能和效率,通常會(huì)采用流水線(xiàn)(Pipeline)技術(shù),使多條指令可以同時(shí)執(zhí)行不同的階段。這樣可以大大縮短執(zhí)行時(shí)間,提高計(jì)算機(jī)的運(yùn)行速度。
時(shí)鐘頻率(又譯:時(shí)鐘頻率速度,英語(yǔ): clock rate),是指同步電路中時(shí)鐘的基礎(chǔ)頻率,它以“若干次周期每秒”來(lái)度量,量度單位采用 SI單位 赫茲(Hz)。它是評(píng)定 CPU 性能的重要指標(biāo)。一般來(lái)說(shuō)主頻數(shù)字值越大越好。
?
cpu要完成上面工作,需要邏輯門(mén)、算術(shù)邏輯單元 ALU、寄存器(Register) 和內(nèi)存(RAM)、控制單元 CU、指令多種組件相互配合,可能有人不認(rèn)識(shí)這些組件,下面我就來(lái)介紹介紹它們。
?邏輯門(mén)
電子開(kāi)關(guān) —— 機(jī)械繼電器(Mechanical Relay)
機(jī)械繼電器,也稱(chēng)為電磁繼電器,是一種基于電磁原理工作的電氣開(kāi)關(guān)。它由線(xiàn)圈、鐵芯、觸點(diǎn)和彈簧等組成。當(dāng)線(xiàn)圈通電時(shí),會(huì)產(chǎn)生一個(gè)磁場(chǎng),使得鐵芯被吸引,同時(shí)觸點(diǎn)也會(huì)跟隨移動(dòng)。當(dāng)線(xiàn)圈斷電時(shí),鐵芯會(huì)失去磁性,觸點(diǎn)則會(huì)回到原位。通過(guò)這樣的方式,機(jī)械繼電器可以實(shí)現(xiàn)電路的開(kāi)關(guān)控制。機(jī)械繼電器可以用于各種電氣設(shè)備中,如燈泡、家用電器、電機(jī)和汽車(chē)電氣系統(tǒng)等。
門(mén)電路(Gate Circuit)
門(mén)電路指的是一種基本邏輯電路,用于實(shí)現(xiàn)不同的邏輯函數(shù)。門(mén)電路通常由晶體管、二極管和其他電子元件組成。它們分為以下幾種類(lèi)型:
-
與門(mén)(AND Gate):當(dāng)所有輸入均為高電平時(shí),輸出為高電平。
-
或門(mén)(OR Gate):當(dāng)任一輸入為高電平時(shí),輸出為高電平。
-
非門(mén)(NOT Gate):輸入為高電平時(shí),輸出為低電平;輸入為低電平時(shí),輸出為高電平。
-
異或門(mén)(XOR Gate):當(dāng)輸入相同時(shí),輸出為低電平;當(dāng)輸入不同時(shí),輸出為高電平。
-
與非門(mén)(NAND Gate):當(dāng)所有輸入均為高電平時(shí),輸出為低電平。
-
或非門(mén)(NOR Gate):當(dāng)任一輸入為高電平時(shí),輸出為低電平。
除了以上提到的基本門(mén)電路之外,還有許多其他的門(mén)電路,如三態(tài)門(mén)(Tri-state Gate)、模擬開(kāi)關(guān)(Analog Switch)、觸發(fā)器(Flip-flop)等。在數(shù)字電子學(xué)中,門(mén)電路是構(gòu)建其他數(shù)字電路的基礎(chǔ)。
算術(shù)邏輯單元 ALU(Arithmetic & Logic Unit)
算術(shù)邏輯單元(ALU)是計(jì)算機(jī)中的一個(gè)核心組件,用于執(zhí)行算術(shù)和邏輯運(yùn)算。ALU 可以對(duì)兩個(gè)二進(jìn)制數(shù)進(jìn)行加、減、乘、除等算術(shù)運(yùn)算,并且還可以進(jìn)行與、或、非、異或等邏輯運(yùn)算。
一個(gè)標(biāo)準(zhǔn)的 ALU 通常由以下幾個(gè)部分組成:
-
數(shù)據(jù)輸入:用于接收要進(jìn)行計(jì)算的數(shù)據(jù),通常包括兩個(gè)二進(jìn)制數(shù)和一個(gè)控制位。
-
運(yùn)算器:根據(jù)控制位決定所需的運(yùn)算類(lèi)型,如加法、減法、乘法、除法、比較、位移等。
-
狀態(tài)寄存器:用于記錄運(yùn)算結(jié)果的狀態(tài)信息,如是否進(jìn)位、是否溢出等。
-
數(shù)據(jù)輸出:將運(yùn)算結(jié)果輸出到其他部件或總線(xiàn)上。
ALU 在 CPU 中發(fā)揮著重要的作用,它能夠快速有效地執(zhí)行各種算術(shù)和邏輯操作,從而實(shí)現(xiàn)計(jì)算機(jī)的各種功能。實(shí)際上,大多數(shù) CPU 都使用了多個(gè) ALU,以提高計(jì)算效率并支持并行計(jì)算。此外,ALU 也被廣泛應(yīng)用于數(shù)字信號(hào)處理(DSP)、嵌入式系統(tǒng)、通信設(shè)備等領(lǐng)域。
由于算術(shù)邏輯單元(ALU)性能的高低對(duì)計(jì)算機(jī)整體性能有著很大的影響,因此現(xiàn)代 CPU 通常采用多級(jí)流水線(xiàn)結(jié)構(gòu)和超標(biāo)量技術(shù)來(lái)提高邏輯單元的效率和性能。
?算術(shù)單元(Arithmetic Unit)
算數(shù)單元,通常也稱(chēng)為算術(shù)部件或運(yùn)算器,是算術(shù)邏輯單元一個(gè)核心組成部分。
算術(shù)單元通常由一組加法器、乘法器、除法器和移位器等門(mén)電路組成,以實(shí)現(xiàn)各種不同的算術(shù)操作,如加法、減法、乘法、除法位移、取反等其他運(yùn)算。
在計(jì)算機(jī)中,CPU 通常包含一個(gè)或多個(gè)算術(shù)單元,用于處理各種算術(shù)運(yùn)算。當(dāng) CPU 需要進(jìn)行算術(shù)運(yùn)算時(shí),它會(huì)將數(shù)據(jù)送入算術(shù)單元,并根據(jù)指令選擇需要進(jìn)行的運(yùn)算類(lèi)型。算術(shù)單元計(jì)算出結(jié)果后,將其返回給 CPU 進(jìn)行下一步操作。
總的來(lái)說(shuō),算術(shù)單元是計(jì)算機(jī)中非常重要的組件之一,它通過(guò)實(shí)現(xiàn)各種算術(shù)運(yùn)算來(lái)支持計(jì)算機(jī)的各種應(yīng)用,如數(shù)據(jù)處理、圖像處理、音頻處理等。
?邏輯單元(Logic Unit)
邏輯單元(Logic Unit,簡(jiǎn)稱(chēng)LU)是計(jì)算機(jī)中的一個(gè)核心組件,用于執(zhí)行邏輯運(yùn)算。它通常由一組邏輯門(mén)電路(如與門(mén)、或門(mén)、非門(mén)、異或門(mén)等)組成,以實(shí)現(xiàn)各種不同的邏輯操作。
邏輯單元主要負(fù)責(zé)執(zhí)行以下幾種基本邏輯運(yùn)算:
-
與運(yùn)算:將兩個(gè)二進(jìn)制數(shù)的對(duì)應(yīng)位進(jìn)行“與”操作,并輸出結(jié)果。
-
或運(yùn)算:將兩個(gè)二進(jìn)制數(shù)的對(duì)應(yīng)位進(jìn)行“或”操作,并輸出結(jié)果。
-
非運(yùn)算:對(duì)一個(gè)二進(jìn)制數(shù)的每一位進(jìn)行取反操作,并輸出結(jié)果。
-
異或運(yùn)算:將兩個(gè)二進(jìn)制數(shù)的對(duì)應(yīng)位進(jìn)行“異或”操作,并輸出結(jié)果。
在計(jì)算機(jī)中,邏輯單元通常與算術(shù)單元(ALU)結(jié)合使用,形成更加完整的算數(shù)邏輯單元(ALU)。當(dāng) CPU 需要執(zhí)行邏輯運(yùn)算時(shí),它會(huì)將數(shù)據(jù)送入邏輯單元,并根據(jù)指令選擇需要進(jìn)行的運(yùn)算類(lèi)型。邏輯單元會(huì)計(jì)算出結(jié)果,并將其返回給 CPU 進(jìn)行下一步操作。
總的來(lái)說(shuō),在現(xiàn)代計(jì)算機(jī)中,邏輯單元也是非常重要的組件之一,它通過(guò)實(shí)現(xiàn)各種邏輯運(yùn)算來(lái)支持計(jì)算機(jī)的各種應(yīng)用,如控制決策、布爾邏輯運(yùn)算、比較判斷等。
ALU 符號(hào)
現(xiàn)代的計(jì)算機(jī)中的 ALU 部件非常強(qiáng)大,復(fù)雜度遠(yuǎn)遠(yuǎn)超過(guò)了我們的想象,32 位甚至 64 位基本已經(jīng)普及全球了。
現(xiàn)代CPU中的ALU通常支持浮點(diǎn)數(shù)運(yùn)算、SIMD指令(單指令多數(shù)據(jù)),以及更加復(fù)雜的指令集和多級(jí)流水線(xiàn)結(jié)構(gòu)。這些先進(jìn)的技術(shù)讓我們能夠進(jìn)行更加高效、精確、復(fù)雜的計(jì)算任務(wù),從而推動(dòng)了科學(xué)技術(shù)的發(fā)展和人類(lèi)社會(huì)的進(jìn)步。
ALU 是第一次將人類(lèi)歷史上的數(shù)學(xué)和邏輯學(xué)學(xué)科有機(jī)地結(jié)合起來(lái),可以視為人類(lèi)智慧發(fā)展的現(xiàn)代巔峰。
寄存器(Register) 和內(nèi)存(RAM)
?寄存器(Register)和內(nèi)存(RAM)都是計(jì)算機(jī)中存儲(chǔ)數(shù)據(jù)的組件,但它們?cè)诖鎯?chǔ)、使用、速度等方面有很大區(qū)別。
寄存器是位于CPU內(nèi)部的高速存儲(chǔ)器,用于暫時(shí)存儲(chǔ)指令和數(shù)據(jù),是CPU執(zhí)行指令過(guò)程中必不可少的組件。寄存器的容量比內(nèi)存小得多,通常只有幾十個(gè)字節(jié)到幾百個(gè)字節(jié),但由于其位于CPU內(nèi)部,訪(fǎng)問(wèn)速度非???,可以在一個(gè)時(shí)鐘周期內(nèi)完成讀寫(xiě)操作。寄存器一般被用來(lái)存儲(chǔ)當(dāng)前正在執(zhí)行的程序或數(shù)據(jù),以及存儲(chǔ)各種狀態(tài)信息,例如程序計(jì)數(shù)器、指令寄存器、標(biāo)志寄存器、通用寄存器等。
關(guān)于寄存器還想了解更多的:一口氣看完45個(gè)寄存器,CPU核心技術(shù)大揭秘 - 知乎 (zhihu.com)
相比之下,內(nèi)存(RAM)是一種外部存儲(chǔ)設(shè)備,用于存儲(chǔ)程序和數(shù)據(jù),它的容量比寄存器大得多,可以存儲(chǔ)更多的數(shù)據(jù)。內(nèi)存的數(shù)據(jù)可以隨時(shí)讀取和修改,但訪(fǎng)問(wèn)速度比寄存器慢得多,需要幾十甚至幾百個(gè)時(shí)鐘周期才能完成讀寫(xiě)操作。內(nèi)存一般分為靜態(tài)內(nèi)存和動(dòng)態(tài)內(nèi)存兩種類(lèi)型,其中靜態(tài)內(nèi)存速度較快,而且不需要刷新操作,但成本較高;動(dòng)態(tài)內(nèi)存成本較低,但需要定時(shí)進(jìn)行刷新操作以保持?jǐn)?shù)據(jù)的正確性。
總的來(lái)說(shuō),寄存器和內(nèi)存在計(jì)算機(jī)中都具有非常重要的作用。寄存器通過(guò)提供快速且方便的存儲(chǔ)空間來(lái)支持CPU的指令執(zhí)行和數(shù)據(jù)處理;而內(nèi)存則提供了更大容量的存儲(chǔ)空間,支持計(jì)算機(jī)系統(tǒng)的日常運(yùn)行和各種應(yīng)用程序的執(zhí)行。通常情況下,計(jì)算機(jī)會(huì)將一部分?jǐn)?shù)據(jù)存儲(chǔ)在寄存器中,以便快速訪(fǎng)問(wèn),在需要存儲(chǔ)更多數(shù)據(jù)時(shí)則將其存儲(chǔ)在內(nèi)存中。
?控制單元 CU(Control Unit)
控制單元(Control Unit,CU)它負(fù)責(zé)指揮和控制計(jì)算機(jī)系統(tǒng)中的各個(gè)部件進(jìn)行工作。CU通常位于CPU內(nèi)部,主要功能包括從主存中讀取指令、解析指令并生成相應(yīng)的控制信號(hào)、以及協(xié)調(diào)各個(gè)部件的工作等。
具體地說(shuō),當(dāng)CPU要執(zhí)行某個(gè)程序時(shí),CU首先從主存中讀取指令,并將其送入指令寄存器中。然后,CU會(huì)對(duì)指令進(jìn)行解碼,并根據(jù)解碼結(jié)果生成一系列控制信號(hào),例如內(nèi)存讀寫(xiě)控制信號(hào)、ALU操作控制信號(hào)、總線(xiàn)控制信號(hào)等。這些控制信號(hào)會(huì)被發(fā)送到各個(gè)部件,使得它們按照指令要求進(jìn)行相應(yīng)的操作,最終完成指令的執(zhí)行。
除了指揮各個(gè)部件進(jìn)行工作之外,CU還負(fù)責(zé)處理異常情況和錯(cuò)誤。例如,在執(zhí)行某個(gè)指令時(shí),如果發(fā)生了除以零或者非法指令等錯(cuò)誤,CU會(huì)立即停止當(dāng)前程序的執(zhí)行,并向操作系統(tǒng)或用戶(hù)報(bào)告錯(cuò)誤信息。
總的來(lái)說(shuō),CU可以看做是計(jì)算機(jī)系統(tǒng)中的“大腦”,它負(fù)責(zé)協(xié)調(diào)和控制整個(gè)系統(tǒng)的工作,確保計(jì)算機(jī)的正確運(yùn)行。同時(shí),CU也是計(jì)算機(jī)系統(tǒng)整體性能的關(guān)鍵因素之一,它的設(shè)計(jì)和實(shí)現(xiàn)質(zhì)量直接影響到計(jì)算機(jī)的運(yùn)行效率和穩(wěn)定性。
指令(Instruction)
首先,我們先介紹下我們需要到的指令(instruction)。
所謂指令,即指導(dǎo) CPU 進(jìn)行工作的命令,主要有操作碼 + 被操作數(shù)組成。
其中操作碼用來(lái)表示要做什么動(dòng)作,被操作數(shù)是本條指令要操作的數(shù)據(jù),可能是內(nèi)存地址,也可能是寄存器編號(hào)等。 指令本身也是一個(gè)數(shù)字,用二進(jìn)制形式保存在內(nèi)存的某個(gè)區(qū)域中。
指令表(Instruction Table)
指令(instruction)
|
功能說(shuō)明 | 4位opcode | 操作的地址或者寄存器 |
---|---|---|---|
LOAD_A
|
從RAM的指定地址,將
數(shù)據(jù)加載到A 寄存器
|
0010 |
4 位RAM 地址
|
LOAD_B
|
從RAM的指定地址,將
數(shù)據(jù)加載到B 寄存器
|
0001 |
4 位RAM 地址
|
STORE_A
|
將數(shù)據(jù)從A 寄存器寫(xiě)入
RAM 的指定地址
|
0100 |
4 位RAM 地址
|
ADD
|
計(jì)算兩個(gè)指定寄存器的
數(shù)據(jù)的和,并將結(jié)果放 ?
入第二個(gè)寄存器?
|
1000 |
2 位的寄存器ID
2 位的寄存器ID
|
??對(duì)cpu感興趣的小伙伴可以看看下面這個(gè)視頻(大佬爆肝純手工自制cpu)
[爆肝]純手工自制CPU
編程語(yǔ)言(Program Language)
程序(Program)
計(jì)算機(jī)中的程序是由一系列指令組成的,用來(lái)完成特定任務(wù)的代碼序列。程序可以通過(guò)編程語(yǔ)言編寫(xiě),然后由計(jì)算機(jī)進(jìn)行解析和執(zhí)行。
程序可以分為兩類(lèi):系統(tǒng)程序和應(yīng)用程序。系統(tǒng)程序是控制計(jì)算機(jī)硬件和操作系統(tǒng)的程序,例如操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序、安全軟件等。應(yīng)用程序是用戶(hù)使用計(jì)算機(jī)時(shí)運(yùn)行的程序,例如文字處理器、游戲、瀏覽器、音視頻播放器等。
程序可以由源代碼編寫(xiě)而成,也可以通過(guò)編譯器將源代碼轉(zhuǎn)換為目標(biāo)代碼來(lái)創(chuàng)建。在某些情況下,程序還可以直接使用匯編語(yǔ)言編寫(xiě),以便更好地控制硬件資源和優(yōu)化性能。
在程序執(zhí)行過(guò)程中,計(jì)算機(jī)會(huì)將指令從內(nèi)存中讀入到CPU中,并根據(jù)指令類(lèi)型執(zhí)行相應(yīng)的操作。CPU還需要維護(hù)一些寄存器和狀態(tài)信息,例如程序計(jì)數(shù)器、堆棧指針、標(biāo)志寄存器等,以幫助它正確地執(zhí)行指令序列。
程序是計(jì)算機(jī)中最基本的元素之一,它們使得計(jì)算機(jī)能夠完成各種任務(wù)并為用戶(hù)提供服務(wù)。
早期編程
????????很久以前,那還是我用Win98 的時(shí)候有次我系統(tǒng)崩潰了,因?yàn)槲沂请娔X白癡,我朋友給我介紹了一個(gè)高 手來(lái)幫我修電腦。????????他看了一下電腦,問(wèn)我有沒(méi)有98 的盤(pán),我說(shuō)沒(méi)有。????????他想了一下,叫我把固定電話(huà)拿給他,我想修電腦要電話(huà)干什么,但人家是高手,我也不好說(shuō)什么,就把電話(huà)拔下來(lái)給他了。????????他把電話(huà)線(xiàn)空著的一頭接在電腦的一個(gè)插孔內(nèi),然落后入了dos ,然后就開(kāi)始在電話(huà)上不停的按著鍵,他按鍵的速度異???,但是只按0 , 1 兩個(gè)鍵,我搞不懂這有什么用,但也不敢問(wèn),看了半個(gè)多小時(shí),他還是不停的按這兩個(gè)鍵, 兩性,我徐徐的有些困,我問(wèn)他這東西要搞多久,他說(shuō)要幾個(gè)小時(shí),我給他倒了杯茶,就一個(gè)人去隔壁睡覺(jué)了。????????醒來(lái)的時(shí)候,一看已經(jīng)過(guò)了4 個(gè)多小時(shí),我起身到隔壁,看見(jiàn)他正在 98 里面調(diào)試,過(guò)了一會(huì)兒,他說(shuō),你 試試,我坐上椅子用了一下,真的好了,我當(dāng)時(shí)也不懂電腦,謝過(guò)人家就走了。????????后來(lái)我慢慢對(duì)電腦有了了解,終于了解,原來(lái)當(dāng)時(shí)那位高手是用機(jī)器語(yǔ)言編了一個(gè)98 系統(tǒng),我后來(lái)問(wèn)我 朋友那位高手的下落,我朋友說(shuō)前幾年去了美國(guó)之后,杳無(wú)音訊....

編程語(yǔ)言發(fā)展
編程語(yǔ)言是用來(lái)描述計(jì)算機(jī)程序的形式化語(yǔ)言。自從計(jì)算機(jī)誕生以來(lái),編程語(yǔ)言不斷地發(fā)展和演變,經(jīng)歷了許多里程碑事件:
-
第一代編程語(yǔ)言(1940s-1950s):第一代編程語(yǔ)言是早期計(jì)算機(jī)使用的機(jī)器語(yǔ)言,它通過(guò)二進(jìn)制代碼直接控制計(jì)算機(jī)硬件。由于它很難理解和使用,因此只有專(zhuān)家才能編寫(xiě)程序。
-
第二代編程語(yǔ)言(1950s-1960s):第二代編程語(yǔ)言是匯編語(yǔ)言,它使用助記符號(hào)代替了二進(jìn)制代碼,使得人們更容易地編寫(xiě)程序。但它仍需要對(duì)硬件有深入的了解。
-
第三代編程語(yǔ)言(1960s-1970s):第三代編程語(yǔ)言是高級(jí)語(yǔ)言,例如FORTRAN、COBOL、BASIC等,它們的語(yǔ)法更加接近自然語(yǔ)言,使編程變得更加簡(jiǎn)單。同時(shí),出現(xiàn)了編譯器和解釋器等工具,為程序員提供了更好的開(kāi)發(fā)環(huán)境。
-
第四代編程語(yǔ)言(1970s-1990s):第四代編程語(yǔ)言是面向數(shù)據(jù)庫(kù)的語(yǔ)言,例如SQL,它們不需要程序員編寫(xiě)大量的代碼來(lái)操作數(shù)據(jù),而是提供了高度抽象的接口。
-
現(xiàn)代編程語(yǔ)言(1990s-至今):現(xiàn)代編程語(yǔ)言包括Java、Python、C++等,它們具有更多的特性和功能,例如面向?qū)ο缶幊獭⒑瘮?shù)式編程、動(dòng)態(tài)類(lèi)型等。同時(shí),出現(xiàn)了許多框架和庫(kù),幫助程序員更快地構(gòu)建應(yīng)用程序。
編程語(yǔ)言的發(fā)展經(jīng)歷了從低級(jí)到高級(jí)、從硬件到軟件、從過(guò)程化到面向?qū)ο蟮葞讉€(gè)階段,每個(gè)階段都為計(jì)算機(jī)的發(fā)展做出了重要貢獻(xiàn)。未來(lái),人工智能、量子計(jì)算和其他新技術(shù)的發(fā)展也將進(jìn)一步推動(dòng)編程語(yǔ)言的演變和創(chuàng)新。
? ??
操作系統(tǒng)
操作系統(tǒng)(Operating System,OS)是計(jì)算機(jī)系統(tǒng)中的一種軟件,它負(fù)責(zé)管理和控制計(jì)算機(jī)硬件和軟件資源,為用戶(hù)和應(yīng)用程序提供服務(wù)。操作系統(tǒng)通常包括以下幾個(gè)核心組件:
-
內(nèi)存管理:內(nèi)存管理模塊負(fù)責(zé)管理計(jì)算機(jī)的內(nèi)存資源,包括內(nèi)存分配、內(nèi)存保護(hù)、虛擬內(nèi)存等。通過(guò)有效地管理內(nèi)存,操作系統(tǒng)可以最大化利用系統(tǒng)資源,并確保應(yīng)用程序之間不會(huì)相互干擾。
-
進(jìn)程管理:進(jìn)程管理模塊負(fù)責(zé)管理計(jì)算機(jī)的進(jìn)程和線(xiàn)程,包括進(jìn)程的創(chuàng)建、調(diào)度、終止、同步等。通過(guò)對(duì)進(jìn)程和線(xiàn)程進(jìn)行管理,操作系統(tǒng)可以使多個(gè)程序同時(shí)運(yùn)行,并確保它們之間不會(huì)相互干擾或競(jìng)爭(zhēng)系統(tǒng)資源。
-
文件管理:文件管理模塊負(fù)責(zé)管理計(jì)算機(jī)的文件系統(tǒng),包括文件的創(chuàng)建、讀取、寫(xiě)入、刪除等。通過(guò)對(duì)文件進(jìn)行統(tǒng)一管理,操作系統(tǒng)可以保護(hù)文件的安全性、完整性和可用性。
-
設(shè)備管理:設(shè)備管理模塊負(fù)責(zé)管理計(jì)算機(jī)的外部設(shè)備,包括I/O設(shè)備、網(wǎng)絡(luò)設(shè)備等。通過(guò)對(duì)設(shè)備進(jìn)行管理,操作系統(tǒng)可以協(xié)調(diào)多個(gè)設(shè)備之間的操作,以達(dá)到最優(yōu)的系統(tǒng)性能。
-
用戶(hù)接口:用戶(hù)接口模塊提供了用戶(hù)和操作系統(tǒng)之間的交互方式,例如命令行界面、圖形用戶(hù)界面等。通過(guò)友好的用戶(hù)接口,操作系統(tǒng)可以使得用戶(hù)更加輕松地使用計(jì)算機(jī)系統(tǒng)。
除了這些核心組件之外,操作系統(tǒng)還包括其他一些功能,例如安全管理、網(wǎng)絡(luò)支持、多處理器支持等。總的來(lái)說(shuō),操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中最重要的組成部分之一,為用戶(hù)和應(yīng)用程序提供了強(qiáng)大的支持和保障。
篇幅過(guò)長(zhǎng) ,就不詳細(xì)說(shuō)了,想詳細(xì)了解可看
計(jì)算機(jī)操作系統(tǒng)知識(shí)點(diǎn)總結(jié)(有這一篇就夠了?。。。?/p>
結(jié)語(yǔ)
作為一名程序員,計(jì)算機(jī)將會(huì)一直陪伴我們今后的日子,我深知計(jì)算機(jī)技術(shù)對(duì)于現(xiàn)代社會(huì)的重要性。在這個(gè)五一勞動(dòng)節(jié)之際,我想向所有辛勤工作的人們致以敬意,并分享一些我認(rèn)為程序員應(yīng)該掌握的基礎(chǔ)知識(shí)。
我們今天介紹了計(jì)算機(jī)的歷史以及了解了計(jì)算機(jī)時(shí)如何工作的,但是計(jì)算機(jī)技術(shù)是一個(gè)不斷演變和發(fā)展的領(lǐng)域,身為程序員的我們需要不斷學(xué)習(xí)和創(chuàng)新,才能保持競(jìng)爭(zhēng)力和應(yīng)對(duì)未來(lái)的挑戰(zhàn)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-444165.html
在這個(gè)特別的節(jié)日里,讓我們一起感恩勞動(dòng)、尊重知識(shí)、珍惜時(shí)間,為自己和社會(huì)創(chuàng)造更多價(jià)值!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-444165.html
到了這里,關(guān)于勞動(dòng)節(jié)程序員應(yīng)該知道的知識(shí)——計(jì)算機(jī)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!