操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    節內容:計算機硬件系統的組成。

    計算機的核心部件:CPU、內存、主板、硬盤、顯卡、顯示器和鍵盤。

    計算機的結構演化:馮·諾依曼、以存儲為中心計算機結構、現代計算機結構。

    計算機系統的五個層次:第0層微指令、第1層機器語言指令集、第2層操作系統、第3層匯編語言、第4層高級語言。

    1.2.1 計算機的構成

    這節我們將介紹計算機的硬件組成,對計算機有個整體的認識。接下來的課程,我們都是圍繞計算機的各個硬件來講述。學習如何通過計算機軟件來控制計算機各個硬件的工作。

    計算機硬件組成

    圖1-9 計算機的構成

    圖1-9展示了計算機的硬件組成。在我們學習程序設計之前,我們需要明確一個概念:計算機系統分為硬件系統和軟件系統。計算機硬件是由CPU、內存、主板、磁盤、I/O輸入輸出設備等一系列硬件組成的。計算機沒有智慧,沒有生命。計算機軟件是由程序員編寫的由數據和指令組成的可執行程序,包括操作系統、基礎軟件和應用軟件。計算機是在程序員編寫的控制指令下運行,并完成預定的任務。在這一節中,我們將熟悉計算機的硬件組成及功能。在第二部分十六位匯編的章節中,我們將學習如何通過編寫程序指令來控制8086計算機的CPU、內存、磁盤、鍵盤、顯示器、打印機等部件的運行。在我們完成這部分內容的學習之后,將會深刻的理解計算機運行的原理,對我們今后的學習帶來非常大的幫助。

    下面我們分別介紹計算機的主要部件。

    ●CPU

    CPU相當于計算機的大腦。

    CPU的作用是什么呢?

    第一個作用是控制計算機各個部件進行工作。

    第二個作用是進行算數和邏輯運算。

    第三個作用是進行數據的交換。

    我們將在第六章8086 CPU寄存器的章節中詳細介紹CPU寄存器。

    ●主板

    主板是計算機各個部件的載體。主板通過插槽和總線將CPU和外部各個部件進行連接。我們可以看到的主板上連接各個插槽的印刷電路就是總線。總線又分為數據總線、地址總線和控制總線。在本章“1.5節總線”中我們將詳細介紹。

    如圖1-10所示的電腦主板電路圖,主板中心位置為CPU插槽,CPU通過總線和主板上其他硬件設備的插槽連接。

    ●內存

    內存是用來存儲數據和指令的地方,由成千上萬個寄存器構成。內存通過主板上的內存條插槽與CPU進行連接。內存存儲空間的大小以字節為單位,每個字節都有一個地址編號。我們將在“1.3節基本概念”中詳細講解內存的概念。內存讀寫數據的速度比較快。內存是僅次于CPU之外,最重要的計算機部件了。內存越大,則計算機同一時間處理的數據能力就越強。內存將是我們今后學習內容的重點。我們將在第七章8086尋址方式的章節中詳細講解8086計算機的尋址方式。

    ●硬盤

    硬盤屬于外部存儲設備,也稱為磁盤。通常以文件的形式存儲數據,通過硬盤內的磁頭讀寫數據。硬盤存儲數據的容量比內存大的多,成本低,但是讀寫數據的速度比較慢。第十三章磁盤文件管理及應用的章節中我們將詳細講解8086計算機磁盤文件的操作。

    ●顯卡

    顯卡稱為GPU,是通過屏幕用來顯示數據的部件。早期的顯卡通過主板獨立的插槽與CPU進行連接。現在由于超大規模集成電路的發展,部分CPU廠商已經將顯卡集成到了CPU內部,稱之為集成顯卡。顯卡有自己獨立的存儲空間,稱之為顯存。顯存分為RAM動態存儲和ROM靜態存儲兩個部分。我們把要在屏幕顯示的數據寫入顯存的RAM動態存儲空間,就可以在屏幕上顯示出來了。而顯存的ROM靜態存儲空間存放的是顯卡的I/O驅動程序。顯存越大,同一時間存儲的數據就越多,顯卡性能就越高,屏幕顯示的畫面也更為流暢。我們將在第十六章輸入和輸出中斷的章節中詳細講述8086計算機顯卡驅動程序的實現。

    圖1-10 電腦主板電路圖

    ●顯示器

    顯示器是顯卡用來顯示數據的標準輸出設備。作為程序員,我們需要學習的僅限顯卡設備的驅動,并不需要關心顯示器的物理特性。

    ●光驅

    光驅是用來讀寫光盤的外部輸入輸出設備,隨著移動硬盤設備的快速發展。現在的計算機用的相對來說要少一些。

    ●鍵盤

    鍵盤是我們進行人機交互的一個設備,是計算機的標準輸入設備。鍵盤上的按鍵分為字符鍵、功能鍵和控制鍵。每個按鍵都對應一個掃描碼。當我們按下一個字符鍵時會產生通碼,得到一個掃描碼和ASCII碼,表示按下的是哪個鍵,及其對應的字符。功能鍵F1~F12的ASCII碼為0。CTRL、ALT、SHIFT、Caps和NumLock鍵為控制鍵,按下控制鍵,會在鍵盤按鍵的狀態字節中將其相應的標志位置1,當我們獲取鍵盤狀態字節后,就知道是否按下以及按下哪個控制鍵了。詳細的內容我們將在第十六章輸入和輸出中斷的章節中詳細講解。

    ●鼠標

    鼠標是另一個人機交互的輸入設備,其實就相當于一個簡化的小鍵盤。早期的鼠標只有一個按鍵,后來發展為左右兩個按鍵。今天的鼠標左右按鍵中間還有一個滾輪,用來操作窗口的滾動條。我們將在Windows程序設計的課程中詳細講解鼠標設備的操控。

    ●其他設備

    機箱是計算機的外殼,包含控制計算機開關機按鍵,通過連接線與主板對應的插槽相連。

    電源設備是給計算機供電的外部設備,包括主板電源接口和其他外部設備獨立電源接口。

    網卡和聲卡設備早期都是獨立的外部設備,通過主板插槽與CPU連接,網卡控制計算機連接外部互聯網。聲卡控制聲音的輸入和輸出。現在的計算機通常將聲卡和網卡集成到主板上,不再使用獨立的設備。

    此外還有一些其他的外部設備,比如掃描儀、打印機等等。關于打印機設備我們將在第十五章數據傳輸方式第十六章輸入和輸出中斷的章節中詳細介紹。

    總結

    CPU是計算機系統的核心,CPU內部的控制單元控制計算機外部設備的運行。CPU內部的算術邏輯運算單元,進行算術邏輯運算。CPU內的寄存器進行數據存儲、命令控制、狀態記錄、尋址等操作。

    CPU通過主板的總線與主板插槽上的外部設備連接,通過控制總線傳輸控制命令來控制外部設備的運行。通過數據總線向外部設備傳輸數據。通過地址總線獲取外部設備的端口地址。CPU也可以通過指定的端口地址讀取外部設備的狀態寄存器,獲取當前外部設備狀態信息。

    內存是計算機除了CPU之外最重要的部件。內存是一組以字節為單位的連續的線性存儲空間,每個字節都有一個地址編號。計算機與外部設備之間的數據傳送,程序的加載和運行都離不開內存。如果要讀寫內存中的數據和指令,就必須要準確的找到該數據或指令在內存中的確切地址。因而正確的尋址,是內存數據讀寫和程序控制的關鍵。

    鍵盤是計算機人機交互的標準輸入設備。顯卡及屏幕是計算機人機交互的標準輸出設備。

    此外我們常用的一個輸出設備就是打印機設備。我們將輸入輸出設備稱之為計算機的I/O設備。我們將在第十六章輸入和輸出中斷的章節中詳細講解這些設備的驅動程序。

    總之,計算機是由一些硬件設備和軟件構成的,我們稱之為計算機系統。程序員通過編寫計算機軟件發送控制命令,來控制計算機的運行。

    提示

    可能有些讀者是初學者,對上述內容中提到的一些概念還比較陌生。沒有關系,我們會在后續的章節中詳細的講解這些概念,及其具體實現的原理和過程。當我們學完具體的內容之后,再回來看上述內容時,應該會親切的多。

    1.2.2 計算機結構

    ■典型的馮.諾依曼結構:(巴貝奇的分析機原理)

    圖1-11 馮.諾依曼結構

    圖1-11展示的馮·諾伊曼結構其實是繼承了巴貝奇的分析機的原理。有輸入設備、輸出設備和存儲器這三個關鍵的部件。中間位置有一個運算器,功能是算數運算和邏輯運算。此外還有一個控制器,控制器的功能是用來控制計算機各個部件進行工作的。

    我們來看一下馮·諾依曼結構的工作流程。我們用黑色實線來表示數據線,藍色虛線表示控制線。

    先看數據的傳輸過程:

    ①先由輸入設備進行數據的輸入。

    ②數據輸入之后,將數據送入運算器進行算術邏輯運算。

    ③在進行算術邏輯運算時,運算器和存儲器之間會有一個數據交換。比如從存儲器中讀取一個操作數,或者將計算時產生的臨時結果保存在存儲器中。

    ④輸出數據。有兩種情形,一是運算器計算出結果后直接將結果輸出。二是將保存在存儲器中的結果取出后輸出。

    再看控制指令的傳輸過程:

    ①控制器發送控制指令給輸入設備。

    ②控制器發送控制指令給輸出設備。

    ③控制器發送控制指令給運算器。

    ④控制器發送指令給存儲器。

    接下來我們再看以存儲為中心的計算結構。

    ■以存儲為中心計算機結構

    圖1-12 以存儲器為中心計算機結構

    圖1-12展示以存儲為中心的計算結構,分為三個數據指令傳輸過程,相對于馮.諾依曼結構增加了一個反饋過程。它的部件其實和馮.諾依曼結構的幾個主要部件是一樣的,有輸入設備、輸出設備控制器、存儲器和運算器。只是它工作的流程有了變化。

    首先看一下控制流程:

    ①控制器發送控制指令給輸入設備。

    ②控制器發送控制指令給輸出設備。

    ③控制器發送控制指令給運算器。

    ④控制器發送指令給存儲器。

    相對于馮·諾依曼結構沒有什么變化。

    接著看一下數據傳輸流程:

    ①首先數據從輸入設備輸入。

    ②接著數據從輸入設備進入存儲器。

    ③存儲器將數據(指令)送入控制器。

    ④運算器對存儲器可以進行讀寫雙向操作。

    ⑤數據由存儲器送入輸出設備,輸出結果。

    再看一下反饋流程:

    控制器通過控制指令操作輸入設備、輸出設備、存儲器、運算器的同時,上述設備會將設備狀態返回給控制器,以便判斷錯誤原因以及下一步如何操作。

    以存儲為中心的計算機結構對比馮·諾依曼結構有什么優點呢?

    在馮·諾依曼結構中,如果說工作的流程中出現錯誤了(任何一個環節都可能出現錯誤),但是我們并不清楚。如果說有了反饋信息,那么我們就可以很清楚的知道在哪一個環節出了問題,是輸入設備還是輸出設備的問題,一目了然。這是一個很重要的改進。

    此外,以存儲為中心的計算機結構,數據和指令的傳輸過程更為簡潔和高效。存儲器中的數據送入運算器,存儲器中的指令送入控制器。

    注意

    此時會產生一個新的問題,我們怎么知道哪些是數據,哪些是指令呢?如果我們在編寫程序的時候將指令和數據按照指定的編碼格式書寫和標注,并且分段存儲在不同的區域就很容易解決這個問題了。在后續編寫程序時我們就是這樣做的。

    ■現代計算機結構

    圖1-13展示的現代計算機的結構與存儲為中心結構類似,包括I/O輸入輸出設備。CPU內部有控制單元和邏輯算術運算單元,然后是一個主存儲器。

    現代計算機結構與以存儲器為中心的計算機結構工作流程類似,包括數據、命令和反饋信息的傳輸,上述數據信息在CPU、主存儲器和外部I/O設備之間移動,這里不再贅述。

    1.2.3 多層次計算機系統

    計算機系統的5個層次

    如圖1-14所示:

    第0層微指令:是物理邏輯電路,不是普通用戶可以編寫的程序指令,屬于商業秘密。

    第1層機器語言指令集:是固化在處理器內部,執行移動、加法和乘法等操作,每條機器語言可以分成幾條微指令執行。

    第2層操作系統:能夠理解用戶發出的諸如執行程序、顯示目錄之類的交互命令。操作系統被翻譯為機器碼在第1層執行。

    第3層匯編語言:在操作系統之上,能夠實際開發大型軟件的翻譯層。匯編指令被翻譯成機器語言,由操作系統執行。

    圖1-14 多層次計算機系統

    第4層高級語言:諸如C++、C#、JAVA、Python之類的高級語言先由編譯器翻譯成C語言,再翻譯成匯編語言,最后轉為機器語言,由操作系統執行。其他應用腳本類的應用語言由該語言的解釋器解釋成C語言后直接運行。

    注意

    匯編語言比較特殊。匯編語言程序既可以在操作系統之上運行,也可以越過操作系統,直接控制硬件。我們將在第十六章輸入和輸出中斷章節中詳細講解。

    提示

    我們在C語言階段的課程中將發明一個新的高級語言,并編寫一個簡單的編譯器和解釋器,在我們自己寫的 Simpletron虛擬機上運行。當我們完成這個項目之后,我們對計算機及計算機軟件的工作原理將有一個非常深刻的認知。

    練習

    1、自己動手組裝一次PC機,熟悉PC機的各個組成部分。組裝過PC機的同學可以忽略。

    2、寫出計算機系統的5個虛擬機層次,并說明處理不同虛擬機層使用的翻譯技術。

    3、程序員為什么不可以使用微指令編寫應用程序?

    4、如果自己組裝一臺PC機,需要購買哪些部件,注意哪些細節?不明白的可以網上查閱資料或者詢問賣家客服。

    5、馮·諾伊曼計算機的特點是什么?

    6、請畫出主機組成結構圖,并說明各個部件的作用是什么?

    7、匯編語言是由操作系統翻譯成機器語言的,這個說法對嗎?請說明。

    摘自編程達人系列教材《X86匯編語言基礎教程》!

    據的表示

    最小的數據單位:b最小的存儲單位:byte

    進制的轉換

    1. R進制轉十進制:將每一位數字用$R^k$表示然后相加,k與該位與小數點的距離有關,小數點左邊第一位為0,右邊第一位為-1,往左遞增,往右遞減如:二進制數 100.01=12^4+12^2+1*2^{-2}$
    2. 十進制轉R進制: 整數位使用短除法,即將十進制數除以R再取余,直至余數為零,然后將余數由下往上按順序排列,小數位乘以R,每乘一次就取它的整數位(整數位為零時就取零),直至小數位為零,然后將取得的整數位由上往下排列即可。
    3. 二進制轉八進制及二進制轉十六進制:將二進制數以小數點為界向左及向右每三個一組(轉八進制),或者每四個一組(轉十六進制),缺的數用零來補充,然后依次轉化為相應的進制數然后按順序排列即可。

    原碼反碼補碼移碼

    1. 原碼:將數值轉換為二進制數,并且該二進制數的首位(最高位)表示正負,0表示正,1表示負,不足八位的就在首位與二進制數中間用零填充。例:$[-1]_{原}=10000001$
    2. 反碼:正數的反碼為本身,負數的反碼為其原碼除首位不變外全部取反原碼在計算機中進行加減不能得到正確的答案,而反碼的加減則符合事實
    3. 補碼:正數的補碼與原碼和反碼相同,負數的補碼即為其反碼加1補碼的運算也符合正確答案補碼的補碼就是原碼
    4. 移碼:將正數和負數的補碼首位取反,其余位不改變移碼的運算也符合正確答案
    5. 各自數值表示范圍:其中n一般等于8


    整數

    原碼

    $-(2^{n-1}-1) \sim 2^{n-1}-1$

    反碼

    $-(2^{n-1}-1) \sim 2^{n-1}-1$

    補碼

    $-2^{n-1} \sim 2^{n-1}-1$

    浮點數

    1. 浮點數的概念:浮點數即科學計數法,如 00=1*10^3$ ; 其中,1為尾數,10為基數,3為指數
    2. 表示格式:階符+階碼+數符+尾數
    3. 計算機中浮點數的運算:當兩個指數不等的浮點數相加時,計算機會把低階浮點數的指數轉化為高階浮點數的指數,如: .010^3+1.1910^2$ ,計算機會將 .1910^2$ 轉化為 >10^2$ 轉化為 $0.119<.11910^3$ ,然后作和,然后結果規格化(將尾數的絕對值限定在區間[0.5,1]),如:得到 .301910^3$ 以后,要化為 .1301910^4$
    4. 浮點數所能表示的數值范圍主要由階碼決定,所表示的數值精度則由尾數決定

    中央處理器(CPU)

    CPU由運算器和控制器組成

    1. 運算器(ALU)累加寄存器(AC):專門存放算術或邏輯運算的一個操作數和運算結果的寄存器。能進行加、減、讀出、移位、求補等操作。是運算器的主要部分狀態寄存器(PSW):該部件用來存放兩類信息,一類是體現當前指令執行結果的各種狀態信息(條件碼),如有無進位、有無溢出、結果正負、信息是否為零等;另一類是存放控制信息,如允許中斷、跟蹤標志等
    2. 控制器程序計數器(PC):程序計數器中存放的是下一條指令的地址。由于多數情況下程序是順序執行的,所以程序計數器設計成自動加一的裝置。當出現轉移指令時,就需重填程序計數器指令寄存器(IR):中央處理器正在執行的操作碼表存放在這里,即當前正在執行的所有指令指令譯碼器(ID):將操作碼解碼,告訴中央處理器該做什么時序部件

    尋址

    1. 立即尋址。操作數就包含在指令中
    2. 直接尋址。操作數存放在內存單元中,指令中直接給出操作數所在存儲單元的地址
    3. 寄存器尋址。操作數存放在某一寄存器中,指令中給出存放操作數的寄存器名。寄存器間接尋址。操作數存放在內存單元中,操作數所在存儲單元的地址在某個寄存器中
    4. 間接尋址。指令中給出操作數地址的地址
    5. 相對尋址。指令地址碼給出的是一個偏移量(可正可負),操作數地址等于本條指令的地址加上該偏移量
    6. 變址尋址。操作數地址等于變址寄存器的內容加偏移量。

    CPU采用多種尋址方式是為了在效率和方便性上找一個平衡CPU根據指令周期的不同階段來區分內存中以二進制編碼形式存放的指令和數據指令最先進入到數據寄存器暫存起來,然后再拿到指令寄存器中,再交由指令譯碼器來解碼進而運算(交給運算器),而這一過程一結束,就會迅速提取程序計數器中的指令(即下一條指令),因此,程序計數器中存儲的始終是暫未執行的,下一條指令的“地址”在匯編語言程序中,程序員可以直接訪問通用寄存器以存取數據,可以訪問狀態字寄存器以獲取有關數據處理結果的相關信息,可以通過相對程序計數器進行尋址,但是不能訪問指令寄存器,即指令寄存器對用戶是完全透明的

    計算機體系結構分類(Flynn)

    體系結構類型

    結構

    關鍵特性

    代表

    單指令流單數據流SISD

    控制部分:一個
    處理器:一個
    主存模塊:一個


    單處理器系統

    單指令流多數據流SIMD

    控制部分:一個
    處理器:多個
    主存模塊:一個

    各處理器以異步的形式執行同一條指令

    并行處理機
    陣列處理機
    超級向量處理機

    多指令流單數據流MISD

    控制部分:多個
    處理器:一個
    主存模塊:多個

    被證不可能,至少是不實際

    目前沒有,有文獻稱流水線計算機為此類

    多指令流多數據流MIMD

    控制部分:多個
    處理器:多個
    主存模塊:多個

    能夠實現作業、任務、指令等各級全面并行

    多處理機系統
    多計算機

    CISC和RISC

    指令系統類型

    指令

    尋址方式

    實現方式

    其他

    CISC(復雜)

    數量多,使用頻率差別大,可變長格式

    支持多種

    微程序控制技術(微碼)

    研制周期長

    RISC(精簡)

    數量少,使用頻率接近,定長格式,大部分為單調期指令,操作寄存器,只有Load/Store操作內存

    支持方式少

    增加了通用寄存器;硬布線邏輯控制為主;適合采用流水線

    優化編譯,有效支持高級語言

    流水線

    1. 基本概念:流水線是指在程序執行時多條指令重疊進行操作的一種準并行處理實現技術。各種部件同時處理是針對不同指令而言的,它們可同時為多條指令的不同部分進行工作,以提高各部件的利用率和指令的平均執行速度
    2. 周期計算流水線周期(操作周期)為執行時間最長的一段計算公式:1條指令執行時間+(指令條數-1)*流水線周期理論公式:(t1+t2+··+tk)+(n-1)*△t實踐公式:(k+n-1)*△t

    優先使用理論公式

    1. 吞吐率計算定義:指單位時間內流水線所完成的任務數量或輸出的結果數量基本公式:$TP=\frac{指令條數}{流水線執行時間}$流水線最大吞吐率:$TP_{max}=\lim\limits_{n\to\infty}\frac{n}{(k+n-1)\triangle t}=\frac{1}{\triangle t}$
    2. 加速比定義:完成同樣一批任務,不使用流水線所用的時間與使用流水線所用的時間之比公式:$S=\frac{不使用流水線執行時間}{使用流水線執行時間}$
    3. 效率定義:流水線的設備利用率。在時空圖上,流水線的效率定義為n個任務占用的時空區與k個流水段總的時空區之比公式:$E=\frac{n個任務占用的時空區}{k個流水段的總的時空區}=\frac{T_0}{kT_k}$

    層次化存儲器結構

    內存存儲外存的部分內容,cache存儲內存的部分內容,CPU只處理cache中的指令,cache的作用是精簡內存中重復出現的指令,提高CPU的執行效率,使得計算機的運算速度得到極大的提升;此外,結構中由上至下,速度越來越慢,但容量越來越大

    Cache

    1. Cache的功能:提高CPU輸入輸出的速率,突破馮諾依曼瓶頸,即CPU與存儲器系統間數據傳送帶寬限制,在程序執行過程中,Cache與主存的地址映射是由硬件自動完成的
    2. 與cache相關的計算:如果以h代表Cache的訪問命中率,$t_1$表示Cache的周期時間,$t_2$表示主存儲器周期時間,以讀操作為例,使用“Cache+主存儲器”的系統的平均周期為$t_3$,則$t_3=h*t_1+(1-h)*t_2-h稱為失效率(未命中率)

    CPU會在cache中尋找它需要的數據,如果不能找到,CPU就將前往內存中尋找,而chche的訪問命中率就是CPU需要的數據在cache中被找到的比例,未能找到的數據CPU將前往內存中進行再次尋找

    1. 內存與cache地址映射的三種方式直接映像:cache的區號與內存的區號一一對應全相連映像:cache的一個塊號可以對應多個內存的塊號,內存的一個塊號也可以對應cache的多個塊號組相連映像:兩種方式相結合的方法

    這三種映射方式都是計算機硬件自動完成的,不是軟件

    1. 替換算法:替換算法的目的是使cache獲得盡可能高的命中率,有以下四種:隨機替換算法、先進先出算法、近期最少使用算法、優化替換算法

    現代的計算機cache系統是分為了三個級別的,訪問時先從第一層開始訪問,直至三個級別的cache都被訪問完全時才會訪問內存

    1. 虛擬存儲器:即CPU在給出需要訪問的內存地址時,給出的并不是真正的物理地址,而是物理地址的抽象,虛擬存儲器是由主存-輔存兩級存儲器組成
    2. 時間局限性:如果某條指令被執行,則不久以后該指令很可能再次被執行;如果某條數據結構被訪問,則不久以后該數據結構很可能再次被訪問。產生時間局限性的主要原因是程序中有大量的循環操作
    3. 空間局限性:一旦程序訪問了某個內存單元,不久以后,其附近的內存單元也要被訪問,即程序在一段時間內所訪問的存儲器空間可能集中在一定的范圍之內,其最常見情況就是程序的順序執行。工作集是指在某段時間隔內,進程所要訪問的頁面集合。雖然程序只需少量的幾頁內存就可以運行,但為了使程序更有效地運行,必須使程序的工作集全部在內存(主存儲器)當中,否則會使進程在運行中頻繁出現缺頁中斷,從而出現頻繁的頁面調入/調出現象

    主存

    分類

    1. 隨機存取存儲器DRAM (Dynamic RAM ,動態 RAM )——SDRAMSRAM (Static RAM ,靜態)
    2. 只讀存儲器MROM(Mask ROM ,掩模式 ROM )PROM(ProgrammabIe ROM,一次可編程 ROM)EPROM (Erasable PROM, 可擦除的 PROM)閃速存儲器 (flash memory ,閃存)

    編址

    1. 概念:主存的編址就是把許多塊芯片組成相應的存儲器
    2. 一般表示方式如下圖,其中左圖一中的8表示它有8個地址空間,4表示每一個地址空間存儲了4位的信息

    磁盤結構與參數

    1. 存取時間=尋道時間+等待時間(平均定位時間+轉動延遲)尋道時間是指磁頭移動到磁道所需的時間等待時間為等待讀寫的扇區轉到磁頭下方所需的時間
    2. 磁道一般分為許多個小的扇形區,即物理塊,磁頭在依次讀取這些物理塊時(磁頭必須依次讀取),會在讀取的同時將其存放進緩存區,緩存區可以是單個,也可以是多個,存放完成后會在緩存區花費時間進行處理,處理期間磁頭的讀取不會停止,因此,如果緩存區過少,就會出現讀取一個物理塊花費了一個周期甚至更長的時間
    3. 磁盤調度管理中,先進行移臂調度尋找磁道,再進行旋轉調度尋找扇區

    總線

    1. 概念:總線是連接計算機有關部件的一組信號線,是計算機中用來傳送信息代碼的公共通道
    2. 內部總線:微機內部的,各個外圍芯片與處理器之間的總線,屬于芯片級別
    3. 系統總線:系統總線即為各個插線板和系統板之間的總線數據總線:如32位,64位等一次性能夠傳輸的位地址總線:假設該計算機的地址總線為32位,那就代表它的地址空間為^{32}$個字節控制總線:發送相應的控制信號的總線
    4. 外部總線:即微機和外部設備的總線

    總線上的多個部件之間只能分時向總線發送數據,但可以同時從總線接收數據

    可靠性

    串聯系統

    1. 只要一個子系統失效,則整個系統都將失效
    2. 可靠性:累乘
    3. 失效率(近似):累加

    并聯系統

    1. 少數子系統的失效將不會影響整個系統
    2. 可靠性:-(1-R_1)*(1-R_2)···(1-R_3)$
    3. 失效率:$\mu=\frac{1}{\frac{1}{\lambda}\sum_{j=1}^{n} \frac{1}{j}}$

    n模冗余模型

    1. 數據輸入n個子系統中,它們各自得出自己的結果,然后匯總到表決器,表決器將遵循少數服從多數的原則,輸出大多數子系統得到的那個答案然后進行輸出

    校驗碼

    奇偶校驗碼

    1. 在編碼中增加一維校驗位來使校驗碼中1的個數為奇數(奇校驗)或偶數(偶校驗)
    2. 常用奇偶校驗碼:水平奇偶校驗碼、垂直奇偶校驗碼、水平垂直校驗碼
    3. 可以檢測出奇數位(出錯的位數)出錯的編碼,但不能發現偶數位出錯的情況
    4. 只能檢錯,不能糾錯

    海明碼

    1. 利用奇偶性來檢錯和糾錯的校驗方法
    2. 設數據位是n位,校驗位為k位,則必須滿足:^k-1>=n+k$

    :求信息1011的海明碼
    (1)^r\ge x+r+1$,確定校驗碼為三位:^3\ge4+3+1$.分別放在^0=1、2^1=2、2^2=4$位
    x為信息位的個數
    (2)列出校驗位公式
    =2^2+2^1+2^0,6=2^2+2^1,5=2^2+2^0,3=2^1+2^0$
    $r_2=I_4\oplus I_3\oplus I_2$
    $r_1=I_4\oplus I_3\oplus I_1$
    $r_0=I_4\oplus I_2\oplus I_1$
    (3)根據公式得$r_2=0,r_1=0,r_0=1$
    (4)將數據填入表格

    7

    6

    5

    4

    3

    2

    1

    位數

    $I_4$

    $I_3$

    $I_2$


    $I_1$



    信息位




    $r_2$


    $r_1$

    $r_0$

    校驗位

    海明碼- 知乎

    循環冗余校驗碼

    1. 在發送端,先把數據劃分為組。假定每組 k 個比特
    2. CRC 運算在每組 M 后面再添加供差錯檢測用的 n 位冗余碼,然后構成一個幀發送出去。一共發送(k + n)位
    3. 幀檢驗序列 FCS:在數據后面添加上的冗余碼
    4. 僅用循環冗余檢驗 CRC 差錯檢測技術只能做到無差錯接受
    5. 可以檢錯,不能糾錯

    輸入輸出(I/O)控制方式

    1. 輸入輸出系統是一組固化到計算機內主板上一個ROM芯片上的程序程序查詢方式一次只能讀/寫一個字CPU和I/O(外設)只能串行工作,CPU需要一直輪詢檢查由CPU將數放入內存中斷驅動方式I/0設備通過中斷信號主動報告I/0操作已完成CPU和I/0 (外設) 可并行工作CPU利用率得到提升由CPU將數放入內存直接存儲器方式(DMA)CPU和I/0 (外設) 可并行工作僅在傳送數據塊的開始和結束時才需要CPU的干預由外設直接將數據放入內存一次讀寫的單位為“塊”而不是字

    CPU是在一個總線周期結束時響應DMA請求的,即不是DMA一請求CPU就響應,而是CPU在接收到DMA請求后,在該系統總線周期結束后進行響應,因為DMA控制器在需要的時候會代替CPU作為總線主設備,在不受CPU干預的情況下,控制I/O設備與系統主存之間的直接數據傳輸

    通用圖靈機的基礎上,數學家馮·諾依曼進一步發明了自復制機器,回答了生物學中最為深刻的一個問題:為什么所有生物都以DNA形式進行自我描述?圖靈和馮·諾依曼,這兩位計算機科學先驅偶然發現的生命奧秘并不廣為人知,卻為研究生物系統勾畫出藍圖——把生命系統看作是計算機器。

    這篇近期發表于PNAS的文章題為“圖靈和馮·諾依曼的遺產:生命計算機的架構”,以DNA聚合酶為例,說明生物分子實際上就是計算機器;并闡釋了計算模型的層級結構可以在生物計算領域找到類似結構。通過將生物學簡化為計算形式,計算機科學可以用來將生物學系統化。反過來,計算機科學家或許能夠挖掘生物計算中的自然宇宙,利用數十億年的自然演化來發現新的計算模型或算法。展望未來,生物學和計算機科學可以看作是緊密相連的同一門學科,一門研究機器行為的學科。

    撰文 | Hashim M. Al-Hashimi

    翻譯 | 汪顯意

    審校 | 小木球

    編輯 | 梁金

    目錄

    摘要

    1. 圖靈的通用計算機(Universal Computing Machine)

    2. 馮·諾依曼的通用構造機(Universal Constructor)

    3. 分子計算(Molecular Computation)

    4. 作為計算機的天然生物分子

    5. 生物計算(Biological Computation)的一個具體例子

    6. 生命計算機的層級

    7. 解碼生命計算

    論文題目:

    Turing, von Neumann, and the computational architecture of biological machines

    論文地址:

    https://www.pnas.org/doi/10.1073/pnas.2220022120

    摘要

    20世紀30年代中期,英國數學家和邏輯學家艾倫·圖靈(Alan Turing)發明了一種想象中的機器,它可以模擬人類計算者操縱有限符號裝置(finite symbolic configuration)的過程。這一發明為現代可編程計算機提供了基礎,從而開創了一個新的科學領域——計算機科學。十年后,在圖靈機的基礎上,美籍匈牙利數學家約翰·馮·諾依曼(John von Neumann)進一步發明了一種想象中的能夠進行開放式演化的自復制機器。通過他的機器,馮·諾依曼回答了生物學中最深刻的問題之一:為什么所有的生物都以DNA形式進行自我描述?兩位計算機科學先驅早在DNA雙螺旋被發現多年之前,就偶然發現了生命的奧秘,但這個故事并不為人所知,甚至很多生物學家都不知道,你也不會在生物教科書中找到。然而,這個故事在今天和在八十年前一樣重要:圖靈和馮·諾依曼留下了研究生物系統的藍圖,即把生命系統看作是計算機一樣。這種方法可能是回答生物學中許多問題的關鍵,甚至可能引領計算機科學的再進步。

    幾個世紀以來,人類文明一直癡迷于建造自動機,令它們通過遵循預定的指令集來執行機械操作。從布谷鳥鐘到自動開啟的寺廟大門,自動機被用作工具、宗教奇觀和解釋科學原理的原型。當人們可以用自動機來模仿動物的行為時,便會挑戰 “某個東西是‘活的’意味著什么?” 這一說法。大約在20世紀中葉,馮·諾依曼開始對建造真正意義上“活的”自動機展現出興趣:一個可以自我復制的機器,就可能進化成更復雜的機器。

    馮·諾依曼被廣泛認為是20世紀最有影響力的思想家之一,他對量子力學的數學基礎做出了許多根本性的貢獻,是博弈論的先驅之一,也是現代計算機邏輯和設計原理背后的主要架構師[1]。在20世紀40年代早期,馮·諾依曼開始對“控制論”[2]這一新興領域產生興趣,該領域關注于研究動物和機器的行為。由于兩者都遵循邏輯和機械約束下的指令,控制論學者認為動物和機器在信息、通信和控制機制方面有很多共同之處

    在比較自然和人工機器時,馮·諾依曼發現一個有趣的現象,即生物體可以在幾代之后演化成更復雜的生物體[3, 4]。他認為,這種行為很難被設計成一臺人工機器。如果機器A要構造機器B,它必須包含完整的B描述。此外,A還必須包含額外的材料來管理B的構造。因此,B不可能比A更復雜,而隨著一臺機器建造另一臺機器,自然的趨勢將是退化。

    1 圖靈的通用計算機(Universal Computing Machine)

    艾倫·圖靈是20世紀的另一位思想巨人,也是計算機科學和人工智能的先驅,他還因在第二次世界大戰期間破解納粹密碼(恩尼格瑪)而聞名。為了設計一臺可以構建更復雜機器的假想機器,馮·諾依曼從圖靈那里獲得了靈感,圖靈幾年前曾構想了一臺假想的“通用”機器,可以計算任何其他機器可以計算的任何東西[5]

    圖靈發明他的機器不是為了解決任何生物學中的問題,而是為了解決“判定問題(decision problem)”。這個問題被當時杰出的德國數學家大衛·希爾伯特(David Hilbert)稱為“數理邏輯的主要問題”,它要求一種通用算法,可以通過有限的過程來決定一個任意的數學命題(陳述)是否可以使用邏輯規則從一組給定的公理中證明。公理是被認為是真的陳述。算法(algorithm)是一個遵循規則來尋找解決方案的系統過程。這個詞來源于“algorithmi”,是“Al-Khwarizmi”的拉丁化版本,Al-Khwarizmi 是9世紀的波斯數學家,他首先引入算法來解決代數問題(代數 algebra 一詞來源于阿拉伯語“al-jabr”,意思是“破碎部分的重新組合”)。當用特定語言表達時,算法被稱為計算機程序。

    馮·諾依曼以其數學證明能力而聞名。1926年,在評論希爾伯特的判定問題時,他猜想該問題的判定一定是否定的,但是“我們不知道如何證明這一點”。十年后,圖靈證明了這個判定確實是否定性的。理論上的困難在于,人們必須從可以想象到的天文數字級的程序方案中嘗試每一個程序,并證明它們都不起作用。圖靈想出了一個絕妙的解決方案。將計算簡化為簡單機器可以執行的基本步驟。通過精確定義什么是可計算的,圖靈用他的抽象機器證明了沒有一種通用算法可以決定一個公式是否是可證明的。1936年,24歲的圖靈發表了一篇具有里程碑意義的論文[5],這篇論文不僅解決了判定問題,而且可能更重要的是,為計算機科學的新領域和通用可編程計算機奠定了基礎。

    圖靈想象中的機器由一條無限長的磁帶和一個磁頭組成,磁帶被分成幾段,磁頭可以掃描磁帶,一次寫一個符號,并沿著磁帶向右或向左移動一段。為了“記住”它從一個步驟到下一個步驟所做的事情,圖靈允許機器具有不同的“狀態”,他設想這些狀態代表一個人執行計算時不同的意識狀態。然后,機器遵循以轉換表形式給出的一組規則,該轉換表為每個初始狀態和掃描到的符號指定了特定操作(例如,將磁頭向左或向右移動一段,或者寫入“0”或“1”)及其最終狀態。例如,一個規則可能是:“如果磁帶磁頭處于狀態A并掃描0,請將磁頭向右移動一段并鍵入1,然后將其狀態更改為狀態B”。轉換規則還可以指示機器不改變狀態或完成并停止操作。依照轉換規則,機器根據掃描獲得的符號從一個狀態跳轉到另一個狀態,每次執行不同的操作。計算的輸入是寫在磁帶上的原始符號,而輸出則是當機器最終停止時寫在磁帶上的任何東西。

    盡管它很簡單,但圖靈證明了他的機器可以執行一臺機器可以執行的任何計算。所需要做的就是向他的機器提供另一臺機器的描述,他就可以通過將另一臺機器的轉換表編碼到磁帶上來完成。描述機器的轉換表本質上就是機器本身,并且可以有無限多個可能的轉換表來對應無限多個不同的機器。這種廣義計算模型被稱為“通用圖靈機(Universal Turing machine),它形成了現代通用可編程計算機的理論基礎。

    圖1. 通用圖靈機(Universal Turing machine)

    圖靈可以用他的抽象機器來枚舉所有可能的算法,并證明判定問題沒有解決方案[5]。假如這樣的算法確實存在,那么就有可能對圖靈機進行編程,以預測第二臺圖靈機是否會在給定任意輸入后最終停止運行或陷入惡性的無限循環。圖靈證明了這樣的圖靈機在邏輯上是不可能的。他使用了一種稱為歸謬法或反證法(reductio ad absurdum)的策略。他假設存在這樣一臺停下來的機器,然后證明將這臺機器喂給自己會導致矛盾。

    圖靈在證明過程中把機器喂給它自己,在這個過程中引出了自指(self--reference)概念,這并非巧合。在20世紀初,自指的命題產生了悖論,并在數學領域造成了嚴重的破壞,對希爾伯特本人熱情擁護的正統的公理系統所具有的一致性和完備性提出了質疑。在圖靈開始研究他的機器幾年前,奧地利邏輯學家和數學家庫爾特·哥德爾(Kurt G?del)給出了關于自指的命題:“這個命題是不可證明的”,表明并非數學系統中的所有正確命題都可以從公理中證明[6],此舉震撼了數理邏輯的核心基礎。馮·諾依曼在設計他的自我復制機器時,同樣遇到了處于分子生物學核心位置的自指問題。

    2 馮·諾依曼的通用構造機(Universal Constructor)

    為了建造一臺能夠演化出更復雜機器的通用自復制機器,馮·諾依曼意識到他需要擴展圖靈機的概念,使之可以輸出另一臺機器,而非打印一串1和0的磁帶[1]。馮·諾依曼設想了一臺由三個部件組成的機器:一個描述機器的“藍圖(blueprint)”,就像圖靈磁帶一樣,里面有如何建造另一臺機器的指令;一個通用的“構造機(constructor)”,用來解碼構造機器的指令;還有一種通用的“復制機(copying machine)”,可以復制這些指令[3, 4]。機器使用這些指令復制自己,然后復制這些指令,再將它們輸入新機器,以此類推。

    為了使這臺機器能夠制造出超越其自身復雜性的機器,馮·諾依曼還加入了另一個關鍵因素。40年前,荷蘭植物學家雨果·德弗里斯(Hugo de Vries)發現,一種新形態的月見草可以隨機自發生長,并繁殖許多代。他為這樣的變化創造了一個新詞:“突變(mutation)”。正如自然界中的突變可以自發產生一樣,馮·諾依曼允許復制機在復制指令時出錯。復制錯誤有可能導致機器產生可執行的變種,那么就可能通過自然選擇演化出更復雜的機器

    我們現在知道,生物體就是馮·諾依曼的自我復制機器在真實生命中的一種實現。以DNA序列形式攜帶指令的遺傳磁帶首先被轉錄成相應的信使RNA磁帶,然后輸入到一個通用的構造機——“核糖體”中,核糖體將RNA信息翻譯成相應的氨基酸序列,這些氨基酸序列指定了蛋白質磁帶。反過來,蛋白質磁帶會自發地折疊成分子裝置,為細胞提供主要的功能。當生物體繁殖時,DNA磁帶被聚合酶復制并從父母傳給后代,這就解釋了遺傳是如何工作的。復制DNA時可能會發生錯誤,導致生物種群多樣化。最終,一些突變會展現出一種優勢,經過幾代的演化,那些具有優勢的生物體會迅速繁殖并占據整個種群。這種突變和自然選擇的循環就是生物學家所說的“達爾文進化論(Darwinian evolution)”——這個過程標志著生物學和生命的開始。從DNA到RNA,再到蛋白質的信息流,就是弗朗西斯·克里克(Francis Crick)所說的“分子生物學的中心法則(Central Dogma of Molecular Biology)[7]

    1948年9月20日,在加州理工學院舉行的“大腦行為機制的希克森研討會”上,馮·諾依曼在一次演講中描述了他的自復制機器[1, 3](圖2)。這是在DNA雙螺旋結構被發現的5年前[8],在克里克提出分子生物學的中心法則的12年前[7]。那時,DNA還是遺傳信息載體的主要競爭者。

    圖2.(左)1948年宣傳希克森研討會的傳單。(右)與會者合影。后排從左到右分別是 Henry W. Brosin,Jeffress,Paul Weiss,Donald B Lindsley,John von Neumann,J. M. Nielsen,R. W. Gerard,H. S. Liddell。前排分別是Ward C Halstead,K. S. Lashley,Heinrich Klüver,Wolfgang K?hler 和 R. Lorente de No。圖片由加州理工學院檔案管理員Loma Karklins提供。

    包括馮·諾依曼的演講在內的研討會內容于1951年被集合成書[3]。根據演講稿,馮·諾依曼清楚地看到了他的自復制機器和生物體之間的聯系,他指出,“……指令ID大致影響基因的功能。同樣清楚的是,復制機B執行繁殖的基本行為,即遺傳物質的復制,這顯然是活細胞增殖的基本操作。也很容易看出,系統E,特別是ID的任意改變,如何能表現出某些典型的性狀,這些性狀與突變有關,通常是致命的,但有也有可能繼續繁殖。”

    馮·諾依曼認為,為了實現自我復制,人們需要一種機制,不是復制機器本身,而是復制一套建造機器的指令,在這一點上,馮·諾依曼的非凡洞察力是公認的。他的邏輯依據是,機器是“變化和反應”(varying and reactive)的,僅僅觀察它就可能導致難以預見的變化。相反,指令帶是“準靜態的”,并且不太可能隨著觀察而改變。因此,由于生物體需要復制,它們會攜帶構建自身的指令,而指導如何構建生物體的指令會比生物體自身的指令更精確地被復制。

    今天,我們認為指令是復制來的是非常自然的。指令確實指導機器如何構建指令自身。馮·諾依曼認識到,這樣一個方案會導致一個自指類型的深層邏輯問題。指令必須包括用于構建指令本身的附加指令(稱為A)。然而,因為A是機器的一部分,所以需要提供指定如何制造A的附加指令B。但是接下來,需要C來描述B,以此類推。這最終陷入了一個“惡性循環”,如同一幅包含自身副本的圖片,永無止境。馮·諾依曼將指令與機器的其余部分分離,并采用一個單獨的設備來復制指令,從而避免了這種惡性循環。復制不需要額外的指令,一個模具本身就提供了鑄造一個雕塑而非其他東西所需的信息。DNA就是自身復制的模版。

    通過他的機器,馮·諾依曼回答了生物學中最深刻的問題之一:為什么所有的生物體都以遺傳分子——如復制的DNA——的形式攜帶自我描述并傳遞給后代?這一特性將生物與非生物區分開來,將生物學與所有其他學科區分開來。許多無生命的自然系統是復雜的;但只有生物才能自我描述(self--description)。馮·諾依曼的機器告訴我們,我們自身攜帶著自我描述的信息,因為指令可以比有機體本身更精確地進行復制,而復制錯誤或突變導致的變異是進化的基礎。DNA的復制是為了避免陷入自指惡性循環的困境。馮·諾依曼不僅為生物學中最大的革命之一奠定了基礎,而且他還告訴我們生物體為什么是一種基于邏輯原理而以如此的構造鏈接起來的機器。

    通過回顧我們得知,很明顯,馮·諾依曼的演講幾乎沒有在生物學界產生影響。希克森研討會的與會者和組織者之一,著名化學家萊納斯·鮑林(Linus Pauling)幾年后將他的注意力投入到解決DNA的結構問題上[9],但他從未提及馮·諾依曼的工作。分子生物學的先驅之一西德尼·布倫納(Sydney Brenner)是一個明顯的例外。早在1952年,他就注意到了馮·諾依曼的工作,但用他自己的話說:“……當時的我還不夠聰明,沒有真正意識到這就是DNA和遺傳密碼的全部內容。”西德尼也是最早發現DNA雙螺旋結構的科學家之一。他說,當他在1953年第一次看到雙螺旋的時候,就想到了生物信息的概念和它與馮·諾依曼的自復制機器的聯系[10]。西德尼沒有錯過見證馮·諾依曼和圖靈的工作,贊美它們對于生物學的影響[11],但這似乎也沒有對今天的生物學界產生什么影響。

    3 分子計算(Molecular Computation)

    我們能把生物體和計算機之間的這種類比推廣到多遠呢?每一種生命現象,包括我們如何感知世界,都源于細胞內生物分子的行為和相互作用。如果這些生命成分的基本行為可以用計算機來描述,那么我們所稱之為生命的一切都必然是計算的產物。大自然有沒有發明一些生物分子來實現分子計算呢?如果有的話,這些計算解決了什么類型的問題?

    生物計算簡史

    生物分子是計算機器的想法可以追溯到20世紀60年代初,當時生物學家弗朗索瓦·雅各布(Francois Jacob)和雅克·莫諾(Jacques Monod)提出,生物分子可以執行編程語言常見的條件語句來控制細菌中的蛋白質生產。在20世紀70年代,查爾斯·貝內特(Charles Bennett) 將RNA聚合酶(將DNA轉化為信使RNA)與圖靈機進行了比較,推測分子可以是更節能的計算機器[13]。但倫納德·阿德曼(Leonard Adleman)又花了20年時間才展示了分子計算的第一個真實的例子,使生物分子作為計算機器的概念具體化。

    Adleman利用DNA單鏈可以結合形成DNA雙鏈的特殊性質,解決了一個被稱為“旅行商問題”的算法問題[14]。這個非平凡的問題要求在航線連接的城市之間找到最短路徑,并且每個城市恰好經過一次。通過創造代表城市和航班的DNA分子,然后在試管中組合它們,他可以在幾分鐘內得到答案。

    Adleman的工作以后,分子計算已經被用于解決各種算法問題,例如哈密頓路徑問題(Hamiltonian path problem)[14],布爾可滿足性問題(Boolean satisfiability problem)[15]和騎士放置問題(knight placement problem)[16]等。此外,分子計算已被用于從分子和生物磚(biological building blocks)開始設計復雜的邏輯電路,使其能夠應用于藥物篩選、環境監測和疾病診斷[17]等方向。

    天然分子(biomolecules)也可以做生物計算嗎?

    盡管在分子計算方面取得了非凡的成就,但大多數生物學家并不認為生物分子是計算機器,也不認為它們催化的生化反應是一種計算形式。結構生物學是一個試圖通過在原子尺度上確定生物分子的3D結構來理解它們如何工作的領域,在結構生物學發表的大多數論文中,你不會找到計算機科學語言。結構生物學家尚未接受生物分子作為計算機器的概念,因為迄今為止實現所有的分子計算都依賴于工程生物分子解決算法問題,這些問題與天然生物分子幾乎沒有相關性,并且在自然界的生物分子中也沒有明確的類似物。因此,雖然我們可以用能夠解決哈密頓路徑問題的生物分子來設計計算機,但我們在自然界的生物分子中同樣找不到這樣的程序。

    系統生物學

    然而,幾十年來我們已經知道天然生物分子可以用來處理信息。在20世紀60年代早期,弗朗索瓦·雅各布(Francois Jacob)和雅克·莫諾(Jacques Monod)對乳糖操縱子(lac operon)進行了開創性的研究,揭示了細菌如何根據糖濃度來調節負責糖分解的酶的水平。在這里,一種對糖酶特異的阻遏蛋白與相應基因的DNA結合,阻止RNA聚合酶產生糖酶的mRNA。糖分子與阻遏蛋白結合,使其從DNA上脫落,從而產生mRNA和酶。一旦糖分子被消耗,阻遏蛋白就返回到DNA,又會阻斷糖酶的合成。重要的是,這不僅僅是一個開關。通過確定阻遏蛋白分子停留在DNA上或離開DNA的時間比例,糖濃度非常精確地將酶的水平調整到所需,從而建立了一個精確的反饋回路。

    在過去幾十年里,系統生物學領域已經發現了生物系統中使用的大量邏輯電路,揭示了細胞內信息處理的大量并行性,這是馮·諾依曼當時的思想沒有完全捕捉到的。因此,系統生物學已經將生物分子的信息處理能力建立在堅實的數學基礎上,并且揭示了那些只能通過將生物系統整體地視為許多相互作用的生化反應的網絡來進行建模才能進行解釋的行為[18-20]。這種系統性的方法已經解決了生物學中的許多基本問題,例如,結構、振蕩或波如何在同質環境中出現。圖靈在他生命的最后階段為這些努力做出了貢獻。在20世紀50年代早期發表的另一篇具有里程碑意義的論文中,他從理論上展示了兩種化學物質或“形態發生素”(morphogens)如何相互擴散和反應,從而產生空間斑圖,就像豹子皮膚上的斑點從均勻同質的狀態所展開的排列一樣。

    因此,幾十年來,分子生物學中的信息處理已經被明確地解決了很多次。然而,盡管系統生物學取得了巨大的進步,生物分子仍然通常被視為將輸入轉換為輸出的黑盒,而沒有提供有關計算其基本步驟的分子描述。我們可能知道軟件,但缺乏對機器的硬件描述,來說明一個生物分子的序列是如何決定它是怎樣處理信息的。結構生物學領域通常提供完成生化反應所需的各種微觀基本步驟的詳細原子描述,但卻很少有人嘗試將天然生物分子的這種行為置于計算機器的背景之下。

    4 作為計算機的天然生物分子

    圖靈在描述計算所需的原材料時,不知不覺地描述了所有天然生物分子的行為。就像圖靈機一樣,生物分子在“掃描”(scan)底物時,也會在不同的構象(conformational)或化學“狀態”(states)之間轉換。每完成一次不同的操作,比如添加或刪除一個化學基團,就發生一次這樣的轉換。正如算法需要一系列合乎邏輯的順序步驟來找到解決方案一樣,生物分子也需要經過許多邏輯的和順序的步驟來催化多步驟的生化反應。因此,生物分子的行為方式是因為它們是計算機,它們催化的反應是一種計算形式。

    底物掃描

    為了方便起見,圖靈將寫在2D紙上的信息簡化為1D磁帶上包含若干0或1的線性數組。然后采用連續的觀察來掃描磁帶,一次一個字符。圖靈認為這樣設置比較合理,因為冗長的符號很難“一眼”看到。生物分子還通過一種稱為“分子識別”(molecular recognition)的過程掃描底物分子。與圖靈機不同的是,它們一次觀察底物分子上的幾個官能團(符號)。此外,符號不限于二進制(0或1),也不必須以1D形式排列。相反,大自然在3D場景將數百種不同的化學基團鏈接,創造出數千種形狀、大小和電子特性不同的底物。然后,生物分子通過活性位點與底物進行物理結合,從而一目了然地解碼該3D信息。這些活性位點具有最佳定位的功能基團,可以與底物上的化學基團相互作用。

    當正確的底物以正確的方向觸及活性位點,就會像鑰匙插入鎖一樣,識別并粘著在生物分子上,進而引發可產生計算行為的變化。其他分子會被彈開,不起作用。大自然使用分子擴散作為一種非常有效的機制來穿越短距離,也作為回路連接的一種更經濟的替代品。蛋白質掃描細胞環境中大量的底物分子,每秒鐘被來自四面八方的底物分子不斷轟擊數萬億次。

    有序操作

    生物分子通常在一個底物上執行一種特定的操作,比如,破壞一個特定的鍵,之后釋放產物。那么,生物分子如何執行復雜計算所需的多個有序操作呢?演化發明了一個巧妙的解決方案:使一個生物分子的產物成為另一個生物分子的底物,如此進行下去。在生物計算中,磁帶可以從操作一個轉換表的一臺機器上掉下來,并跳到操作第二個轉換表的第二臺機器上。

    狀態和記憶

    通過賦予機器多種狀態,圖靈在不知不覺中解釋了生物分子最神秘的特性之一。教科書將DNA等生物分子描述為靜止的物體,但事實并非如此。在短短一秒鐘內,DNA就會自發地轉變成數千種不同的結構,稱為“構象狀態”(conformational states)。甚至它的化學成分也可以通過表觀遺傳修飾(epigenetic modifications)而改變。因此,雖然我們可以為一棟建筑繪制建筑藍圖,但當涉及到生物分子的分子世界時,我們需要指定一個具有許多不同構象和化學可能性的景觀,每種可能性都有特定的概率[22]。這種景觀使生物分子能夠在不同的狀態之間轉換,這是圖靈機的基本特征。

    圖靈機模型告訴我們,生物分子之所以可以形成不同的狀態,是因為它們提供了一種記憶形式,使它們能夠在從一個邏輯步驟移動到下一個邏輯步驟時“記住”自己在做什么。事實上,可以存儲的信息量與狀態數之間存在簡單的數學關系。一個比特的內存有兩個狀態,兩個比特有四個狀態,n個比特有2n個狀態。因此,具有n個構象或化學狀態的生物分子可以編碼log2(n)比特或log256(n)字節的信息(1字節有28=256個狀態)。在熱力學領域,log(n)也被稱為熵,是無序的度量。然而,正如我們將看到的,要想把這個潛在的巨大的構象狀態庫作為一種記憶形式來訪問,需要有專門增加給定狀態概率的方法。

    圖靈還告訴我們,生物分子改變狀態是為了“改變它們的意識狀態”。因此,根據其狀態的不同,相同的生物分子可以執行不同的任務。例如,DNA的雙螺旋結構用于存儲遺傳信息,但復制DNA則需要單鏈結構。因為不同的構象和化學狀態以不同的概率發生,所以生化反應的命運并不是一成不變的,而是可以分支成具有不同概率的幾種不同結果。這些結果中包括一些罕見事件,例如復制DNA時的復制錯誤,這可能導致對生命和演化至關重要的突變。由于生物分子的行為和它們所催化的反應是概率性的,我們永遠無法預測動物的行為;我們所能做的就是把概率歸于未來事件。

    5 生物計算(Biological Computation)的一個具體例子

    為了讓大家相信生物分子實際上就是計算機器,我嘗試把生物分子的行為簡化成一個邏輯轉換表,就像圖靈為他的機器選擇的那樣。我選擇了馮·諾依曼磁帶自復制機的生物學類似物——DNA聚合酶,這種酶的任務是復制DNA,在進化中處于中心地位。

    像圖靈機一樣,DNA聚合酶通過連續觀察來掃描DNA模板鏈中的核苷酸,將遇到的每個核苷酸放入其結合口袋(binding pocket)中。然后,聚合酶通過與溶液中的核苷酸三磷酸單體分子G、C、A和T物理結合,和結合袋中的核苷酸形成堿基對,從而實現對它們的掃描。之后聚合酶合并(“寫入”)結合的核苷來合成互補的DNA鏈副本。為了完美地復制DNA,聚合酶必須只合并滿足沃森-克里克配對規則的單體:如果核苷酸是“G”則結合“C”,如果是“C”則結合“G”,如果是“A”則結合“T”;否則拒絕該單體。但是聚合酶不能“看到”單體;那么它是如何實現這些規則的呢?

    圖3.(左)典型的沃森-克里克堿基對形成一個矩形,被稱為“沃森-克里克幾何”(Watson–Crick geometry)。(中)非經典錯配,如G-T和A-C,形成被稱為“擺動”(wobble)構象的非沃森-克里克幾何形狀。(右)錯配,可以通過堿基的互變異構化(tautomerization of the bases)(用星號表示)得到類似沃森-克里克幾何的形狀。

    沃森-克里克堿基對都有一個共同的矩形形狀,而所有其他錯配的堿基對,如G-T和A-C形成一個不規則的幾何形狀(圖3),聚合酶使用這些幾何差異來區分正確(矩形)和不正確(不規則)的單體(圖3)。然后,聚合酶周期性地通過一系列構象來實現轉換規則“只接受形成矩形堿基對的單體”。下面是它的工作原理。

    圖4. 高保真DNA聚合酶的核苷酸合并機制。注意,這個機制可以因聚合酶而異。給出的實例代表聚合酶β和ε的機制[23-25]。(A)沃森-克里克堿基對的正確合并。(B)誘導擬合子程序增加了高保真聚合酶合并核苷酸的精度。(C)通過堿基互變異構實現的錯配可導致復制錯誤,如果不加以糾正就會導致突變。

    聚合酶構象景觀包括:高度可能的“打開”狀態,其中蓋子(lid)打開,允許單體進入;和一個不太可能的“關閉”狀態,其中蓋子關閉,阻止單體進入(圖4A)。當正確匹配的核苷酸進入結合口袋時,它與模板鏈中的核苷酸形成矩形沃森-克里克堿基對。沃森-克里克堿基對傾向于關閉蓋子,就像蓋子與匹配的容器合在一起一樣。因此,閉合狀態現在是最可能的構象(圖4A)。這就是聚合酶如何執行轉換規則:“如果堿基對具有矩形形狀,則關閉蓋子”:

    就像圖靈機一樣,關閉狀態允許聚合酶“記住”:它已經消耗了正確的單體。關閉狀態存儲這個中間結果。處于關閉狀態的聚合酶在其活性位點有正確的單體結合作為輸入,轉變為具有催化活性的構象狀態(圖4A)。因為只有正確的沃森-克里克堿基對才能通過這一步,它有助于防止錯配的堿基對進行合并。此行為由以下轉換規則描述:

    一旦處于催化活性狀態,單體就被化學連接并合并到DNA鏈增長中的互補拷貝鏈中(圖4A)。其他所有的步驟都是可逆的,而只有這個步驟不可逆并且消耗能量,因為它需要產生信息并熵減。能量由進入的核苷三磷酸單體以化學鍵的形式提供,當單體合并時,化學鍵斷裂,釋放其合并所需的能量(圖4A)。這種能量還可以幫助引導聚合酶沿著DNA磁帶移動,這樣它就可以按照下面所描述的事件序列掃描下一個核苷酸。



    合并的單體作為輸入與未合并的單體不同。合并的單體在催化狀態下引發不同的行為,導致聚合酶撤銷催化結構并回到關閉狀態(圖4A):

    區分合并的和未合并的單體在邏輯上很重要,否則,聚合酶將停留在催化狀態,無法回收或無法與后來的單體合并。同樣,合并的單體必須在關閉狀態下引發新的響應,否則,如果按照未合并的單體處理,聚合酶將在關閉狀態和催化狀態之間一直循環下去,計算機科學家稱之為“死循環”。實際上,關閉狀態通過轉變為開放狀態而不是催化狀態來響應合并的單體(圖4A)

    最后,合并的單體還引發不同于開放狀態的行為,使得DNA聚合酶沿著DNA移動一個位置以掃描下一個核苷酸(圖4A)

    此時,所有中間結果都將被丟棄,從而為第二個周期釋放內存。這個循環不斷重復,直到聚合酶遇到空白,復制過程停止。當DNA聚合酶程序運行時,計算的結果是DNA鏈的一個互補副本鏈。

    誘導配對的子程序

    像許多酶一樣,聚合酶非常精確,平均每復制10萬個字母中只會出現一個錯誤(注:這只反映了核苷酸的錯誤結合,不包括校對)。聚合酶采用另一套涉及不同構象狀態的轉換規則來主動拒絕不正確的單體。許多酶使用的這種子程序被稱為“誘導配對”(induced- fit)。下面是它的工作原理。

    當不正確的單體結合到聚合酶口袋時,它與模板核苷酸配對,形成不匹配的堿基對,具有不規則的非矩形形狀。這種錯配使蓋子無法完全閉合(圖4B),它只能部分關閉以形成“半開”(ajar)的狀態:

    作為構象景觀中的另一種狀態,半開狀態是無活性的,不能合并單體(圖4B)。如果不正確的單體結合到口袋,聚合酶使用半開狀態來主動引誘構象遠離催化活性的閉合狀態。然后半開狀態又恢復到打開狀態。

    部分關閉然后打開的循環一直持續,直到不匹配的單體最終從口袋里掉出來,這個過程可以重新開始。

    表1. 高保真DNA聚合酶合并核苷酸的轉換表,不包含動力學校對(kinetic proofreading)所需的指令。

    復制錯誤

    為什么DNA聚合酶在極少數情況下會出現復制錯誤呢?這些隨機錯誤使馮·諾依曼的機器實現了開放式的演化。因為生物分子不斷地在各種構象狀態之間扭曲,在分子計算的世界里,機器和輸入并不是一成不變的。在極少數情況下,它們可以改變。

    例如,在極少數情況下,G單體可以經歷涉及單個氫原子重新定位的化學變化(圖4C)。所得的烯醇形式 Genol 在化學上類似于A,因此可以與T配對以形成近乎完美的矩形堿基對(圖4C)[27]。偽裝成矩形堿基對,Genol-T錯配欺騙聚合酶打出錯別字,打出“G”而不是“A”(圖4C)。如果不加以糾正,這樣的錯別字將導致突變。這種“互變異構”變化是很難出現的(概率通常為1/100000)[28],這就解釋了為什么突變很少發生。它們隨機發生,這就解釋了為什么突變是偶然事件。蛋白質的3D結構也有一定概率發生轉變,從而產生不同的結果。通過這些構象波動,生物體成為了非確定性機器。

    執行“復制DNA”算法的DNA聚合酶的邏輯行為可以簡化為一個轉換表(表1)。復制DNA的算法也可以用計算機科學里的“狀態圖”(state diagram)(圖5A)來描述,這與生物化學家所說的“動力學機制”(kinetic mechanism)有很多共同之處。如果我們深入觀察,每個生物分子都可以簡化成一個描述其邏輯行為的轉換表;因此,每個生物分子都可以被描述為一臺計算機器(圖5B)

    圖5. DNA聚合酶是一種有限狀態機。(A)DNA聚合酶合并核苷酸的有限狀態機的狀態圖。q0、 q1、 q2、 q3和q4分別表示DNA聚合酶的開放、封閉、催化、半開放和停止的狀態。輸入為MA=匹配(矩形);MM=不匹配(不規則);IN=合并;BL=空白。注意,q0通過移動位置(Trans)處理輸入“IN”,然后返回到狀態q0。(B)DNA聚合酶作為計算機的圖形描述。

    6 生命計算機的層級

    計算機科學家已經詳細闡述了一個越來越強大的計算模型的層級結構,這些模型采用了越來越復雜的記憶形式(圖6)。許多這樣的機器都能在生物計算領域找到類似結構(圖6)

    圖6. 自動機和生命計算機的不同層級。

    在層級結構的底部是“有限狀態機(FSM,finite--state machine),一個將輸入轉換為輸出的轉換器(圖6)。FSM處理的信息僅存在于其狀態和輸入中,它沒有像圖靈機磁帶那樣的外部存儲器。FSM無處不在,從旋轉門到洗碗機,自動售貨機。馮·諾依曼也使用有限狀態機作為工具來闡述他的自我繁殖的抽象模型[4]。雖然看起來像圖靈機,但聚合酶在其運動、寫入和擦除設備方面受到限制,可以通過FSM模型更好地描述(圖5A和B)。細胞中充滿了FSM,成千上萬的酶和受體將化學底物、機械運動、電或光轉化為同樣多樣化的輸出。因為生物分子的行為可以隨機地改變,所以它們最好由非確定性的FSM模型來描述,其中給定的輸入可以導致具有預定義概率的多個輸出。

    層級結構中的上一個是“下推”自動機( “pushdown” automata )(圖6),機器采用存儲設備,在轉換期間將符號從“堆棧”中推入或推出。就像我們在自助餐廳看到的一疊托盤一樣,操作永遠不會在頂部元素之外的元素上工作。生物學中下推機器的例子包括上文沒有介紹的DNA聚合酶中的動力學校對(kinetic proofreading)設備。當DNA聚合酶產生復制錯誤時,不規則的錯配被推入規則的沃森-克里克堿基對堆棧中。遵循一組轉換規則,DNA聚合酶回溯一個或兩個核苷酸,從“堆棧頂部”去除錯誤摻入的核苷酸。RNA聚合酶在產生RNA時也回溯以檢測和響應信號[30]

    再往上的層級是帶有圖靈磁帶的自動機,圖靈磁帶的長度以某種方式限定(圖6),機器可以在其上自由地讀寫符號。生物分子擁有內置于其結構中的記憶磁帶,其殘基可以用各種化學取代基進行修飾,以引起更持久的狀態變化。例如,在神經細胞的特定蛋白質殘基上添加和去除磷酸基團會在大腦中編碼長期記憶。添加和刪除將DNA結合在一起的組蛋白上尾部突出的化學標記則編碼了“表觀遺傳”指令:這使得有著相同的基于DNA遺傳指令的肝細胞和腦細胞具有了不同的身份標記。

    圖靈機位于這個層級結構的頂端,它可以模擬任何其他計算機(圖6)。通過向核糖體提供適當的mRNA磁帶,它可以被編程,從而產生出任何生命計算機。確定核糖體和RNA聚合酶是否能夠通過蛋白質和RNA來實現通用計算,應該是生物計算的目標之一[31]

    7 解碼生命計算

    在證明判定問題無解的過程中,圖靈表明,無論多么強大的計算機程序,都無法預測另一個程序的命運。用馮·諾依曼的話來說就是“你無法構建一個能預測任意自動機行為的自動機”。斯蒂芬·沃爾夫勒姆(Stephen Wolfram)通過他的“計算不可約性”(computational irreducibility)原則闡述了這一觀點,該原則指出,一旦計算達到一定的復雜程度,就不能再走捷徑來理解計算的結果——完全理解輸出的唯一方法是完全運行程序[32]。而運行這個程序正是大自然在過去38億年的進化中一直在進行的實驗。每一個子代都運行一個新的程序,通過反復試錯,演化戰勝了判定問題。而這個過程必須付出的代價則是基因組并不與我們同在,我們只看到了所有存在過的生物程序中極小的部分。

    假設生物體是復雜計算的產物。在這種情況下,不可能通過測量生物化學過程的輸入和輸出來理解和計算生物體的行為,也不可能走捷徑來發現它們之間的關系;這種方法肯定會失敗。然而,由于人類基因組測序和人工智能帶來的技術革命,這種“大數據”科學模式正在滲透到生物學的許多領域。用西德尼·布倫納(Sydney Brenner)的話來說,結果是我們“淹沒在數據的海洋中,但仍然渴望知識”。

    知識要求我們將細胞內的每個生物分子還原成適當的轉換表,然后完整地運行程序。我們預計生物分子采用少量的轉換規則,這些規則可以以各種組合編織在一起,來構建活生物體中的所有生化過程。這類似于系統生物學發現的相對較小的網絡模體(motif),它們似乎是轉錄網絡的基本生物磚[20]。確定轉換規則應該是生物計算領域的目標之一。

    知識還要求我們理解如何基于生物分子的序列和物理定律來實施轉換規則,這些規則決定了生物分子的構象行為以及它如何與周圍環境相互作用。從序列中預測轉換規則應該是目標,而不是主導結構,這是最近人工智能工作的重點[33]。有了適當的轉換表,我們可以更有效地將結構生物學與系統生物學結合起來,更好地計算細胞和整個生物體的行為,并合理地對生物學進行重新編程,以滿足技術、健康和社會需求。

    通過將生物學簡化為計算形式,計算機科學這整個領域都可以被用來將生物學系統化。例如,計算復雜性領域可用于研究各種生化反應中時間、內存和能量之間的權衡,并分類和探索生物計算需要解決的多樣性問題。同時,計算機科學家可能能夠挖掘生命計算中的自然宇宙,利用數十億年來的演化來發現新的計算模型或算法,甚至可能回答數學和邏輯方面的問題。畢竟,神經元的行為建模正是神經科學家Warren McCulloch和邏輯學家Walter Pitts開發人工神經網絡的靈感來源,為人工智能奠定了基礎[34]。生物體如何利用量子力學[35]還可以為建造下一代量子計算機提供重要線索。

    展望未來,我們可能會發現生物學和計算機科學是緊密相連的,它們是同一門學科,一門研究機器行為的學科。

    注釋:本文在翻譯 biological computation 時做了區分,認為“生物計算”和“生命計算”是不同的概念。生命計算強調以生命系統為藍本的、計算的整體設計,而生物計算強調具體的以DNA、蛋白質大分子等為元件,它的原理可以和生命系統沒有關系,而單純使用計算機原理或簡單數學原理。

    參考文獻

    [1] A. Bhattacharya, The Man From the Future (Norton, 2022).

    [2] N. Wiener, Cybernetics or Control and Communication in the Animal and the Machine (Hermann & Cie/The Technology Press/John Wiley & Sons, 1948).

    [3] L. A. Jeffress, Cerebral Mechanisms in Behavior: The Hixon Symposium (Wiley, 1951), p. 311.

    [4] J. V. Neumann, Theory of Self-Reproducing Automata, A. W. Burks, Ed. (University of Illinois Press, 1966).

    [5] A. M. Turing, On computable numbers, with an application to the Entscheidungs problem. Proc. Lond. Math. Soc. 42, 230–265 (1936).

    [6] K. G?del, über formal unentscheidbare S?tze der Principia Mathematica und verwandter Systeme I. Monatshefte für Mathematik und Physik 38, 173–198 (1931).

    [7] F. Crick, Central dogma of molecular biology. Nature 227, 561–563 (1970).

    [8] J. D. Watson, F. H. Crick, Molecular structure of nucleic acids; a structure for deoxyribose nucleic acid. Nature 171, 737–738 (1953).

    [9] L. Pauling, R. B. Corey, A proposed structure for the nucleic acids. Proc. Natl. Acad. Sci. U.S.A. 39, 84–97 (1953).

    [10] S. Brenner, Interview with Sydney Brenner by Soraya de Chadarevian. Stud. Hist. Philos. Biol. Biomed. Sci. 40, 65–71 (2009).

    [11] S. Brenner, Turing centenary: Life’s code script. Nature 482, 461 (2012).

    [12] F. Jacob, J. Monod, Genetic regulatory mechanisms in the synthesis of proteins. J. Mol. Biol. 3, 318–356 (1961).

    [13] C. H. Bennett, Logical reversibility of computation. IBM J. Res. Dev. 17, 525–532 (1973).

    [14] L. M. Adleman, Molecular computation of solutions to combinatorial problems. Science 266, 1021–1024 (1994).

    [15] Q. Liu et al., DNA computing on surfaces. Nature 403, 175–179 (2000).

    [16] D. Faulhammer, A. R. Cukras, R. J. Lipton, L. F. Landweber, Molecular computation: RNA solutions to chess problems. Proc. Natl. Acad. Sci. U.S.A. 97, 1385–1389 (2000).

    [17] Y. Benenson, Biomolecular computing systems: Principles, progress and potential. Nat. Rev. Genet. 13, 455–468 (2012).

    [18] D. Murray, D. Petrey, B. Honig, Integrating 3D structural information into systems biology. J. Biol. Chem. 296, 100562 (2021).

    [19] H. V. Westerhoff, B. O. Palsson, The evolution of molecular biology into systems biology. Nat. Biotechnol. 22, 1249–1252 (2004).

    [20] U. Alon, Network motifs: Theory and experimental approaches. Nat. Rev. Genet. 8, 450–461 (2007).

    [21] A. M. Turing, The chemical basis of morphogenesis. 1953. Proc. R. Soc. Lond. B Biol. Sci. 237, 37–72 (1952).

    [22] H. Frauenfelder, S. G. Sligar, P. G. Wolynes, The energy landscapes and motions of proteins. Science 254, 1598–1603 (1991).

    [23] S. S. Patel, I. Wong, K. A. Johnson, Pre-steady-state kinetic analysis of processive DNA replication including complete characterization of an exonuclease-deficient mutant. Biochemistry 30, 511–525 (1991).

    [24] M. E. Dahlberg, S. J. Benkovic, Kinetic mechanism of DNA polymerase I (Klenow fragment): Identification of a second conformational change and evaluation of the internal equilibrium constant. Biochemistry 30, 4835–4843 (1991).

    [25] R. D. Kuchta, V. Mizrahi, P. A. Benkovic, K. A. Johnson, S. J. Benkovic, Kinetic mechanism of DNA polymerase I (Klenow). Biochemistry 26, 8410–8417 (1987).

    [26] D. E. Koshland, Application of a theory of enzyme specificity to protein synthesis. Proc. Natl. Acad. Sci. U.S.A. 44, 98–104 (1958).

    [27] J. D. Watson, F. H. Crick, Genetical implications of the structure of deoxyribonucleic acid. Nature 171, 964–967 (1953).

    [28] I. J. Kimsey et al., Dynamic basis for dG*dT misincorporation via tautomerization and ionization. Nature 554, 195–201 (2018).

    [29] J. J. Hopfield, Kinetic proofreading: A new mechanism for reducing errors in biosynthetic processes requiring high specificity. Proc. Natl. Acad. Sci. U.S.A. 71, 4135–4139 (1974).

    [30] E. Nudler, RNA polymerase backtracking in gene regulation and genome instability. Cell 149, 1438–1445 (2012).

    [31] H. Akhlaghpour, An RNA-based theory of natural universal computation. J. Theor. Biol. 537, 110984 (2022).

    [32] S. Wolfram, A New Kind of Science (Wolfram Media, Champaign, IL, 2002).

    [33] J. Jumper et al., Highly accurate protein structure prediction with AlphaFold. Nature 596, 583–589 (2021).

    [34] W. S. McCulloch, W., Pitts, A logical calculus of ideas immanent in nervous activity. Bull. Math. Biophys. 52, 99–115 (1943).

    [35] J. McFadden, J. Al-Khalili, The origins of quantum biology. Proc. Math. Phys. Eng. Sci. 474, 20180674 (2018).

    本文經授權轉載自微信公眾號“集智俱樂部”。

    特 別 提 示

    1. 進入『返樸』微信公眾號底部菜單“精品專欄“,可查閱不同主題系列科普文章。

    2. 『返樸』提供按月檢索文章功能。關注公眾號,回復四位數組成的年份+月份,如“1903”,可獲取2019年3月的文章索引,以此類推。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有