国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種面向大數(shù)據(jù)的加速排序裝置、方法、芯片、處理器與流程

      文檔序號:12469422閱讀:226來源:國知局
      一種面向大數(shù)據(jù)的加速排序裝置、方法、芯片、處理器與流程

      本發(fā)明涉及處理器設計領(lǐng)域,特別涉及一種面向大數(shù)據(jù)的加速排序裝置、方法、芯片、處理器。



      背景技術(shù):

      排序是計算機內(nèi)經(jīng)常進行的一種操作,其目的是將一組“無序”的記錄序列調(diào)整為“有序”的記錄序列,有序序列為記錄的查找、插入和刪除等提供了便利性,大大提高了搜索等問題的效率,因此,研究各類排序算法是計算機研究中的重要課題之一,通用的排序方法基本上都是基于關(guān)鍵字的比較和交換兩種操作,比如,兩個位置的數(shù)進行比較,前者大于后者或后者大于前者,會對應著兩種不同的下一步調(diào)整位置處理方式,直到整個序列中所有元素排在前面的都大于或小于排在后面的。

      隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,數(shù)據(jù)規(guī)模已超過10PB量級,面對如此龐大的數(shù)據(jù)規(guī)模,如何快速有效的完成排序變得尤其重要,針對大規(guī)模數(shù)據(jù)的排序,有很多種加快解決問題的方式,比如基于分布式的思想,通過一個大規(guī)模系統(tǒng)集群來進行排序,這樣,每個計算機節(jié)點只負責一小部分的數(shù)據(jù)排序,在一臺計算機內(nèi)部,也可以用同樣的思想使用多個線程,來并行的進行排序操作,以上都是在現(xiàn)有計算機結(jié)構(gòu)的基礎(chǔ)之上所做的軟件上的優(yōu)化,計算機的處理能力是有限的,排序問題的基本操作仍然是兩個數(shù)的比較和交換,為使排序問題能夠更加快速的進行,需要改善處理器結(jié)構(gòu),提高處理器排序能力。



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

      針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種面向大數(shù)據(jù)的加速排序裝置及方法。

      本發(fā)明提出一種面向大數(shù)據(jù)的加速排序方法,包括:

      步驟1,對待排序列數(shù)據(jù),每次取連續(xù)n位數(shù)據(jù),取m組,并存放在所述寄存器組中;

      步驟2,分別對m組所述待排序列數(shù)據(jù)進行排序,生成m組有序序列數(shù)據(jù),通過排序算法將所述有序序列數(shù)據(jù)進行排序。

      所述步驟2中通用的排序算法包括冒泡排序、快速排序。

      還包括對所述待排序列數(shù)據(jù)進行標識。

      本發(fā)明還提出一種面向大數(shù)據(jù)的加速排序裝置,包括

      寄存器組,用于對待排序列數(shù)據(jù),每次取連續(xù)n位數(shù)據(jù),取m組,并存放在所述寄存器組中;

      映射比較部件,用于分別對m組所述待排序列數(shù)據(jù)進行排序,生成m組有序序列數(shù)據(jù),通過排序算法將所述有序序列數(shù)據(jù)進行排序。

      所述寄存器組的寬度為n位,行數(shù)為m,其中所述寄存器組的每一行存儲一組所述待排序列數(shù)據(jù)。

      所述通用的排序算法包括冒泡排序、快速排序。

      所述映射比較部件包括比較交換部件與映射邏輯部件。

      還包括中間標識寄存器,用于對所述待排序列數(shù)據(jù)進行標識。

      本發(fā)明還提出一種包括所述面向大數(shù)據(jù)的加速排序裝置的芯片。

      本發(fā)明還提出一種包括所述芯片的處理器。

      由以上方案可知,本發(fā)明的優(yōu)點在于:

      本發(fā)明從而降低排序算法的復雜度,進而加快排序問題的解決速度,通過將傳統(tǒng)排序操作中的1個單位數(shù)據(jù)擴大到n個單位數(shù)據(jù),在無需改變?nèi)魏嗡惴ㄋ悸返那疤嵯?,將所有與比較相關(guān)的排序算法復雜度降為原來的1/n;同時,這種n單元數(shù)據(jù)的連續(xù)訪存,一定程度降低了訪存開銷,從而大大的提高了排序算法的執(zhí)行速度,通過本發(fā)明,提高了單個節(jié)點處理器上針對排序應用的處理效率。

      附圖說明

      圖1為排序裝置的組成結(jié)構(gòu)圖;

      圖2為基本比較交換部件的結(jié)構(gòu)圖;

      圖3為基本映射選通邏輯圖;

      圖4為通常的CPSR寄存器各位的含義圖;

      圖5為本發(fā)明裝置CPSR寄存器各位的設置圖;

      圖6為n=4的預備模式下本發(fā)明裝置執(zhí)行步驟圖;

      圖7為n=4的普通模式下本發(fā)明裝置執(zhí)行步驟圖。

      具體實施方式

      為了達到上述目的,本發(fā)明提出一種面向大數(shù)據(jù)的加速排序方法,包括:

      步驟1,對待排序列數(shù)據(jù),每次取連續(xù)n位數(shù)據(jù),取m組,并存放在所述寄存器組中;

      步驟2,分別對m組所述待排序列數(shù)據(jù)進行排序,生成m組有序序列數(shù)據(jù),通過排序算法將所述有序序列數(shù)據(jù)進行排序。

      所述步驟2中通用的排序算法包括冒泡排序、快速排序。

      還包括對所述待排序列數(shù)據(jù)進行標識。

      本發(fā)明還提出一種面向大數(shù)據(jù)的加速排序裝置,包括

      寄存器組,用于對待排序列數(shù)據(jù),每次取連續(xù)n位數(shù)據(jù),取m組,并存放在所述寄存器組中;

      映射比較部件,用于分別對m組所述待排序列數(shù)據(jù)進行排序,生成m組有序序列數(shù)據(jù),通過排序算法將所述有序序列數(shù)據(jù)進行排序。

      所述寄存器組的寬度為n位,行數(shù)為m,其中所述寄存器組的每一行存儲一組所述待排序列數(shù)據(jù)。

      所述通用的排序算法包括冒泡排序、快速排序。

      所述映射比較部件包括比較交換部件與映射邏輯部件。

      還包括中間標識寄存器,用于對所述待排序列數(shù)據(jù)進行標識。

      本發(fā)明還提出一種包括所述面向大數(shù)據(jù)的加速排序裝置的芯片。

      本發(fā)明還提出一種包括所述芯片的處理器。

      以下為本發(fā)明一實施例,如圖1所示,該裝置包括:

      100,長度為2n的寄存器行,用來存放寬度為n的兩組基本元數(shù)據(jù)。寄存器的行數(shù)可根據(jù)實際需要進行設定。

      101,長度為n的映射比較部件,用來分別對寬度為n的兩個基本元數(shù)據(jù)進行比較操作。映射比較部件的行數(shù)根據(jù)實際需要進行設定。映射比較部件由比較交換部件和映射邏輯部件構(gòu)成,詳細結(jié)構(gòu)見圖2和圖3。

      102,中間標識寄存器。詳細組成見圖4。

      另一方面,本發(fā)明的方法包括:

      步驟1,對待排序列數(shù)據(jù),每次取連續(xù)n位或2n位數(shù)據(jù)于該裝置,使用預備模式,得到以每n個數(shù)為一組的局部升序序列;

      步驟2,以n個數(shù)為一個操作元,在普通模式下,使用通用的排序算法(冒泡、快排等),對整個序列進行排序,直至整個序列有序。

      上述方法中,首先使用預備模式將序列分成了一組組長度為n的局部有序序列,以此簡化了后續(xù)兩個操作元的比較和交換操作,同時也能夠減少比較器的數(shù)量。

      在具體操作過程中,對兩個基本操作元做比較操作之后,結(jié)果為一個有序的2n序列,且標識寄存器返回了比較的結(jié)果,返回的信息包括原始是否有序,原始是大于還是小于,如果原始無序,最大值和最小值分別存在于哪個操作元中。這些結(jié)果信息主要是為了配合不同排序算法所需要的比較結(jié)果的不同形式。

      下面結(jié)合附圖,以n=4為例,對本發(fā)明做進一步的詳細描述。

      所述基本比較交換的結(jié)構(gòu)部件的詳細示意圖見圖2。200比較交換部件主要有2001所示多路選擇器和2002比較器組成。對于每一個比較交換部件,有4路輸入,2路輸出。其中mode控制信號0表示4單位數(shù)亂序排序操作,1表示8單位數(shù)順序操作,因此mode控制了輸入和輸出寄存器的位置。ALU對兩個數(shù)值進行比較之后的結(jié)果,0表示data1<data2,無需交換兩輸入位置,1表示data1>data2,交換數(shù)位置。

      所述映射比較部件結(jié)構(gòu)如圖3所示。由于每一步操作整理來看都涉及到8輸入4個比較交換部件和8輸出,將每一步的操作邏輯封裝。300所示i0~i7為8個輸入,Mode為輸入的控制位,根據(jù)Mode值的不同,由303所示多選邏輯確定302所示4個比較交換部件的輸入數(shù)據(jù),302產(chǎn)生比較結(jié)果,決定了最終301所示y0~y7的值。

      如303所示的多選邏輯1和2分別確定了輸入數(shù)據(jù)與ALU部件之間的映射關(guān)系以及輸入數(shù)據(jù)與輸出數(shù)據(jù)間的映射關(guān)系。對于4單位數(shù)亂序排序操作映射如圖6,8單位數(shù)順序操作映射如圖7。

      由此可見,針對n=4的設計需要對圖3所示的部件進行3種設計,分別對應于從d0到d1的選擇映射,d1到d2的選擇映射和d2到d3的選擇映射邏輯。參照圖4,以d0到d1的映射邏輯為例:

      對于比較器ALU0所對應的x0和x1,在Mode=0時,x0=i0,x1=i1;Mode=1時,x0=i0,x1=i7,因此,x0=i0,x1=Mode*i7+-Mode*i0。而對應于輸出值y0,只有可能是i0,i1和i7三種可能,當M0=0時,y0=i0;當Mode=0且M0=1時,y0=i1;當Mode=1且M0=1時,y0=i7,因此,y0=-M0*i0+M0(Mode*i7+-Mode*i1)。同理,最終可以得到三組的選擇邏輯。

      本發(fā)明裝置在對n寬度數(shù)據(jù)進行排序的同時,能夠提供兩個升序序列的比較結(jié)果,以供各種排序算法使用。比較結(jié)果與普通的比較操作一樣,存放于CPSR中,CPSR寄存器每一位的安排如圖4。本發(fā)明裝置的結(jié)果類型比普通比較多,因此將CPSR做修改如圖5。

      其中,各個新添標識位含義如下:

      Inorder:1:待比較排序的2個升序列原本有序,即輸入列d0<d1<d2<d3<d4<d5<d6<d7或d4<d5<d6<d7<d0<d1<d2<d3;0:待比較序的兩個升序序列無序。

      Greater:1:d0~d3序列大于d4~d7序列;0:不大于。

      Littler:1:d0~d3序列小于d4~d7序列;0:不小于。

      Minmin:0:排序后最小值屬于d0~d3;1:排序后最小值屬于d4~d7。

      Maxmax:0:排序后最大值屬于d0~d3;1:排序后最大值屬于d4~d7。

      help0~help5:6位協(xié)助計算Minmin和Maxmax的標記為,在比較過程中隨著結(jié)果的變化而改變。

      各標識位的具體修改見本發(fā)明專利的兩個詳細操作過程。

      本發(fā)明裝置提供兩種基本操作,包括預備模式下n單位數(shù)亂序排序和普通模式下2n單位數(shù)順序排序。兩種基本操作使得本裝置能夠高效便捷的支持插入排序、選擇排序、交換排序、歸并排序等各種內(nèi)存排序算法以及外部排序算法。n單位數(shù)亂序排序是指對輸入的n個完全無序的數(shù)進行排序。2n單位數(shù)順序排序是指輸入的2n個數(shù)中,前n個和后n個都是局部有序的(均為升序或降序),對這種局部有序的兩個操作元進行排序并得到比較結(jié)果。

      下面將以n=4為例,依次介紹所述2種基本操作方法。

      4單位數(shù)亂序排序過程如圖6所示:

      步驟601,讀取4個需要排序的單位數(shù)據(jù)。此基本操作數(shù)據(jù)個數(shù)為4,因此該裝置可以同時支持2個4單位亂序排序操作;

      步驟602,將數(shù)據(jù)d00與d01比較交換,結(jié)果存于d10和d11,d02與d03比較交換,結(jié)果存于d12和d13。

      步驟603,將數(shù)據(jù)d10與d13比較交換,結(jié)果存于d20和d23,d11與d12比較交換,結(jié)果存于d21和d22。

      步驟604,將數(shù)據(jù)d20與d21比較交換,結(jié)果存于d30和d31,d22與d23比較交換,結(jié)果存于d32和d33。裝置操作結(jié)束。

      其中d00、d01、d02、d03為輸入數(shù)據(jù),排序后結(jié)果順序排放在d30、d31、d32、d33中。同時可以將數(shù)據(jù)輸入放于d04~d07,原理等同。

      每一步數(shù)據(jù)映射方式如圖中箭頭指示。

      該操作適應于所有排序算法執(zhí)行的第一步,將一個完全亂序的待排數(shù)列進行一次4單位亂序排序后,形成了一個每4個數(shù)局部有序數(shù)列,為此后做8單位數(shù)順序排序打基礎(chǔ)。

      8單位數(shù)順序排序過程如圖7所示:

      步驟701,讀取8個輸入數(shù)據(jù),數(shù)據(jù)分布在d00~d07中,其中d00~d03為升序序列,d04~d07為升序序列,圖5中所示的17~27位的標志位初始值為11’0;

      步驟702,f00部件對d00和d07進行比較交換,如果d00>d07,tag0與tag7交換,Inorder=1,Greater=1;f01部件對d01和d06進行操作,如果d01>d06,tag1與tag7交換;f02部件對d02和d05進行操作,如果d02>d05,tag2月tag5交換;f03部件對d04和d05進行操作,如果d04>d05,tag4與tag5交換,Inorder=1,Little=1;

      步驟703,f10部件對d10,d12進行操作,如果d10>d12,tag0與tag2交換;f11對d11和d13、f12對d14和d16,f13對d15和d17,操作完全相同;

      步驟704,f20對d20和d21,f21對d22和d23,f22對d24和d25,f23對d26和d27,操作同步驟3。

      每一步數(shù)據(jù)映射方式如圖中箭頭指示。

      該操作是排序算法的核心操作,功能等同于簡單的比較、交換,但是操作寬度由簡單的2數(shù)比較交換,變成了8數(shù)的并行比較交換,性能提升至少4倍。

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