- 計(jì)算機(jī)系統(tǒng)解密:從理解計(jì)算機(jī)到編寫高效代碼
- (美)喬納森·E.斯坦哈特
- 756字
- 2021-09-27 16:57:05
3.6 硬件和軟件
用于制作PROM、EEPROM和閃存的技術(shù)不僅僅只能制作存儲(chǔ)器。我們很快就會(huì)看到邏輯電路是怎樣構(gòu)成計(jì)算機(jī)硬件的。你在學(xué)習(xí)編程,知道程序代碼中包含邏輯,也可能知道計(jì)算機(jī)通過指令集向程序公開邏輯。在硬件和軟件上做這些有什么區(qū)別??jī)烧咧g的界限很模糊,很大程度上,除了構(gòu)建軟件要容易得多之外(因?yàn)槌嗽O(shè)計(jì)需要花費(fèi)時(shí)間之外,沒有額外的成本),幾乎沒有區(qū)別。
你可能聽說過術(shù)語固件,它最初只是指ROM中的軟件。但如今大多數(shù)固件都存在于閃存或者ROM中,所以固件和ROM差別很小。過去,芯片是由極客們?cè)O(shè)計(jì)的,他們通過在一大塊透明聚酯薄膜上粘貼彩色膠帶來布置電路。1979年,美國科學(xué)家、工程師Carver Mead和Lynn Conway出版了Introduction to VLSI Systems,這本書改變了世界,推動(dòng)了電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation, EDA)產(chǎn)業(yè)的發(fā)展。芯片設(shè)計(jì)變成了軟件。今天的芯片是用專門的編程語言(如Verilog、VHDL和SystemC)設(shè)計(jì)的。
很多時(shí)候,只需要使用一塊硬件就可以運(yùn)行計(jì)算機(jī)程序。但是你可能會(huì)有機(jī)會(huì)參與一個(gè)包括硬件和軟件的系統(tǒng)的設(shè)計(jì)。軟硬件接口的設(shè)計(jì)至關(guān)重要。關(guān)于芯片不可用、不可編程、功能不必要的例子舉不勝舉。
集成電路的制造成本很高。在早期,所有的芯片都是全定制設(shè)計(jì)。芯片是分層的,底部是實(shí)際的組件,頂部是金屬層,可以將組件連接起來。門陣列的存在是為了降低某些設(shè)備的成本,有些預(yù)先設(shè)計(jì)的組件可用,只需定制金屬層即可。就像存儲(chǔ)器一樣,這些芯片可以被能自己編程的PROM等效版本替代。而且也有一個(gè)等效的EPROM,可以擦除程序并重新編程。
現(xiàn)代現(xiàn)場(chǎng)可編程門陣列(Field-Programmable Gate Array, FPGA)是閃存的等價(jià)物,它們可以在軟件中被重新編程。在許多情況下,使用FPGA比使用其他組件便宜。FPGA的特性非常豐富,例如你可以獲得包含兩個(gè)ARM處理器內(nèi)核的大型FPGA。英特爾最近收購了Altera,很可能在其處理器芯片中加入FPGA。我們很有可能會(huì)參與某個(gè)使用這些設(shè)備的項(xiàng)目中,所以要做好把軟件變成硬件的準(zhǔn)備。
- C++ Primer習(xí)題集(第5版)
- 深度學(xué)習(xí)經(jīng)典案例解析:基于MATLAB
- Visual Basic程序開發(fā)(學(xué)習(xí)筆記)
- Microsoft Dynamics 365 Extensions Cookbook
- vSphere High Performance Cookbook
- 新編Premiere Pro CC從入門到精通
- JavaScript從入門到精通(第3版)
- Unity Shader入門精要
- 3D少兒游戲編程(原書第2版)
- 精通Python自然語言處理
- JQuery風(fēng)暴:完美用戶體驗(yàn)
- ASP.NET Web API Security Essentials
- Python Programming for Arduino
- Android Studio開發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到App上線 (移動(dòng)開發(fā)叢書)
- WebStorm Essentials