1.1.1 計(jì)算機(jī)應(yīng)用的分類(lèi)及其特性
個(gè)人計(jì)算機(jī)(Personal Computer ,PC): 用于個(gè)人使用的計(jì)算機(jī)拄轻,通常包含圖形顯示器、鍵盤(pán)和鼠標(biāo)等
服務(wù)器(server): 用于為多用戶(hù)運(yùn)行大型程序的計(jì)算機(jī)婴程,通常由多個(gè)用戶(hù)并行使用鲤氢,并且一般通過(guò)網(wǎng)絡(luò)訪(fǎng)問(wèn)飘痛。
嵌入式計(jì)算機(jī)(embedded computer): 嵌入到其他設(shè)備中的計(jì)算機(jī),一般運(yùn)行預(yù)定義的一個(gè)或者一組應(yīng)用程序溉卓。
1.1.2 后PC時(shí)代
個(gè)人移動(dòng)設(shè)備(Personal Mobile Device, PMD)皮迟。連接到網(wǎng)絡(luò)上的小型無(wú)線(xiàn)設(shè)備搬泥。PMD由電池供電,通過(guò)下載App的方式安裝軟件伏尼。智能手機(jī)和平板電腦是典型的PMD忿檩。
云計(jì)算(cloud computing): 在網(wǎng)絡(luò)上提供服務(wù)的大服務(wù)器集群,一些運(yùn)營(yíng)商應(yīng)用需求出租不同數(shù)量的服務(wù)器爆阶。
依賴(lài)于倉(cāng)儲(chǔ)規(guī)模計(jì)算機(jī)(Warehouse Scale Computer, WSC)的巨型數(shù)據(jù)中心燥透。與PMD和WSC是硬件工業(yè)的革命類(lèi)似,通過(guò)云計(jì)算實(shí)現(xiàn)軟件即服務(wù)(Software as a Service, SaaS)是軟件工業(yè)的革命辨图。
軟件即服務(wù)(Saas): 在網(wǎng)絡(luò)上以服務(wù)的方式提供軟件和數(shù)據(jù)班套。其運(yùn)行方式通常不是在本地設(shè)備上運(yùn)行所有的二進(jìn)制代碼,而是通過(guò)諸如運(yùn)行在本地客戶(hù)端的瀏覽器等小程序登錄到遠(yuǎn)程服務(wù)器上執(zhí)行故河。例如Web搜索和社交網(wǎng)絡(luò)
1.1.3
1951年第一臺(tái)商用計(jì)算機(jī)吱韭。
多核微處理器(multicore microprocessor): 在一塊集成電路上包含多個(gè)處理器("核")的微處理器。
首字母縮略詞(acronym)
程序的性能: 一個(gè)程序的性能取決于: 程序所有算法的有效性鱼的,用來(lái)建立程序并將其翻譯成機(jī)器指令的軟件系統(tǒng)理盆,計(jì)算機(jī)執(zhí)行機(jī)器指令(I/O操作)的有效性。
軟件或硬件組成元素 | 該元素如何影響性能 | 位置 |
---|---|---|
算法 | 決定了源碼級(jí)語(yǔ)句的數(shù)量和I/O操作的數(shù)量 | - |
編程語(yǔ)言凑阶、編譯器和體系結(jié)構(gòu) | 決定了每條源碼級(jí)語(yǔ)句對(duì)應(yīng)的計(jì)算機(jī)指令數(shù)量 | - |
處理器和存儲(chǔ)系統(tǒng) | 決定了指令的執(zhí)行速度 | - |
I/O系統(tǒng)(硬件和操作系統(tǒng)) | 決定了I/O操作可能的執(zhí)行速度 | - |
數(shù)據(jù)級(jí)并行
指令集并行: 循環(huán)展開(kāi)開(kāi)發(fā)多指令發(fā)射和亂序執(zhí)行硬件提高性能猿规。
存儲(chǔ)器層次優(yōu)化: 使用阻塞cache將大型矩陣處理性能提高。
線(xiàn)程級(jí)并行: 在OpenMP中使用循環(huán)并行開(kāi)發(fā)多核硬件提高性能宙橱。
1.2 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)中的8個(gè)偉大思想
面向摩爾定律(Moore' Law)的設(shè)計(jì)
使用抽象簡(jiǎn)化設(shè)計(jì): 提高硬件和軟件生產(chǎn)效率的主要技術(shù)之一是使用抽象(abstraction)來(lái)表示不同的設(shè)計(jì)層次姨俩,在高層次中看不到低層次的細(xì)節(jié),只能看到一個(gè)簡(jiǎn)化的模型师郑。
加速大概率事件(common case fast): 加速大概率遠(yuǎn)比優(yōu)化小概率事件更能提高性能环葵。
通過(guò)并行提高性能 并行性能(parallel performance)
通過(guò)流水線(xiàn)(pipelining)提高性能
通過(guò)預(yù)測(cè)(prediction)提高性能
7.存儲(chǔ)器層次(hierarchy of memory)
- 通過(guò)冗余提高可靠性(dependable)
1.3 程序
計(jì)算機(jī)中的硬件只能執(zhí)行極為簡(jiǎn)單的低級(jí)指令。從復(fù)雜的應(yīng)用程序到簡(jiǎn)單的指令需要經(jīng)過(guò)幾個(gè)軟件層次來(lái)將復(fù)雜的高層次操作逐步解釋或翻譯成簡(jiǎn)單的計(jì)算機(jī)指令