亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種用于生成服從一定分布的隨機(jī)向量裝置和方法與流程

文檔序號:12863467閱讀:198來源:國知局
一種用于生成服從一定分布的隨機(jī)向量裝置和方法與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種用于生成服從一定分布的隨機(jī)向量的裝置和方法,可以根據(jù)指令生出任意長度的服從一定分布的隨機(jī)向量,隨機(jī)分布的方式有多種,包括但不限于均勻分布和高斯分布。



背景技術(shù):

隨機(jī)向量,即向量中的每一個(gè)數(shù)值都是服從某一隨機(jī)分布生成的結(jié)果。在人工神經(jīng)網(wǎng)絡(luò)的受限玻爾茲曼機(jī)中,即存在這樣的步驟,要求對一組神經(jīng)元組成的向量進(jìn)行采樣,即將向量中每一個(gè)神經(jīng)元與一個(gè)隨機(jī)數(shù)進(jìn)行比較,神經(jīng)元的值大于該向量就取1反之取0,這要求生成一組與神經(jīng)元向量同等大小的由服從某一分布的隨機(jī)數(shù)組成的隨機(jī)向量。又比如將一組32位單精度浮點(diǎn)數(shù)轉(zhuǎn)換值16位的半精度浮點(diǎn)數(shù),如果選擇隨機(jī)進(jìn)位的方法,則需要將截?cái)嗖糠峙c滿足某分布的隨機(jī)數(shù)進(jìn)行比較,大于該隨機(jī)數(shù)選擇進(jìn)1,這同樣要求有一組滿足某一分布的隨機(jī)數(shù),即隨機(jī)向量。

在現(xiàn)有技術(shù)中,一種最常用的實(shí)現(xiàn)生成隨機(jī)向量的方法是在通用處理器上逐個(gè)生成滿足某一分布的隨機(jī)數(shù)。但是,這種方法每次只能生成一個(gè)隨機(jī)數(shù),在要求的數(shù)量較大時(shí)效率較低。同時(shí)在生成隨機(jī)數(shù)時(shí)需要多條指令配合才能夠完成該過程。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明提供了一種用于生成服從一定分布的隨機(jī)向量裝置和方法,用于能夠生成滿足某一分布的任意長度的隨機(jī)向量,根據(jù)指令,可以選擇多種分布和任意長度。

根據(jù)本發(fā)明第一方面,提供了一種用于生成隨機(jī)向量裝置,該裝置包括:

存儲單元,用于存儲隨機(jī)向量生成指令相關(guān)的向量數(shù)據(jù);

寄存器單元,用于存儲隨機(jī)向量生成指令相關(guān)的標(biāo)量數(shù)據(jù);

控制單元,用于對隨機(jī)向量生成指令進(jìn)行譯碼,并控制隨機(jī)向量生成指令的執(zhí)行過程;

隨機(jī)向量生成單元,用于根據(jù)譯碼后的隨機(jī)向量生成指令,生成服從指定分布的隨機(jī)向量;

其中,所述隨機(jī)向量生成單元為定制的硬件電路。

優(yōu)選地,所述寄存器單元所存儲的標(biāo)量數(shù)據(jù)包括隨機(jī)向量生成指令相關(guān)的隨機(jī)向量存儲地址、隨機(jī)向量長度以及分布參數(shù);其中,所述隨機(jī)向量存儲地址為所述存儲單元中的地址。

優(yōu)選地,所述控制單元包括:

指令隊(duì)列模塊,用于對譯碼后的隨機(jī)向量生成指令進(jìn)行順序存儲,并獲取隨機(jī)向量生成指令相關(guān)的標(biāo)量數(shù)據(jù)。

優(yōu)選地,所述控制單元包括:

依賴關(guān)系處理單元,用于在隨機(jī)向量生成單元獲取當(dāng)前隨機(jī)向量生成指令前,判斷當(dāng)前隨機(jī)向量生成指令與之前未執(zhí)行完的運(yùn)算指令是否存在依賴關(guān)系。

優(yōu)選地,所述控制單元包括:

存儲隊(duì)列模塊,用于在當(dāng)前隨機(jī)向量生成指令與之前未執(zhí)行完的運(yùn)算指令存在依賴關(guān)系時(shí),暫時(shí)存儲當(dāng)前隨機(jī)向量生成指令,并且在該依賴關(guān)系消除時(shí),將暫存的隨機(jī)向量生成指令送往隨機(jī)向量生成單元。

優(yōu)選地,所述裝置還包括:

指令緩存單元,用于存儲待執(zhí)行的隨機(jī)向量生成指令;

輸入輸出單元,用于將隨機(jī)向量生成指令相關(guān)的向量數(shù)據(jù)存儲于存儲單元,或者,從存儲單元中獲取隨機(jī)向量生成指令相關(guān)的向量數(shù)據(jù)。

優(yōu)選地,所述隨機(jī)向量生成指令包括操作碼和操作域;

所述操作碼用于指示執(zhí)行指定分布的隨機(jī)向量生成操作;

所述操作域包括立即數(shù)和/或寄存器號,指示隨機(jī)向量生成相關(guān)的標(biāo)量數(shù)據(jù),其中寄存器號指向所述寄存器單元地址。

優(yōu)選地,所述存儲單元為高速暫存存儲器。

根據(jù)本發(fā)明第二方面,提供了一種用于生成隨機(jī)向量的裝置,其該裝置包括:

取指模塊,用于從指令序列中取出下一條要執(zhí)行的隨機(jī)向量生成指令,并將該隨機(jī)向量生成指令傳給譯碼模塊;

譯碼模塊,用于對該隨機(jī)向量生成指令進(jìn)行譯碼,并將譯碼后的隨機(jī)向量生成指令傳送給指令隊(duì)列模塊;

指令隊(duì)列模塊,用于暫存譯碼后的隨機(jī)向量生成指令,并從隨機(jī)向量生成指令或標(biāo)量寄存器獲得隨機(jī)向量生成指令相關(guān)的標(biāo)量數(shù)據(jù);獲得所述標(biāo)量數(shù)據(jù)后,將所述隨機(jī)向量生成指令送至依賴關(guān)系處理單元;

標(biāo)量寄存器堆,包括多個(gè)標(biāo)量寄存器,用于存儲隨機(jī)向量生成指令相關(guān)的標(biāo)量數(shù)據(jù);

依賴關(guān)系處理單元,用于判斷所述隨機(jī)向量生成指令與之前未執(zhí)行完的運(yùn)算指令之間是否存在依賴關(guān)系;如果存在依賴關(guān)系,則將所述隨機(jī)向量生成指令送至存儲隊(duì)列模塊,如果不存在依賴關(guān)系,則將所述隨機(jī)向量生成指令送至隨機(jī)向量生成單元;

存儲隊(duì)列模塊,用于存儲與之前運(yùn)算指令存在依賴關(guān)系的隨機(jī)向量生成指令,并且在所述依賴關(guān)系解除后,將所述隨機(jī)向量生成指令送至隨機(jī)向量生成單元;

隨機(jī)向量生成單元,用于根據(jù)接收到隨機(jī)向量生成指令生成服從指定分布的隨機(jī)向量;

高速暫存存儲器,用于存儲生成的隨機(jī)向量;

輸入輸出存取模塊,用于直接訪問所述高速暫存存儲器,負(fù)責(zé)向所述高速暫存存儲器中寫入生成的隨機(jī)向量。

優(yōu)選地,所述隨機(jī)向量生成單元為定制的硬件電路。

根據(jù)本發(fā)明第三方面,提供了一種用于生成隨機(jī)向量的方法,該方法包括:

取值模塊從指令序列中取出下一條要執(zhí)行的隨機(jī)向量生成指令,并將該隨機(jī)向量生成指令傳給譯碼模塊;

譯碼模塊對該隨機(jī)向量生成指令進(jìn)行譯碼,并將譯碼后的隨機(jī)向量生成指令傳送給指令隊(duì)列模塊;

指令隊(duì)列模塊暫存譯碼后的隨機(jī)向量生成指令,并從隨機(jī)向量生成指令或標(biāo)量寄存器獲得隨機(jī)向量生成指令運(yùn)算相關(guān)的標(biāo)量數(shù)據(jù);獲得所述標(biāo)量數(shù)據(jù)后,將所述隨機(jī)向量生成指令送至依賴關(guān)系處理單元;

依賴關(guān)系處理單元判斷所述隨機(jī)向量生成指令與之前未執(zhí)行完的運(yùn)算指令之間是否存在依賴關(guān)系;如果存在依賴關(guān)系,則將所述隨機(jī)向量生成指令送至存儲隊(duì)列模塊,如果不存在依賴關(guān)系,則將所述隨機(jī)向量生成指令送至隨機(jī)向量生成單元;

存儲隊(duì)列模塊存儲與之前運(yùn)算指令存在依賴關(guān)系的隨機(jī)向量生成指令,并且在所述依賴關(guān)系解除后,將所述隨機(jī)向量生成指令送至隨機(jī)向量生成單元;

隨機(jī)向量生成單元根據(jù)接收到的隨機(jī)向量生成指令,生成服從指定分布的隨機(jī)向量,并通過輸入輸出存取模塊將生成的隨機(jī)向量寫入高速暫存存儲器。

本發(fā)明提供的隨機(jī)向量生成裝置及方法,通過定制的硬件電路實(shí)現(xiàn)了精簡隨機(jī)向量生成指令的完整過程,即通過一條精簡的隨機(jī)向量生成指令即可實(shí)現(xiàn)隨機(jī)向量生成運(yùn)算。本發(fā)明通過將參與計(jì)算的向量數(shù)據(jù)暫存在高速暫存存儲器上(scratchpadmemory),使得可以更加靈活有效地支持不同寬度的向量數(shù)據(jù),同時(shí)定制的隨機(jī)數(shù)生成單元能夠更加高效地生成服從各種分布的隨機(jī)數(shù)據(jù),提升需要大量隨機(jī)向量的算法的執(zhí)行性能,本發(fā)明采用的指令更加精簡,一條指令即可實(shí)現(xiàn)生成一組隨機(jī)向量。

本發(fā)明可以應(yīng)用于以下場景中(包括但不限于):數(shù)據(jù)處理、機(jī)器人、電腦、打印機(jī)、掃描儀、電話、平板電腦、智能終端、手機(jī)、行車記錄儀、導(dǎo)航儀、傳感器、攝像頭、云端服務(wù)器、相機(jī)、攝像機(jī)、投影儀、手表、耳機(jī)、移動存儲、可穿戴設(shè)備等各類電子產(chǎn)品;飛機(jī)、輪船、車輛等各類交通工具;電視、空調(diào)、微波爐、冰箱、電飯煲、加濕器、洗衣機(jī)、電燈、燃?xì)庠睢⒂蜔煓C(jī)等各類家用電器;以及包括核磁共振儀、b超、心電圖儀等各類醫(yī)療設(shè)備。

附圖說明

圖1是本發(fā)明提供的隨機(jī)向量生成裝置的結(jié)構(gòu)示意圖。

圖2是本發(fā)明提供的隨機(jī)向量生成指令的格式示意圖。

圖3是本發(fā)明實(shí)施例提供的隨機(jī)向量生成裝置的結(jié)構(gòu)示意圖。

圖4是本發(fā)明實(shí)施例提供的隨機(jī)向量生成方法的流程圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明作進(jìn)一步的詳細(xì)說明。

本發(fā)明提供一種用于生成隨機(jī)向量的裝置,包括存儲單元、寄存器單元、控制單元和隨機(jī)向量生成單元,存儲單元用于存儲向量,寄存器單元用于存儲向量存儲地址和其他標(biāo)量參數(shù),控制單元用于執(zhí)行譯碼操作,根據(jù)指令控制各個(gè)模塊,隨機(jī)向量生成單元根據(jù)隨機(jī)向量生成運(yùn)算指令在指令中或寄存器單元中獲取向量存儲地址、分布參數(shù)、長度和其他參數(shù),然后生成滿足指令指定分布和指定長度的隨機(jī)向量。本發(fā)明中,所述存儲單元采用高速暫存存儲器,本發(fā)明將生成的向量數(shù)據(jù)暫存在高速暫存存儲器上,使得運(yùn)算過程中可以更加靈活有效地支持不同寬度的向量數(shù)據(jù),提升需要大量隨機(jī)向量數(shù)據(jù)的算法執(zhí)行性能。

圖1是本發(fā)明提供的用于生成隨機(jī)向量裝置的結(jié)構(gòu)示意圖,如圖1所示,裝置包括:

存儲單元,用于存儲隨機(jī)向量生成指令相關(guān)的向量數(shù)據(jù),在一種實(shí)施方式中,該存儲單元可以是高速暫存存儲器(scratchpadmemory),能夠支持不同大小的向量數(shù)據(jù);本發(fā)明將必要的計(jì)算數(shù)據(jù)暫存在高速暫存存儲器上,使得本裝置可以更加靈活有效地支持不同寬度的數(shù)據(jù)。所述隨機(jī)向量生成指令相關(guān)的向量數(shù)據(jù)包括生成的隨機(jī)向量。所述高速暫存存儲器可以通過各種不同存儲器件如sram、dram、edram、憶阻器、3d-dram和非易失存儲等實(shí)現(xiàn)。

寄存器單元,用于存儲隨機(jī)向量生成相關(guān)的標(biāo)量數(shù)據(jù),如生成的隨機(jī)向量存儲地址,也可用于存儲其他運(yùn)算過程中用到的標(biāo)量數(shù)據(jù),例如隨機(jī)向量生成指令指定的分布參數(shù),如均勻分布的上下界,高斯分布的均值和方差。其中,生成的隨機(jī)向量存儲地址為向量在存儲單元中存儲的地址;

控制單元,用于對隨機(jī)向量生成指令進(jìn)行譯碼,并控制隨機(jī)向量生成指令的執(zhí)行過程;其主要通過控制裝置中各個(gè)模塊的行為實(shí)現(xiàn)對隨機(jī)向量生成指令的執(zhí)行過程的控制;在一種實(shí)施方式中,控制單元讀取準(zhǔn)備好的指令,進(jìn)行譯碼生成控制信號,發(fā)送給裝置中的其他模塊,其他模塊根據(jù)得到的控制信號執(zhí)行相應(yīng)的操作。

隨機(jī)向量生成單元,該單元根據(jù)指令實(shí)現(xiàn)生成服從指定分布的指定長度的隨機(jī)向量。該單元是向量運(yùn)算單元,同時(shí)生成隨機(jī)向量中的每一個(gè)元素。所述隨機(jī)向量生成單元為定制的硬件電路,包括但不限于fpga、cgra、專用集成電路asic、模擬電路和憶阻器等;所述隨機(jī)向量生成單元通過與該裝置中的其它模塊相互協(xié)作,能夠生成任意長度服從指定分布的隨機(jī)向量。

需要注意的是,針對隨機(jī)向量生成的不同要求,在隨機(jī)向量生成單元中實(shí)際上包含了多個(gè)并行的隨機(jī)數(shù)生成模塊,每個(gè)模塊在每次執(zhí)行過程中可以生成一個(gè)隨機(jī)數(shù)。因此當(dāng)生成隨機(jī)向量時(shí),實(shí)際上是多個(gè)并行的隨機(jī)數(shù)生成模塊不斷生成若干個(gè)隨機(jī)向量段,最終得到要求長度的隨機(jī)向量。而對于每一個(gè)隨機(jī)數(shù)生成模塊,其中包含兩個(gè)主要部分來滿足生成任意分布隨機(jī)數(shù)的要求。

在一實(shí)施例中,所述隨機(jī)向量生成單元包括兩個(gè)模塊:

其一是lfsr模塊,用于生成服從均勻分布的隨機(jī)數(shù),此外還可以通過檢測電阻熱噪聲的方式生成真隨機(jī)數(shù);

其二是ziggurat算法模塊,用于生成服從任意分布(如高斯分布的)的隨機(jī)數(shù),在執(zhí)行時(shí)需要調(diào)用lfsr模塊。生成均勻分布隨機(jī)數(shù)的模塊在初始時(shí)需要配置隨機(jī)種子,不同模塊可以配置不同的隨機(jī)種子。根據(jù)本發(fā)明的一種實(shí)施方式,所述裝置還包括:指令緩存單元,用于存儲待執(zhí)行的運(yùn)算指令。指令在執(zhí)行過程中,同時(shí)也被緩存在指令緩存單元中,當(dāng)一條指令執(zhí)行完之后,如果該指令同時(shí)也是指令緩存單元中未被提交指令中最早的一條指令,該指令將被提交。

根據(jù)本發(fā)明的一種實(shí)施方式,所述裝置中的控制單元還包括:指令隊(duì)列模塊,用于對譯碼后的隨機(jī)向量生成指令進(jìn)行順序存儲,其通過隨機(jī)向量生成指令中的操作域獲取隨機(jī)向量生成指令相關(guān)的標(biāo)量數(shù)據(jù),如指定的 分布參數(shù)、隨機(jī)向量長度和隨機(jī)向量存儲地址等,將其填充至隨機(jī)向量生成指令后將其送往依賴關(guān)系處理單元。

根據(jù)本發(fā)明的一種實(shí)施方式,所述裝置的控制單元還包括:依賴關(guān)系處理單元,用于在隨機(jī)向量生成單元獲取指令前,判斷該隨機(jī)向量生成指令與之前未執(zhí)行完的指令是否存在依賴關(guān)系,如是否訪問相同的向量存儲地址。如果存在依賴關(guān)系,則將該隨機(jī)向量生成指令存儲在存儲隊(duì)列模塊中,待與其存在依賴關(guān)系的運(yùn)算指令執(zhí)行完畢后,存儲隊(duì)列模塊將該隨機(jī)向量生成指令提供給所述隨機(jī)向量生成單元;否則,直接將該隨機(jī)向量生成指令提供給所述隨機(jī)向量生成單元。具體地,隨機(jī)向量生成指令訪問高速暫存存儲器時(shí),前后指令可能會訪問同一塊存儲空間,為了保證指令執(zhí)行結(jié)果的正確性,當(dāng)前指令如果被檢測到與之前的指令的數(shù)據(jù)存在依賴關(guān)系,該指令必須在存儲隊(duì)列內(nèi)等待至依賴關(guān)系被消除。

根據(jù)本發(fā)明的一種實(shí)施方式,所述裝置的控制單元還包括:存儲隊(duì)列模塊,該模塊包括一個(gè)有序隊(duì)列,與之前指令在數(shù)據(jù)上有依賴關(guān)系的指令被存儲在該有序隊(duì)列內(nèi)直至依賴關(guān)系被消除,在依賴關(guān)系消除后,其將運(yùn)算指令提供給隨機(jī)向量生成單元。

根據(jù)本發(fā)明的一種實(shí)施方式,所述裝置還包括:輸入輸出單元,用于將生成的隨機(jī)向量存儲于存儲單元。同時(shí),負(fù)責(zé)從內(nèi)存中讀取向量數(shù)據(jù)或?qū)懭胂蛄繑?shù)據(jù)。

根據(jù)本發(fā)明的一種實(shí)施方式,本裝置的指令設(shè)計(jì)采用精簡化的方式,一條指令可以生成一條任意長度的隨機(jī)向量。

在本裝置生成隨機(jī)向量的過程中,所述裝置取出指令進(jìn)行譯碼,然后送至指令隊(duì)列存儲,根據(jù)譯碼結(jié)果,獲取指令中的各個(gè)參數(shù),這些參數(shù)可以是直接寫在指令的操作域中,也可以是根據(jù)指令操作域中的寄存器號從指定的寄存器中讀取。這種使用寄存器存儲參數(shù)的好處是無需改變指令本身,只要用指令改變寄存器中的值,就可以實(shí)現(xiàn)大部分的循環(huán),因此大大節(jié)省了在解決某些實(shí)際問題時(shí)所需要的指令條數(shù)。在獲取全部操作數(shù)之后,依賴關(guān)系處理單元會判斷指令實(shí)際需要使用的數(shù)據(jù)與之前指令中是否存在依賴關(guān)系,這決定了這條指令是否可以被立即發(fā)送至運(yùn)算單元中執(zhí)行。一旦發(fā)現(xiàn)與之前的數(shù)據(jù)之間存在依賴關(guān)系,則該條指令必須等到它依賴的 指令執(zhí)行完畢之后才可以送至運(yùn)算單元執(zhí)行。在定制的運(yùn)算單元中,該條指令將快速執(zhí)行完畢,并將結(jié)果,即生成的隨機(jī)向量寫回至指令提供的地址,該條指令執(zhí)行完畢。

圖2是本發(fā)明提供的隨機(jī)向量生成指令的格式示意圖,如圖2所示,所述隨機(jī)向量生成指令包括一操作碼和至少一操作域,其中,操作碼用于指示生成服從何種分布的隨機(jī)向量,如高斯分布或均勻分布等;操作域用于指示該運(yùn)算指令的數(shù)據(jù)信息,其中,數(shù)據(jù)信息可以是立即數(shù)或寄存器號,例如,要生成一個(gè)向量時(shí),根據(jù)寄存器號可以在相應(yīng)的寄存器中獲取輸出向量存儲起始地址和向量長度,以及分布的參數(shù),然后將根據(jù)該分布生成的隨機(jī)向量存至指定的地址。

本發(fā)明一實(shí)施例中可以實(shí)現(xiàn)下列幾種隨機(jī)向量生成指令:

均勻分布指令(unif),根據(jù)該指令,裝置從指令或從寄存器堆中讀取均勻分布的上界參數(shù)和下界參數(shù),以及要生成的隨機(jī)向量的大小和存儲地址,然后在隨機(jī)向量生成單元中生成服從該均勻分布的隨機(jī)向量,并將生成的隨機(jī)向量結(jié)果寫回至指定的高速暫存存儲器的存儲地址。

高斯分布指令(gaus),根據(jù)該指令,裝置從指令或從寄存器堆中讀取高斯分布的均值參數(shù)和方差參數(shù),以及要生成的隨機(jī)向量的大小和存儲地址,然后在隨機(jī)向量生成單元中生成服從該高斯分布的隨機(jī)向量,并將生成的隨機(jī)向量結(jié)果寫回至指定的高速暫存存儲器的存儲地址。

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。

圖3是本發(fā)明一實(shí)施例提供的隨機(jī)向量生成裝置的結(jié)構(gòu)示意圖,如圖3所示,所述裝置包括取指模塊、譯碼模塊、指令隊(duì)列、標(biāo)量寄存器堆、依賴關(guān)系處理單元、存儲隊(duì)列、隨機(jī)向量生成單元、高速暫存器、io內(nèi)存存取模塊;

取指模塊,該模塊負(fù)責(zé)從指令序列中取出下一條將要執(zhí)行的指令,并將該指令傳給譯碼模塊;

譯碼模塊,該模塊負(fù)責(zé)對指令進(jìn)行譯碼,并將譯碼后指令傳給指令隊(duì)列;

指令隊(duì)列模塊,該模塊用于暫存從譯碼模塊獲得的指令,并從指令或標(biāo)量寄存器獲得指令運(yùn)算相應(yīng)的數(shù)據(jù),包括生成的隨機(jī)向量長度、存儲地址和分布參數(shù)等。獲得標(biāo)量數(shù)據(jù)后,指令被送至依賴關(guān)系處理單元;

標(biāo)量寄存器堆,提供裝置在運(yùn)算過程中所需的標(biāo)量寄存器,各種標(biāo)量參數(shù)可以直接在指令的操作域中給出,也可以從標(biāo)量寄存器堆中讀??;

