版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國]-擴(kuò)充并行I/O能力

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

簡介

并行是指兩個(gè)或者多個(gè)事件在同一時(shí)刻發(fā)生。擴(kuò)充并行I/O能力是指提高I/O設(shè)備并行輸入輸出速度,或是指是計(jì)算機(jī)系統(tǒng)能同時(shí)處理更多的I/O請(qǐng)求。擴(kuò)充并行I/O能力一般可以從軟件和硬件角度考慮,軟件角度是指對(duì)I/O并行程序進(jìn)行優(yōu)化,硬件角度擴(kuò)充I/O設(shè)備的并行接口,提高數(shù)據(jù)傳輸速度,增加數(shù)據(jù)線的數(shù)目。

并行接口并行接口,指采用并行傳輸方式來傳輸數(shù)據(jù)的接口標(biāo)準(zhǔn)。從最簡單的一個(gè)并行數(shù)據(jù)寄存器或?qū)S媒涌诩呻娐沸酒?255、6820等,一直至較復(fù)雜的SCSI或IDE并行接口,種類有數(shù)十種。一個(gè)并行接口的接口特性可以從兩個(gè)方面加以描述:1. 以并行方式傳輸?shù)臄?shù)據(jù)通道的寬度,也稱接口傳輸?shù)奈粩?shù);2. 用于協(xié)調(diào)并行數(shù)據(jù)傳輸?shù)念~外接口控制線或稱交互信號(hào)的特性。 數(shù)據(jù)的寬度可以從1~128位或者更寬,最常用的是8位,可通過接口一次傳送8個(gè)數(shù)據(jù)位。在計(jì)算機(jī)領(lǐng)域最常用的并行接口是通常所說的LPT接口。

并行程序設(shè)計(jì)能同時(shí)執(zhí)行兩個(gè)以上運(yùn)算或邏輯操作的程序設(shè)計(jì)方法。所謂并行性,嚴(yán)格地說,有兩種含義:一是同時(shí)性,亦即平行性,指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生;二是并發(fā)性,指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生。程序并行性分為控制并行性和數(shù)據(jù)并行性。并行程序的基本計(jì)算單位是進(jìn)程。并行程序有多種模型,包括: 共享存儲(chǔ);分布存儲(chǔ) (消息傳遞);數(shù)據(jù)并行;面向?qū)ο?。與并行程序設(shè)計(jì)相適應(yīng)的硬件也有不同類型,如多處理機(jī),向量機(jī),大規(guī)模并行機(jī)和機(jī)群系統(tǒng)等,相應(yīng)有不同的并行程序設(shè)計(jì)方法。具體解題效率還與并行算法有關(guān)1。

單片機(jī)擴(kuò)充并行I/O的兩種類型并行擴(kuò)展的兩種類型: (1)并行總線擴(kuò)展采用三總線方式: 采用三總線方式: DB -AB -CB -(2)并行 口擴(kuò)展并行I/O口擴(kuò)展 數(shù)據(jù)與交互信息均由I/O口來完成 數(shù)據(jù)與交互信息均由口來完成。

1.MCS-51單片機(jī)的片外總線結(jié)構(gòu) . 單片機(jī)的片外總線結(jié)構(gòu) MCS-51系列單片機(jī)片外引腳可以構(gòu)成如圖所 系列單片機(jī)片外引腳可以構(gòu)成如圖所 示的三總線結(jié)構(gòu): 示的三總線結(jié)構(gòu): 地址總線、 地址總線(AB) 數(shù)據(jù)總線、數(shù)據(jù)總線(DB) 控制總線、控制總線(CB) 所有外部芯片都通過這三組總線進(jìn)行擴(kuò)展。 所有外部芯片都通過這三組總線進(jìn)行擴(kuò)展。

2. MCS-51單片機(jī)并行 口的擴(kuò)展 單片機(jī)并行I/O口的擴(kuò)展 單片機(jī)并行 問題的提出: 問題的提出:

當(dāng)不擴(kuò)展外部存儲(chǔ)器時(shí), 當(dāng)不擴(kuò)展外部存儲(chǔ)器時(shí),有P0 ~ P3四個(gè)端口可 四個(gè)端口可 以作為I/O口用 當(dāng)擴(kuò)展外部存儲(chǔ)器時(shí),由于P0與 口用; 以作為 口用;當(dāng)擴(kuò)展外部存儲(chǔ)器時(shí),由于 與 P2口被總線占用,只有 與 P3端口可以作為 口被總線占用, 端口可以作為I/O 口被總線占用 只有P1 端口可以作為 口用。無論哪種情況, 口用。無論哪種情況,這幾個(gè)端口都難以滿足大部 分應(yīng)用系統(tǒng)的要求。因此并行I/O的擴(kuò)展是一項(xiàng)常分應(yīng)用系統(tǒng)的要求。因此并行的擴(kuò)展是一項(xiàng)常 見的技術(shù)問題。

擴(kuò)充并行I/O能力的目的提高系統(tǒng)資源利用率。在未配置 OS 的計(jì)算機(jī)系統(tǒng)中,諸如 CPU、I/O 設(shè)備等各種資源,都會(huì)因它們經(jīng)常處于空閑狀態(tài)而得不到充分利用;內(nèi)存及外存中所存放的數(shù)據(jù)太少或者無序而浪費(fèi)了大量的存儲(chǔ)空間。配置了 OS 之后,可使 CPU 和 I/O 設(shè)備由于能保持忙碌狀態(tài)而得到有效的利用,且可使內(nèi)存和外存中存放的數(shù)據(jù)因有序而節(jié)省了存儲(chǔ)空間。

提高系統(tǒng)的吞吐量。操作系統(tǒng)還可以通過合理地組織計(jì)算機(jī)的工作流程,而進(jìn)一步改善資源的利用率,加速程序的運(yùn)行,縮短程序的運(yùn)行周期,從而提高系統(tǒng)的吞吐量。

MPI 的并行 I/O 實(shí)現(xiàn)MPI- IO 概述MPI- IO作為 MPI- 2 規(guī)范的一部分, 提供了執(zhí)行可移植的、有效的 I/O 操作的接口??赏ㄟ^該接口在文件和進(jìn)程間傳送數(shù)據(jù)。MPI- IO 允許用戶說明整個(gè)非連續(xù)訪問形式, 并以一個(gè)

單一的 I/O 函數(shù)請(qǐng)求讀寫所有數(shù)據(jù); 它也允許用戶集中地說明一組進(jìn)程的 I/O 請(qǐng)求。 MPI- IO 的數(shù)據(jù)訪問程序可從三個(gè)方面進(jìn)行分類。

讀寫定位。 MPI 提供了三種數(shù)據(jù)訪問的定位方式: 顯示偏移量, 獨(dú)立文件指針, 共享文件指針。不同的定位方式可在同一程序中混用, 互不影響。使用顯示偏移量的數(shù)據(jù)訪問函數(shù)可由

參數(shù)直接指定文件的讀寫位置, 來執(zhí)行數(shù)據(jù)訪問,而不使用文件指針,也不需要對(duì)其進(jìn)行更新,該操作與 seek- read 和 seek-write 的原子操作等同。使用獨(dú)立文件指針指定文件讀寫位置的數(shù)據(jù)操作,MPI 支持每一個(gè)進(jìn)程都有一個(gè)獨(dú)立的文件指針,讀寫位置由當(dāng)前文件指針指定。讀寫完成后,文件指針自動(dòng)指下一項(xiàng)有效數(shù)據(jù)的位置。在這種文件操作方式中, 需要每一個(gè)進(jìn)程都定義各自在同一文件中的視口,即視口是相對(duì)某一進(jìn)程而言的,它是特定進(jìn)程所能看到的文件。某一進(jìn)程的文件視口可以是整個(gè)文件,但多數(shù)情況下,文件視口只是整個(gè)文件的一部分或幾部分。文件視口在整個(gè)文件中對(duì)應(yīng)的部分可以是不連續(xù)的, 但各個(gè)進(jìn)程看到的其文件視口中的數(shù)據(jù)卻是連續(xù)的。各個(gè)進(jìn)程對(duì)各自文件視口的操作, 相當(dāng)于對(duì)各自獨(dú)立打開的文件進(jìn)行操作。定義視口的優(yōu)點(diǎn)是: 定義一次, 可多次使用,從而增加了數(shù)據(jù)訪問的靈活性,也降低了數(shù)據(jù)訪問開銷。使用共享文件指針對(duì)讀寫位置定位的函數(shù)是由打開該文件的一組進(jìn)程所共享的通用文件指針來說明數(shù)據(jù)的訪問位置的。共享文件指針又分為全局共享文件指針和分布式共享文件指針,二者的區(qū)別是,分布式共享文件指針可避免兩個(gè)進(jìn)程存取同一數(shù)據(jù)塊,允許每個(gè)進(jìn)程存取同一文件不同位置的數(shù)據(jù)。

同步。 MPI- 2 支持阻塞和非阻塞的 I/O 程序。 阻塞 I/O請(qǐng)求直到 I/O 請(qǐng)求完成才返回; 非阻塞 I/O 請(qǐng)求啟動(dòng)一個(gè) I/O 操作后,并不等待 I/O 請(qǐng)求完成。假定具有合適的硬件支持, 該操作允許數(shù)據(jù)在用戶緩沖區(qū)中進(jìn)行讀寫的同時(shí),繼續(xù)進(jìn)行計(jì)算,另外我們還需使用一些請(qǐng)求以等待 I/O 完成,以確保數(shù)據(jù)讀寫的完成和用戶重新使用緩沖區(qū)的安全性。

協(xié)調(diào)。 MPI- 2 支持非集中式 I/O 操作和集中式 I/O 操作。 另外,非阻塞的集中式操作支持一種限定形式, 稱為 split-collective I/O 操作2。

并行 I/O 的實(shí)現(xiàn)在 MPI的并行 I/O 實(shí)現(xiàn)中, 各進(jìn)程同時(shí)打開文件, 在各進(jìn)程確定了自己所讀區(qū)域的起始行和終止行后, 對(duì)文件數(shù)據(jù)不同區(qū)域進(jìn)行同時(shí)讀寫, 而不是有由根進(jìn)程單獨(dú)完成。不需要轉(zhuǎn)發(fā)?;?MPI- 1 的并行 I/O 實(shí)現(xiàn)中, 讀真彩色圖像數(shù)據(jù)的核心代碼為:

for ( i=brow ; i