今天,當我們坐在電腦前沉浸在游戲中,和遠在他鄉的女友、朋友、家人聊天和語音,在互聯網上沖浪、查找資料,通過網絡購買自己喜歡的圖書和零食,這一切目前都覺得如此地愜意和自得。但是今天的一切,也許大部分都想不到,為了這一些是多少人前赴后繼,付出了可歌可泣的貢獻才得到地。
最近,HW HarmonyOS又沖上熱搜,大家都希望中國又一款自主可控的國產系統,實現操作系統的“彎道超車”,回顧中國歷史上的操作系統有很多不堪回首的事件,但是曾經發生的事情和有過的經歷,卻可以讓我們更加珍惜這來之不易的幸福。而了解成功人/事的歷史,更可讓我們受益菲淺。 現在就讓我帶大家去回顧一下,這有趣而又激勵人心的輝煌歷史。
News Watch
如今8位單片機的用途越來越少了,32位單片機越來越常見,但是你見過4-bit的CPU嗎?
1969年,日本計算機公司與英特爾合作,為其新的Busicom 141-PF *打印計算器設計12種定制芯片。英特爾工程師提出了一個只有四個芯片的家族,其中一個可以編程用于多種產品,從而激發了工程學的壯舉,極大地改變了電子學的發展方向。 當時Intel給出的解決方案是一套四塊芯片組成的微型計算機,稱為MCS-4。
它包括一個中央處理單元(CPU)芯片-4004,以及一個用于定制應用程序的支持的只讀存儲器(ROM)芯片,一個用于處理數據的隨機存取存儲器(RAM)芯片以及一個移位存儲-輸入/輸出(I / O)端口的寄存器芯片。從上面看出和目前商用計算機組成基本沒什么變化,可是那時候是1971年,感嘆其偉大!
英特爾生產了三種主要的源代碼變體:C4004,D4004和P4004。在英特爾C4004是待制造的第一芯片; 它具有白色陶瓷包裝本身上可見的灰色痕跡。C4004的生產一直持續到1976年中,開始生產Intel D4004。D4004具有塑料黑色陶瓷包裝。在英特爾P4004是塑料包裝的版本。
自1975年中以來,美國國家半導體公司和日立公司已經開發了一些輔助資源。美國國家半導體生產了兩個版本:INS4004J和INS4004D。所述INS4004J是16針黑,陶瓷DIP,而INS4004D版本是16引腳側面釬焊,陶瓷DIP。另一個來源是HD35404所作日立。第三個來源是國際微系統公司(Microsystems International),該公司實際上是從1970年中期開始制造該芯片的增強版本的(也于1971年推出)。 幾種“變形體”的區別:
Manufacturer | Model | Package |
Intel | C4004 | 16-pin Ceramic DIP |
Intel | D4004 | 16-pin Ceramic DIP |
Intel | P4004 | 16-pin Plastic DIP |
National Semiconductor | INS4004D | 16-pin Ceramic DIP |
National Semiconductor | INS4004J | 16-pin side-brazed Ceramic DIP |
Hitachi | HD35404 | 16-pin DIP |
Microsystems International | MF7114 | ? |
4004具有16個引腳,用于I / O,存儲控制器,時鐘相位,電源和復位。
引腳和說明 | |||
別針 # | 引腳名稱 | 目的 | 解釋 |
1個 | D0 | 雙向數據總線引腳 | 與ROM和RAM的地址和數據通信發生在D0-D3上。 |
2個 | D1 | ||
3 | D2 | ||
4 | D3 | ||
5 | VSS | 主要供應 | |
6 | 時鐘階段1 | 時鐘輸入 | |
7 | 時鐘階段2 | ||
8 | 同步 | ROM和RAM同步 | 通過發信號通知時鐘在上升沿來同步ROM和RAM。 |
9 | 重啟 | 重置標志 | 邏輯1清除所有處理器狀態寄存器,并強制程序計數器跳到地址0x0。RESET信號必須至少打開64個時鐘周期才能生效。 |
10 | 測試 | 測試邏輯狀態 | 信號可以通過JCN指令進行測試。 |
11 | 光盤 | CM-ROM輸出 | ROM選擇信號,用于從內存中檢索數據。 |
12 | VDD | VSS-15±5% | |
13 | CM-RAM3 | CM-ROM輸出 | 系統中4002 RAM芯片的存儲體選擇信號。 |
14 | CM-RAM2 | ||
15 | CM-RAM1 | ||
16 | CM-RAM0 |
內部結構
News Watch
寄存器組
News Watch
名稱 | 大小(bits) | |
– | Accumulator | 4 |
– | Carry/Link | 1 |
索引寄存器 | Index Registers ( IR ) | (4+4)*8 |
程序寄存器 | Program Counter ( PC ) | 12 |
程序寄存器 | Program Counter ( PC ) | 12 |
堆棧指針 | Stack Pointer ( Stack ) | 12*3 |
臨時寄存器 | TEMP.REG | 4 |
– | INSTRUCTION REGISTER | 8 |
指令集
News Watch
(帶 * 號的是雙字指令,需要兩個指令周期(1指令周期 = 8時鐘周期))
基礎指令 | ||||
HEX | 助記符 | 指令字1 | 指令字2 | 功能 |
00 | NOP | 0000 0000 | – | 無 |
1 | *JCN | 0001 CCCC | AAAA AAAA | 當條件C成立,跳轉到當前ROM頁的A地址 |
2 | *FIM | 0010 RRR0 | DDDD DDDD | 取當前頁D地址處的數據,送至IR的R號寄存器對內 |
3 | FIN | 0011 RRR0 | – | 取IR中第0寄存器對數據作為ROM頁內地址,將數據送至IR寄存器的R號寄存器對內 |
3 | JIN | 0011 RRR1 | – | 將IR中R號寄存器對內數據作為間接跳轉地址進行跳轉 |
4 | *JUN | 0100 AAAA | AAAA AAAA | 無條件跳轉至地址A |
5 | *JMS | 0101 AAAA | AAAA AAAA | 無條件跳轉至地址A,將原地址保存在堆棧SP中 |
6 | INC | 0110 RRRR | – | RRRR寄存器+1 |
7 | *ISZ | 0111 RRRR | AAAA AAAA | RRRR寄存器+1,如果結果不為0,跳轉至頁內地址A |
8 | ADD | 1000 RRRR | – | AC=AC+RRRR+C |
9 | SUB | 1001 RRRR | – | AC=AC-RRRR-C |
A | LD | 1010 RRRR | – | AC=RRRR |
B | XCH | 1011 RRRR | – | AC與RRRR交換 |
C | BBL | 1100 DDDD | – | 借助堆棧地址返回,AC=DDDD |
D | LDM | 1101 DDDD | – | AC=DDDD |
F0 | CLB | 1111 0000 | – | AC=0,C=0 |
F1 | CLC | 1111 0001 | – | C=0 |
F2 | IAC | 1111 0010 | – | AC=AC+1 |
F3 | CMC | 1111 0011 | – | C=~C |
F4 | CMA | 1111 0100 | – | AC=~AC |
F5 | RAL | 1111 0101 | – | {C,AC}向左循環平移一位 |
F6 | RAR | 1111 0110 | – | {C,AC}向右循環平移一位 |
F7 | TCC | 1111 0111 | – | AC=C, C=0 |
F8 | DAC | 1111 1000 | – | AC=AC-1 |
F9 | TCS | 1111 1001 | – | 當C=0,AC=1001當C=1,AC=1010 |
FA | STC | 1111 1010 | – | C=1 |
FB | DAA | 1111 1011 | – | 對AC執行BCD修正 |
FC | KBP | 1111 1100 | – | 對AC進行獨熱碼到二進制轉換若輸入非法值,AC=1111 |
FD | DCL | 1111 1101 | – | 使用AC的低3位進行轉換頁AC=000時選擇CM0其他情況以三位分別控制 |
I/O與RAM指令 | ||||
2 | SRC | 0010 RRR1 | – | 分別在指令周期的X2與X3處將R寄存器保存的頁內地址送至ROM和RAM |
E0 | WRM | 1110 0000 | – | 將AC寫入選中的RAM主字符( 4位 )中 |
E1 | WMP | 1110 0001 | – | 將AC寫入選中的RAM端口中( 注:MCS-4中,RAM/ROM亦用作IO端口 ) |
E2 | WRR | 1110 0010 | – | 將AC寫入選中的ROM端口中 |
E3 | WPM | 1110 0011 | – | 將AC寫入選中的可讀寫程序存儲器中( 搭配4008/4009/4289使用 ) |
E4 | WR0 | 1110 0100 | – | 將AC寫入選中的RAM的0號狀態字符中 |
E5 | WR1 | 1110 0101 | – | 將AC寫入選中的RAM的1號狀態字符中 |
E6 | WR2 | 1110 0110 | – | 將AC寫入選中的RAM的2號狀態字符中 |
E7 | WR3 | 1110 0111 | – | 將AC寫入選中的RAM的3號狀態字符中 |
E8 | SBM | 1110 1000 | – | {C,AC}=AC-C-選中的RAM主字符 |
E9 | RDM | 1110 1001 | – | 將選中的RAM主字符寫入AC |
EA | RDR | 1110 1010 | – | 將選中的ROM輸入端口數據寫入AC |
EB | ADM | 1110 1011 | – | {C,AC}=AC+C+選中的RAM主字符 |
EC | RD0 | 1110 1100 | – | 將選中的RAM的0號狀態字符寫入AC |
ED | RD1 | 1110 1101 | – | 將選中的RAM的1號狀態字符寫入AC |
EE | RD2 | 1110 1110 | – | 將選中的RAM的2號狀態字符寫入AC |
EF | RD3 | 1110 1111 | – | 將選中的RAM的3號狀態字符寫入AC |
以上就是Intel公司首款商用處理器,Intel原本只是造存儲器的一家小公司,因為日本Busicom公司(造計算器)的小看,從此Intel慢慢轉型進入微處理器的市場,一發不可收拾成。4004是Intel歷史性的標志。
MCS-4就是4004處理器+4001ROM+4002RAM+4003SR的組合,微型計算機就是多塊芯片的集合,中央處理器用來負責控制和管理,下一講我們將講解MCS-4微型計算機,看看這一牛逼的微型計算機。
總結
News Watch
總結一下,Intel 4004有什么先進性值得學習?
1、英特爾4004成為市場上第一個通用可編程處理器—工程師可以購買并使用軟件進行定制以在各種電子設備中執行不同功能的“基石”; 2、體積小巧,盡管在1971年,這款革命性的微處理器只有一個指甲大小,具有與1946年制造的第一臺電子計算機相同的計算能力,該電子計算機占據了整個房間。
3、與當今產品通常使用的12英寸晶圓相比,第一個Intel4004微處理器是在2英寸晶圓上生產的。英特爾4004微處理器的獨特之處在于,它是有史以來投入商業生產的最小的微處理器設計之一。
4、1971年,英特爾4004處理器裝有2,300個晶體管。到2010年,具有32納米處理管芯和第二代高k金屬柵極硅技術的英特爾酷睿處理器可容納5.6億個晶體管。
5、英特爾4004微處理器電路的線寬為10微米或10,000納米。如今,英特爾微處理器的電路功能范圍在45至10納米之間。相比之下,人的平均頭發寬度為100,000納米。
位數/頻率:4bit/6萬次
頻率/前端總線:108KHZ/0.74MHz (4bit)
封裝/針腳數量:陶瓷DIP,塑封DIP / 16針
核心技術/晶體管數量:10微米 / 225
參考鏈接:https://www.4004.com/busicom-replica.html
http://www.intel4004.com/
http://e4004.szyc.org/
https://en.wikichip.org/wiki/intel/mcs-4
編輯:jq
-
處理器
+關注
關注
68文章
19312瀏覽量
230038 -
英特爾
+關注
關注
61文章
9978瀏覽量
171862 -
存儲器
+關注
關注
38文章
7494瀏覽量
163917
原文標題:Intel的第一款CPU長啥樣?Intel 4-Bit的CPU簡介
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論