依賴關(guān)系處理單元,該單元用于處理隨機(jī)向量生成指令與之前未執(zhí)行完的指令可能存在的存儲依賴關(guān)系。隨機(jī)向量生成指令可能會訪問高速暫存存儲器如將生成的隨機(jī)向量存儲至高速暫存存儲器等,前后指令可能會訪問同一塊存儲空間。為了保證指令執(zhí)行結(jié)果的正確性,當(dāng)前指令如果被檢測到與之前的指令的數(shù)據(jù)存在依賴關(guān)系,該指令被送至存儲隊(duì)列模塊內(nèi)等待至依賴關(guān)系被消除。即檢測本條指令的輸入數(shù)據(jù)的存儲區(qū)間與之前沒有執(zhí)行完畢的指令的輸出數(shù)據(jù)的存儲區(qū)間是否有重疊,存儲區(qū)間是由起始地址和數(shù)據(jù)長度決定的。如果有重疊,則說明本條指令實(shí)際上是需要之前指令的執(zhí)行結(jié)果作為輸入的,因此必須等到那條指令執(zhí)行完畢后,這條指令才能開始執(zhí)行。在這個(gè)過程中,指令實(shí)際被暫存在存儲隊(duì)列模塊中。

存儲隊(duì)列模塊,該模塊是一個(gè)有序隊(duì)列,與之前指令在數(shù)據(jù)上有依賴關(guān)系的指令被存儲在該隊(duì)列內(nèi)直至存儲關(guān)系被消除;依賴關(guān)系被消除后的隨機(jī)向量生成指令被送往隨機(jī)向量生成單元;

隨機(jī)向量生成單元,該單元根據(jù)指令生成服從指定分布的隨機(jī)向量;該隨機(jī)向量生成單元為定制的硬件電路實(shí)現(xiàn),包括但不限于fpga、cgra、專用集成電路asic、模擬電路和憶阻器等;

高速暫存存儲器,該模塊是向量數(shù)據(jù)專用的暫存存儲裝置,能夠支持不同大小的向量數(shù)據(jù);所述高速暫存器可用于存儲生成的隨機(jī)向量;

io內(nèi)存存取模塊,該模塊用于直接訪問高速暫存存儲器,負(fù)責(zé)從高速暫存存儲器中讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)。

圖4是本發(fā)明實(shí)施例提供的運(yùn)算裝置執(zhí)行均勻分布指令生成滿足均勻分布的隨機(jī)向量的流程圖,如圖4所示,執(zhí)行均勻分布指令的過程包括:

s1,取指模塊取出該條隨機(jī)數(shù)生成指令,并將該指令送往譯碼模塊。

s2,譯碼模塊對指令譯碼,并將指令送往指令隊(duì)列。

s3,在指令隊(duì)列中,該隨機(jī)數(shù)生成指令從指令本身或從標(biāo)量寄存器堆中獲取指令中四個(gè)操作域所對應(yīng)的標(biāo)量數(shù)據(jù),包括生成的隨機(jī)向量存儲地址、生成的隨機(jī)向量長度、均勻分布的上界和下界。

s4,在取得需要的標(biāo)量數(shù)據(jù)后,該指令被送往依賴關(guān)系處理單元。

s5,依賴關(guān)系處理單元分析該指令與前面的尚未執(zhí)行結(jié)束的指令在數(shù)據(jù)上是否存在依賴關(guān)系。若存在依賴關(guān)系,則該條指令被送往存儲隊(duì)列模塊中等待至其與前面的未執(zhí)行結(jié)束的指令在數(shù)據(jù)上不再存在依賴關(guān)系為止。若不存在依賴關(guān)系,則該條指令直接被送往隨機(jī)向量生成單元。

s6,隨機(jī)向量生成單元根據(jù)上下界參數(shù)通過硬件電路生成滿足該均勻分布分布的一定長度的隨機(jī)向量。

s7,隨機(jī)向量生成單元繼續(xù)生成一定長度的隨機(jī)向量,直至完成指定長度的隨機(jī)向量的生成。

s8,運(yùn)算完成后,將結(jié)果向量寫回至高速暫存存儲器的指定地址。

綜上所述,本發(fā)明提供隨機(jī)向量生成裝置,配合相應(yīng)的指令,能夠很好地解決當(dāng)前計(jì)算機(jī)領(lǐng)域越來越多的生成滿足一定分布的隨機(jī)向量的計(jì)算任務(wù)。相比于已有的傳統(tǒng)解決方案,本發(fā)明可以具有指令精簡、使用方便、支持的向量長度靈活、片上緩存充足等優(yōu)點(diǎn)。

以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1