代碼只是一串字符,為什麼能通過指令驅動機器

一切最終都是電信號,電信號的輸入、轉換、輸出。信息可以用二進制表示,二進制信息的存儲可以是光存儲、磁存儲或電存儲。二進制信息的布爾運算可以用開關電路實現,開關電路的邏輯元件可以是繼電器、電子管或晶體管。

1 字符編碼為二進制的0、1序列;

2 鍵盤、鼠標的輸入(形成電信號,表示為字符或字符組合表示的指令);

3 數據(0、1序列)存儲實現(磁極、光盤的坑、晶體管的開關來表示);

4 存儲的數據讀入內存和寄存器(電容+晶體管實現);

5 控制器讀取內存中數據和指令(同樣是是0、序列的組合),按指令產生控制信號;

6 運算器在控制信號的控制下執行運算(由加法器組合而成);

現代電腦絕大部分都是馮諾依曼機,馮諾依曼機基本特點就是“存儲程序控制”概念。

存儲可以是光存儲、磁存儲,最終轉化為電存儲(由晶體管實現),“寫入內存”的動作,就是由外部的數據線、對電容進行充電或放電,從而完成寫入 1 或 0 的數字數據。所以,字符串的代碼最終實現為一串串的由電流通斷表示的開關信號,組合後產生能控制的開關信號輸出,最終實現為指令驅動機器。

存儲實現

存儲器的“單元”(Cell)是指用來存取資料的最小結構,如果含有一個晶體管(Transistor)與一個電容(Capacitor)則稱為“1T1C”;如果含有一個晶體管(Transistor)與一個電阻(Resistor)則稱為“1T1R”;如果含有一個二極體(Diode)與一個電阻(Resistor)則稱為“1D1R”。

存儲器的每個“單元”不一定只能儲存 1 個位的資料,由於我們對存儲器容量的要求越來越高,每個“單元”能儲存的資料越來越多,依照每個“單元”能儲存的資料位數又分為:單層單元(Single-Level Cell,SLC)、多層單元(Multi-Level Cell,MLC)、三層單元(Triple-Level Cell,TLC)、四層單元(Quad-Level Cell,QLC)等。

靜態隨機存取存儲器(SRAM:Static RAM)以 6 個晶體管(MOS)來儲存 1 個位(1bit)的資料,而且使用時“不需要”週期性地補充電源來保持記憶的內容,故稱為“靜態”(Static)。

SRAM 的構造較複雜(6 個晶體管儲存 1 個位的資料),不使用電容所以存取速度較快,但是成本也較高,因此一般都製作成對容量要求較低但是對速度要求較高的存儲器,例如:中央處理器(CPU)內建 256KB、512KB、1MB 的“快取存儲器”(Cache memory),一般都是使用 SRAM。

動態隨機存取存儲器(DRAM:Dynamic RAM)以一個晶體管(MOS)加上一個電容(Capacitor)來儲存一個位(1bit)的資料,而且使用時“需要”週期性地補充電源來保持記憶的內容,故稱為“動態”(Dynamic)。

由於快取存儲器(SRAM)與主存儲器(SDRAM、DDR)是執行程序用來“暫時儲存”程序與資料的地方,與處理器內的運算單位直接使用匯流排(Bus)連接,一般都是用“位”(bit)來計算容量;而輔助存儲器是“永久儲存”程序與資料的地方,由於一個位組(Byte)可以儲存一個半型字,因此一般都是用“位組”(Byte)來計算容量。

代碼只是一串字符,為什麼能通過指令驅動機器

DRAM 構造較簡單(一個晶體管加上一個電容),由於電容充電放電需要較長的時間造成存取速度較慢,但是成本也較低,因此一般製作成對容量要求較高但是對速度要求較低的存儲器,例如:個人電腦主機板通常使用 1GB 以上的 DDR-SDRAM 就是屬於一種 DRAM。由於處理器的速度越來越快,傳統 DRAM 的速度已經無法滿足要求,因此目前都改良成 SDRAM 或 DDR-SDRAM 等兩種型式來使用。

布爾代數與全加器

在布爾代數裡,X代表一個命題,x=0表示命題為假,x=1表示命題為真,香農發現,如用x表示一個由繼電器和普通開關組成的電路,那麼x=0就表示開關合上,x=1就表示開關打開;接著,又闡述了串聯電路和並聯電路與邏輯學中聯言命題和選言命題的一致性。

代碼只是一串字符,為什麼能通過指令驅動機器

代碼只是一串字符,為什麼能通過指令驅動機器


代碼只是一串字符,為什麼能通過指令驅動機器

循環電路實現數據的電存儲(SR觸發器):

代碼只是一串字符,為什麼能通過指令驅動機器

-End-


分享到:


相關文章: