TW484074B - Vector register file with arbitrary vector addressing - Google Patents
Vector register file with arbitrary vector addressing Download PDFInfo
- Publication number
- TW484074B TW484074B TW089128215A TW89128215A TW484074B TW 484074 B TW484074 B TW 484074B TW 089128215 A TW089128215 A TW 089128215A TW 89128215 A TW89128215 A TW 89128215A TW 484074 B TW484074 B TW 484074B
- Authority
- TW
- Taiwan
- Prior art keywords
- item
- data
- vector
- array
- scope
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 209
- 238000000034 method Methods 0.000 claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000002079 cooperative effect Effects 0.000 claims description 8
- 239000011257 shell material Substances 0.000 claims description 4
- 239000000463 material Substances 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims 2
- 241000283690 Bos taurus Species 0.000 claims 1
- 238000013500 data storage Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 11
- 238000010276 construction Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 241001674044 Blattodea Species 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000012925 reference material Substances 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8092—Array of vector units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Α7 Β7 五、發明說明(1 曼明背景 1.發明領域 本發明係關於數位處理,例如使用但不限於多媒體處理 器,單一指令多重資料(SIMD)處理器,具有SIMD (向量) 處理功能的數位信號處理器,或者類似裝置之處理,而尤 其有關數位處理中用以暫時儲存計算之輸入及輸出的向量 暫存器檔案。 2·相關技蔡搞沭 單一指令多重資料(SIMD)處理係一強大之架構觀念,可 廣泛接受包含媒體資料或者數位信號處理演算法的計算。 其准許以一單一指令指定安排一或更多資料數値流成爲一 維向里的计算。當資料來自記憶體,或者通常以一維序列 次序保留向量的一暫存器檔案時,將予以指定,供計算 用。向量元件可能依照序列(亦即元件1,2,3…··)或者 跨步(亦即一固定增量)加以存取,供計算用。然而,許多 演算法中要求不規則存取向量元件,其可能因爲類似演算 法I表查找,或者因爲元件要求像是位元反轉的某種位址 排列通^,此類型之存取係以一次一元件,形成構案中 的新向量,然後序列存取而執行。必須以此種方式實行 的演算法其效能遠小於眞正SIMD處理的可能效能。 因此,需要一種向量暫存器架構,准許最佳化相同結構 中所有此等作業模式之效能。 發明概 一種根據本發明用於處理作業之系統及方法,其中該處
ts 尺編 fiiii?73NS)A4 — (21G (請先閱讀背面之注意事項再填寫本頁) 訂---------線. 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 •4- 五、發明說明(2 ) 理作業使用資料向量,各包含複數㈣料元件,該 方法包括一向量資料檔案,並中包本 ’、’ 以儲存資料向量之資料元件浐二圭儲存元件’用 貝村7L件。一指標陣列藉由一匯 向量資料㈣。該指標陣列包括複數個项目,其中 項目識別向量資料標案巾至少_儲存元件。該至少〜 儲存π件儲存資料向量的至少— 標陣列中至少一特佘堪曰丄 τ八中對於孩指 針 特疋项目’由該特定項目所識別的至少〜 ’予凡:具有孩向量資料檔案中的—隨意起始位址。 於-交替之具體實施财,對於指料列中的 頁目,以任何給項目所識別的至少—儲 包:: 資料權案中的-隨意起始位址。該指標陣列可二 =,其:據從向量資料標案中至少一資料元件所讀出的 產=Γ可包括至少,,其根據-増 自上 新,其中該增量作業係以讀取 ‘陣列的至少-項目之資料執行。指標陣列可進一步 y兩胃目’其係、當作—相同邏輯作業的—部分予以 更,、斤及增里作業可包括至少—模作業以及—跨步作業。 r陣列的每-項目可包括向量資料標案中至少一儲存元 件的一起始位址。 、於又另-具體實施例中,可將向量資料播案之儲存元件 邏輯』織於具相與行的_料中,而卫指標陣列的每〜 项:可包技-位址,代表向量資料播案中至少一元件的列 與行。可將向量播案資料之儲存元件邏輯組織於具有列與 仃的矩陣中,而且指標陣列的每一陣列可包括一位址, -5 - χ 297公釐) 五、發明說明(3 ) 代表向量資科檔案中一一一 中之任何給定項目,以:的列與行。對於指標陣列 元件可與以指椁陣列之其给㈣目所識別的至少-儲存 相獨立。U車I其他项目所識別的至少-儲存元件 種用於處理作業之方法 量,各包本葙丹肀邊處理作業使用資料向 匕口複數個資科元件,該 檔案,其中包含複數_^# #量資科 料元件,以及提供一指=以鍺存資料向量之資 目識別向量輪案二列,具有複數㈣目。每1 月竹輛案中至少一儲存元件,並 資料向量的至少一資料 八·、 儲存孩 -特定項目,料_料列中至少 -疋頁目’ β特定项目所識 量資料構案中的一隨意起始位址。错存凡件具有向 於其他万法中,對於指標陣列中之任 何給定項目所識別的至少 疋頁目,以任 中的-暫存起始位址件:具有向量資科檔案 量資料檔案中至少—資料:可ί:步包括根據讀取自向 s 、 y貝枓7"件<資料,更新指標陣列的至 沖束目〈步驟。財法同時可包括根據從藉由將讀取自 其至少-项目之資料増量而產生的資料所讀出二 :新扣‘陣列的至少一項目之步驟。該方 !括根據以讀取自指標陣列其至少一項目之資料執行—择 里作業所產生的資料,更新指標陣列的至少一項目之: 驟。該指標陣列的至少兩項目可當作-相同邏輯作業的L 郅分加以更新。 於另外其他方法中,增量作業可進一步包括模作業及〜 本紙張 x 297公釐) 五 B7 發明說明(4 ) f步作業至少其_,其作業於從指標陣列的至少一項目所 ^取 < 貝料。指標陣列的每一項目可儲存向量資料檔案中 至;-儲存7C件的_起始位址。可將向量資料橋案之儲 :件邏輯組織於具有列與行的—矩陣中,而且指標陣列的 、—項目可儲存-位址,代表向量資料檔案中至少-元件 <列與行。可將向量標案資料之儲存元件邏輯組織於具有 列與行的一矩陣中,而且指標陣列的每一陣列可儲存—位 址’代表向量資料樓案中一單一元件之列與行。對於指= 列中(任何給定項目,以任何給定項目所識別的至少_ 儲存元件可與以指標陣列之其他項目所識別的至少一儲存 相獨1。以上万法步驟可藉由一機器可讀取之程式儲存裝 置實行,具體實施該機器可執行的一指令程式,以執行用 2處理作業的此等方法步骤,其中該處理作業使用資料向 量,各別包含複數個資料元件。 從以下説明之具體實施例其本身的詳述,結合附圖加以 閲讀,本發明的此等與其他目標’特性和優點將可明白。 圖示簡述 本發明將參照下列圖示’於以下較佳具體實施例之描述 中加以詳述,其中: 圖1係-示意圖’顯示使用本發明的—單一指令多重資 料(SIMD)數位信號處理器(DSP)或者—媒體處理器;' 圖2係一示意圖,顯示根據本發明的—向量資料栌案之 具體實施例,其中之向量具有16位元元件,該具體田實施 例包括-8項目指標位址構案,512项目向量資料播案, I - / - 本紙張尺度適用中國國家標準(CNS)A4規格GlO X 297公
(請先閱讀背面之注意事項再填寫本頁) tl---------線. 484074 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(5 以及具有4元件的_隨意子向量之存取; 圖3顯示根據本發明的一資科 子,其中包括三向量; 相-說明你 圖4顯示根據本發明的—向量其_資料暫 一説明例子;以及 刀^的另 圖5係根據本發明之位址增量器的 -立闻甘丄 自八丹體實施例其 一不思圖,其中顯示新位址多工 * 能。 杂以及跨步與模定址功 較佳具體實施例誣沭 本發明提供-種向量暫存㈣案,用以包含向量資料, 較佳者,用於信號指令多重資料(SIMD)處理。本發明 提供一種暫存器㈣,用以存取其中所包含向量的—隨意 子向量。本發明將以-處理器電路爲例予以描述,其中ς 處理器電路具有包含預定元件數的組件,位址線,或者: 含-給定大小的组件。此等组件或向量之大小,位址,輸 入數,輸出數,元件數等僅作爲説明,不應解釋爲本發明 的限制。 於本發明的一説明之具體實施例中,揭露—種向量暫存 器檔案,將予以組織,用以保留總大小等於或小於512元 件的一或更多向量,其中每次存取讀取或窝入4個16位 元之元件。向量爲以代表數量之元件其線性陣列所組成的 資料結構。用以存取向i暫存器檔帛之位址係以位址指標 加以指定,該位址指標包含於一完整但分開存取的指標陣 列中。每一指標指定四個元件之一的位址,其中該四元件 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱)
tr--------- (請先閱讀背面之注意事項再填寫本頁) 五、發明說明(6 ) 可於每次存取週期中,於每次存取埠上讀取 。 til案虛包括許多指標。每次存取所需的指標數係以控^ 處理程式之指令中包含的資訊加以選定,例如: r因此’暫存器標案爲間接定址類型。於用以決心 4向量資料陣列部分的存取位址之後,指標陣列部= 内谷可例如以一增量値(允許序列存取向量),或者 向量的内容(允許表查找存取或資料集中存取(於^人 控制下)加以更新。本發明之其他具體實施例同時提二 於跨步存取,模(循環)存取,或者其他方法的更新。本發 明(程式准許計算位址値,並將已更新數値載入指標位址 檔案,以供使用。 一心ί解,圖1 - 5中所示之元件可以硬體,軟體,或其組 合等各種形式加以實行。此等元件可於軟體中實行,其中 孩軟體可位於具有一處理器和記憶體,及輸入/輸出(1/0) 介面的一或更多適當程式規劃之多用途數位電腦或者儲存 裝置。本發明同時可於硬體中實行。於硬體中實行時,當 管線作業爲滿管線率時,有助於處置包括位址更新之計 算0 現在參照圖示’其中貫穿圖示,類似的數字代表相同或 相似元件,同時於初始時參照圖1 ,其中顯示一説明之處 理器100。處理器100可包括一媒體處理器,SIMD處理 器,或者數位信號處理器(DSP),較佳者,其中包括一指 令記憶體101,用以將指令提供予一指令單元102。指令 單元102將例如儲存於指令記憶體ιοί中的一程式定序, 並將已解碼之控制提供予處理器1〇〇的其他元件或組件。 -9- 本紙張尺度適用中國國家標準(CNS〉A4規格(210 X 297公爱) 484074 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 A7 五、發明說明(7 ) 處理之資料保留於一多埠資料記憶體105中,其中例如具 有兩讀取資料埠153和154,以及兩寫入資料埠151和 152,各以一資料位址單元ι〇6所提供的位址加以存取。 貝料從兄憶體105,透過讀取琿i54 ,移至一向量暫存叫 檔案103的一寫入埠133,供向量暫存器檔案ι〇3使用,透 過寫入埠132,供向量算術單元1〇4使用。透過窝入埠 U2,將計算結果儲存於向量暫存器檔案ι〇3中。向量暫 存器檔案103中所儲存之檔案可用於進一步計算,或者移 至資料記憶體105,透過讀取埠131,至匯流排lu和窝入 埠152。處理器1〇〇之程式及輸入資料從外部記憶體,戈 輸入110的輸入/輸出(1/0)裝置提供,而且結果透過一輸出 匯流排109,傳送至外部記憶體,或輸入/輸出(1/〇)裝置。 算術單141-H4各以透過讀取埠Π4和ns讀取自暫存 器檔案103之兩子向量中各向量的一元件作業,算術單元 141-144分別可執行與其他單元一樣的一功能。產生的結 果爲一四元件子向量,然後透過寫入埠132,將其寫回暫 存器保术103。如果於132,134,135每一蜂上,所希望 的一子向量較容易選定,則單元1〇4中執行的計算可進行 較快。 參照圖2 ,現在較詳細描述向量暫存器檔案ι〇3 (圖 1 )。向量暫存器檔案103包括用於存取蟑131_135 (圖1 ) 之一的邏輯。請注意,爲了簡化,圖2之資料匯流排2〇7 代表圖1中如108所示的兩資料匯流排之一。同時,輸入 埠210爲圖1所示的兩輸入埠13丨或m之一。所説明的一 --------訂---------線 C請先M讀背面之涑意事頊存填寫本買〕 10- 484074 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 A7 五、發明說明(8 ) 向量位址指標陣列202例如由八個字組成,各由四個具有 九位元之攔位組成。向量位址指標陣列2〇2係以處理器 1〇〇 (圖1)之指令單元102所產生的—三位元位址(指標選 擇)加以定址,其中藉由一字解碼器2〇1選擇八個字之 一。向量資料包含於-向量資料樓案2G6,於_具體實施 例中,向量資料構案包括512元件,各具有16位元。匯流 排210從資料記憶體1〇5,或者來自算術單元ι〇4 (圖”的 向量算術計算結果,載入指標字以及一資料構案。從向量 資料檔案206所讀取之資料由四個序連向量元件ri, R2 ’ R3 ’ R4組成,該等向量元件放置於一讀取資料匯流 排207,供向量算術單元1〇4使用,或者儲存於資料記憶 體1〇5 (圖1)中。從向量資料構案2〇6所讀取的64位元其 中三十六位元同時耦合至36個多工器2〇5 (説明中顯示: 例如爲四個具有9個多工器之群組)的一第一輸入,供位 址更新用,如以下所描述。 用以選擇四向量元件(R1_R4)其每一向量元件而供選擇 向量資料檔案206的每一讀取或寫入作業之位址係來自一 向量指標竽的欄位之一,其中該向量指標字係透過讀取匯 流排203,從向量指標陣列2〇2讀取。每一欄位與指令單 兀102 (圖1 )所產生之適當賦能208進行邏輯"且”運算, 形成用以存取向量資料檔案2〇6的位址。同時間,賦能之 位址耦合至一以4增量的陣列204之輸入。增量之位址連 接至多工器205的一第二輸入。多工器205的第一與第二 輸入足選擇係藉由一多工器控制信號211進行。多工器 --------β---------^ (請先閱讀背面之注意事項再填寫本頁}
A7
484074 五、發明說明(9 ) 205之輸出連接至位址指標陣列202的輸入,可將該輸出 寫入陣列202。從指標陣列202所讀取之指標資料字可透 過匯流排209,傳送至資料記憶體105 (圖1 )。熟知陣列 邏輯設計人士可以看見:此種於使用位址資料陣列後(後 置增量)增加位址指標値之安排可修正爲於使用前增量(前 置增量)’其係藉由將增量器陣列204直接_合至讀取匯 流排203的輸出,並將其輸出連接至位址賦能級230。 較佳者,以軟體將向量資料檔案206之元件空間(例如 512丰)加以子分割,且配置予所實行的一特定演算法所需 的資料向量。放置於指標陣列2〇2儲存的一向量指標檔案 中之値定義每一向量的一起始位址,最多達8個向量。較 佳者,使用例如VPTRL0AD的一程式指令將數値載入指標 陣列202。參照圖2,執行指令vpTRL〇AD將所載入的數 値放置於匯流排210 ,而且將所載入之指標字的位址放置 於字位址解碼器201的”指標選擇,,輸入。放置於匯流排 210的數値可來自資料記憶體1〇5,或者一算術或邏輯計 算單元104 (圖1)的結果輸出。 參照圖3 ,顯示向量資料檔案2〇6其一具體實施例的一 分割例子,其中保留3個小向量。每一元件的一 9位元位 址係由一 6位元之列位址(64列)以及3位元之行位址(8 行)組成。例子中的一第一向量303係由4個元件3ΐι組 成,其中第一元件位於第3列,第3行。第二元件位於第 3列,第4行等等。欲定址向量3G3,較佳者,藉由一軟 體程式設定向量指標陣列202。該程式將指標陣列之字位 -12- 本紙張尺度適用中國國豕標準(CNS)A4規格(21〇 X 297公爱) -----------f--------訂---------線Φ (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 484074 A7 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 五、發明說明(10 ) 址π1”設定爲指向向量3。3的4個元件。於向量位址指標橋 案202中知冬位址"1"之36位元分割成4個攔位305,各 八有9位元,如圖3中所示予以初始化。雖然實際上所錄 存爲 9位元的一元數字(或者其他大小的字),但將指极 中每一欄位305之値説明爲列,行之値。例如位於3 ,3 I兀件的兀件位址實際上儲存爲二元値〇〇〇〇ιι〇ιι 二向量3〇7具有12元件,開始於8,1。指標字位址”4 用"以定址此向量之開始的4元件,其中具有所示之値。一 第三向量309由3元件組成,其中第-個位於位置U, 5 ’而其他則如所示。由於沒有第四元件,雖然並不 意’但仍將第四指標欄位設定爲0,〇。 關於圖2中所説明之具體實施例,向量資料構案綱 的基本作業例如包括序列讀取,序列寫人,間接讀取, 間接寫入。間接存取模式係本發明的一重要特性,並且 許將向量資料檔案206中隨意之元件集合加以定址… 成子向量。此等子向量例如可用以進行向量倍的表查找, 或者將元件集中成爲獅處理之子向量。本發日^其他 使用例如可包括向量之條開採。向量之條 資料記憶ft 105間接靖取子Ay 八 _"取子向量並窝回(儲存)結果,而組仏以後於後續程式步驟中使用,例如用以濾。二向量暫存器…”圖”作業的一給 期間’可能執行以下作業:指定指操陣列2。2的一;(謂取或寫入作業),提供指標陣列的-索幻(其爲— 閱 第 介 准 過 業 位 L_____ - 13- 本紙張尺度I®用t關家鮮(CNs)A4規格⑵ A7 五、發明說明(Π ) 例如介於0與7的一字位址),從指標陣列2〇2讀取對 f於所供應索引之指標陣列2G2的4項目,使用讀取自指 t陣列I 4項目將一組位址(所示爲4 )產生成爲向量資料 構案206 (較佳者,藉由如所示的一組4位址之賦能信號 208加以觸發)’從向量資料檔案2〇6讀取對應於所供應位 址組的向量資料檔案2〇6元件,並且提供控制信號,選擇 I*生k制對應於所供應索引之指標陣列中的項目之更新。此 等&制t號包括至少一 •,保存控制••信號,具有一 是·,或" 否之値如果等於"是'’,則指示透過寫入埠251,將匯 机排25〇上夕工器205的輸出値窝回指標位址陣列2〇2。控 制L號同時包括—多工器控制信?虎2l i,用以決声:將讀 取自扎“檔案202且對應於所供應位址賦能信號2〇8組之 已增量位址,或者讀取自向量資料暫存器構案206的資料 隸合至設定250。 再次參照圖2 ,(像是一增量作業,一跨步作業,或者 增量杈疋址作業等)其他作業可以向量位址指標檔案 所i、應之位址組執行,而且一多工器電路2〇5可從這類作 業,或者從向量資料構案206元件所讀取之資料選擇性輸 出資料結果。此情況下,對應於所供應索引之指標陣二 (202)中的項目〈更新可使用由多工器電路選擇性輪出 的資料。 ^ 此等作業係藉由指令加以觸發,其中該等指令包括向量 暫存器檔t 103中之向量資料的作業。匯流排21〇上之資 料來源以及匯流排2〇9與2 〇 7上之資料其目的地的指定同 -14- 本紙張尺度適用中國國家標準((¾^格⑽χ挪g (請先閱讀背面之注意事項再填寫本頁) --------訂---------線‘ A7
邾4074 I、發明說明(12 ) 樣來自指令流。 序列向量讀取從指標陣列202中8個位址字(〇-7)之一的 —起始位址開始。爲了説明,將使用圖3中所示之向量檔 案206分割,同時將描述第二向量3〇7之讀取,以解釋: 發明的進一步特性及細節。 參照圖i,2和3,作業的第一週期中指定:指標陣列 202之字位址”4”的一讀取,全部4位址的一賦能,向量 資料檔案206的一讀取,一多工器控制211之値"Γ,(例如 選擇多工器之左接腳),以及一保存値"是"。保存値爲一 位元,來自一指令,用以指示多工器2〇5之輸出是否寫回 指標位址陣列2〇2。保存値以一控制信號加以實行,決定 匯流排25〇之値是否透過窝入埠,窝回指標陣列2〇2。 此將導致向量指標字位址"4"的前9位元成爲從向量資料 檔案2〇6所讀取的一第一子向量元件之位址。將讀取位於 向量資料檔案206中8,1之元件,並且放置於匯流排2〇7 的R1。類似地,指標字”4”中的第二攔位指示:將讀取資 料植案中位於8 ,2之元件,並且放置於匯流排207的 R2,第三與第四元件類似。所讀取之四個16位元資料値 (R1-R4)將組合成一連接向量,並透過讀取資料匯流排 207 ’傳至資料1己憶體1〇5或者向量算術單元1〇4。類似 地,將讀取自指標字”4”之値,以增量器204 (藉由加4 , 因爲一次處理4元件,)増量爲下一序列値。 由於多工器控制211選擇已增量數値,而且保存控制指 定:將已更新數値放回指標陣列202,所以透過多工器 -15- 本紙張尺度適时關家標準(C'NS)A4規格(210 X 297公爱) --------------------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 T-O^tU / Η- A7 -------- -B7____ 五、發明說明(13 ) 〇5 舲(8,5),(8,6),(8,7)和(8,8)等數値存 回才曰標檔案字位址4。熟知此項技藝人士了解:於代表列 8行1 (二元値〇〇1〇〇〇〇〇1)之値加上* (二元値 00001⑻),結果將爲二元値001000101,其代表列8行5 (8 5 )’與其他3數値相類似。 作業的下一週期其控制數値與第一週期一樣,但因爲使 用已更新之指標値存取向量資料檔案206,所以該向量其 後四元件將予以組合,並且放置於匯流排207。此一相同 之控制値將於額外週期中重覆(此例子中總計3次),而序 列讀取整個元件向量(此情況下爲12元件),並將該向量 放置於匯流排207。 序列窝入或載入一向量非常類似於讀取。再次使用圖3 之第二向量作爲一例子,存取向量資料檔案206資料的第 一作業週期中指定:指標陣列2〇2之字位址4的一讀取, 全部4位址的一賦能208,向量資料檔案206的一窝入, 一多工器控制211之値"1”(例如選擇左接腳),以及一保 存控制値”是”。此數値將導致向量指標字位址"4”的前9 位元成爲寫入資料檔案206的第一子向量元件之位址。將 匯流排210的前16位元寫入向量資料檔案206中8,1的 元件。類似地,指標字位址”4”中的第二欄位指定:將來 自匯流排210的次16位元寫入資料檔案206中8,2的元 件。第三與第四元件亦類似。現在,將取自匯流排210之 64位元的四個16位元資料値寫入向量資料檔案206。同時 間,從指標字位址”4”之値所讀取的數値已經由增量器204 -16- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) (請先閱讀背面之注意事項再填寫本頁) --------訂---------線· 經濟部智慧財產局員工消費合作社印製 484074 經濟部智慧財產局員工消費合作社印製 A7 五、發明說明(!4 ) (藉由加4,因爲同時間處理4元件)增量爲下一、 由於多工器控制211選擇已增量數値,而:序列値。 定··將已更新數値放回指標陣列2〇2,所予技制㈣ 2〇5,將(8,5),(8,6),(8,7)和(8,8 =多工器 回指標檔案字位址”4”。該相同之控制字將重覆 次,而且將匯流排210上次兩數値餘存於資: 足12元件向量。 田果以補 下間接定址作業模式(間接讀取及間接窝人)可舉例使用如 )Ik〜子向里存取,其係透過存成向量資料檔案2⑽中 之向量的一位址清單; 2) 貝料直接存取,如果爲信號抽樣放置於指標暫存器 202之情況,此情況下,如同於許多演算法中,每一信號 値可存取一向量元件,以選擇過濾係數;以及 3) 貝料集中作業,將散佈之資料轉換成序列simd可 理資料。 此並非一詳盡之清單,如間接命令同時可用於其他任 務。 使用圖4中所示之分割例子,並繼續參照圖2,而描述 間接讀取。前四元件向量403包括與一向量資料檔案2〇6 之位址(8 ’ 3 ),( 8,5 ),( 9,2 )和(9,3 ) — 樣的二元 元件値。存取向量暫存器資料檔案206資料的第一作業週 期中之控制指定:指標陣列2〇2的字位址„丨”的一讀取,全 部4位址的一賦能2〇8,向量資料檔案2〇6的一讀取,一 -17- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
--------tr---------參 (請先閱讀背面之注意事項再填寫本頁) 484074 經濟部智慧財產局員工消費合作社印製 A7 五、發明說明(I5 ) 多工器控制211之値”〇”(選擇右接腳),以及一保存控制 値•'是"。此數値將導致將向量資料檔案206之8,3位置 的16位元元件從向量資料檔案206中讀出,並且放置於匯 流排207之R1。此數値之九位元同時耦合至多工器2〇5的 第一元件。如以上所陳述,此9位元具有等於向量資料檔 案206中一元件之位址的二元値。類似地,其他3元件的 每數値之9位元均搞合至多工器205。由於^多工器選擇 控制211指定選擇右邊,而且保存控制指定,,是",所以將 位置(8,3),(8,5),(9,2)和(9,3)中所包含之値 寫入指標字位址,,1”的四個欄位。 控制的第一週期中指定:指標陣列202之字位址” 1 ”的一 讀取,全部4位址208的一賦能,向量資料檔案2〇6的一 讀取,一多工器控制211之値”〇”(選擇右接腳),以及一 保存控制値•否"。作業的第二週期導致讀取四元件,其位 址現在於指標檔案字位址”丨",該位址係從向量資料檔案 206咕取,並且放置於匯流排207。此四元件於向量資料 檐案206中’其位置對應於向量資料檔案206中(8,3 ), (8 ’ 5 ) ’( 9 ,2 )和(9 ,3 )等位置的9個低階位元之 値。 一間接寫入(資料散佈)作業係以一類似單元加以控制。 請注意,執行一資料散佈作業之功能需有一 64位元窝入 埠261 (圖2 ),其將分割成四個16位元埠(總共6 4位 元)’使每一元件位址230可指定寫入向量資料檔案2〇6中 的任何16位元資料元件。以此功能,元件1位址指定將 --------訂---------線 (請先閱讀背面之注意事項再填寫本頁) -18 · 484074 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(16 ) 64位元匯流排21〇的前16位元之向量元件ri寫入資料標 案206的某處,元件2位址指定將64位元匯流排21〇的次 16位元之向量元件R2窝入資料檔案2〇6的某處,以及R3 和R4等等。爲了硬體成本考量,一簡化之具體實施例可 省略此功能。於所述之具體實施例中,存取向量暫存器資 料檔案206資料的第一作業週期之控制中指定:指標陣列 202的字位址”1”的一讀取,全部4位址的一賦能2〇8,向 量資料檔案206的一讀取,一多工器控制211之値,,〇"(選 擇右接腳),以及一保存控制値"是"。其讀取4元件中所 指定之値,並將該數値窝回指標陣列字位址"Γ,。控制的 第二週期中指定:指標陣列202之字位址"i "的一讀取,全 4 4位址的一賦能2〇8,向量資料檔案2〇6的一窝入,一 多工器控制211之値"0"(選擇右接腳),以及一保存控制 値"否’’。此於匯流排210上取得四元件,並將其放置於第 週期中躓取之位址所指定的向量資料檔案2〇6中之四元 件。 使用一隨意指標指定資料檔案中之計算起始點的功能令 一向量”滑’’過另一向量或其本身而供像是過濾和卷積之計 算用變得容易而且快速。 熟知此項技藝人士將了解:圖2中所示之位址產生及使 用邏輯可予以複製,用於向量資料檔案2〇6的多重埠存 =。用於多重埠作業的圖2具體實施例其第一擴充爲:使 田案206之項取及寫入皡(分別爲262和261 )能夠同時間作 業,亦即一雙埠檔案的一埠專用於讀取,而另一埠專用於 本,我張尺度適用中國國家標準(C⑽A4規格⑽χ 297公爱) . --------^--------- (請先閱讀背面之注意事項再填寫本頁) 484074 經濟部智慧財產局員工消費合作社印製 B7 五、發明說明(17 ) 寫入。以此一結構,當·舊資料藉由讀取埠2½予以讀取, 並放置於匯流排207,加以處理,且將結果寫回資料記憶 體1〇5時,新資料可透過寫入埠261,從匯流排21。載入向 量資料樓案206。此准許具有随意大小的—向量流過處理 單兀。 參照圖5,顯示圖2之具體實施例的修正,其中提供其 他定址模式,例如跨步及模定址。其他定址模式亦可使用 適當邏輯或軟體加以實行。圖2之位址増量器2〇4和多工 器205可以圖5所示的硬體取代。其中包括增量器綱和 多工器505。輸入包括從指標檔案(2〇2)所讀取之元件位址 ,來自暫存器構案施之向量資料,輸出爲已更狀 位址警報250,將其錯存於指標構案2〇2中。關於跨步存 取’較佳者藉由一程式,將一跨步値儲存於跨步暫存器 501中,而其存取如以上所述的序列存取進行。然而,其 中之指標檔案値加上(減去)跨步値,而非固定値4 。模 (循環)定址例如藉由程式,載入起始點暫存器5〇3及指標 檔案202 (圖2 )中之循環緩衝器的一起始 — 儿 向加以執 仃。向量I結尾則從一結束點暫存器5〇2载入。作業中使 用跨步暫存器5〇1之値增加位址,如以上所述進行。於每 一週期中,比較相等電路506將已更新位址與結束點位址 相比較,觀察是否到達向量的結尾。如果爲是,則多工器 決定:提供來自起始點位址暫存器5〇3 <超始點位 址,而非已更新位址,作爲指標檔案2〇2的新位址。 本發明提供許多優於先前技藝之優點。例如,由於本發 -20. 表紙張尺度適用ΐ國國家標準(CNS)A4規格咖χ 297公爱- —^------------------訂---------線 01^ f請先閱讀背面之注咅?事項再填寫本頁) A7 B7 五 發明說明(IS ) 明所提供之靈活定址,资触 貝料口己隐肢105的定址得以簡化。 包括下列各項。複雜迴路及表查找之資料定址~扣令輕易指定,本發明使程式大小更小,因而妗 加指令記憶體101的效率。本發明賦能向量位址檔案2二 中的每-元件能夠包含資料陣列202中任何元件之任何位 址’與向量位址檔案施中的任何其他元件之内容相獨 亙。例如’兩元件可具有相同位址,但涉及資料檔案中之 序列資料元件其任何位址的需求則予以排除。其他優點及 好處同樣可藉由本發明實現。 已經描述具有隨意向量定址的一向量暫存器檔案之較佳 具體實施例(希望作爲説明,而非限制),請注意··於以上 王旨t觀點下,熟知此項技藝人士可進行修正及變化。因 而可了解:於附加申請專利範圍所描繪之本發明其範圍及 精神下,所揭露之本發明的特定具體實施例可進行改變。 因此,以上已詳細且依照專利法之特別要求而描述本發 明’以下將陳述所主張並希望藉由專利條文予以保護的附 加申請專利範圍。 --------^--------- (請先閱讀背面之注意事項再填寫本頁) 線#! 21- 本紙張尺度適用肀國國家標準(CNS)A4規格(210 X 297公釐)
Claims (1)
- 、申請專利範圍 L 一種用於處理作業之萃 甘丄、、 ^ ^ . ^、、,、 ,/、中琢處理作業使用資料 向量,各包含複數個資料元件,包含·· 向量貝料構案,包冬禮 該資料向量之資料元件儲存元件,用以儲存 产::ΓΓ,藉由—匯流排搞合至該資料檔案,該 ==含複數個项目’其中每—项目識別該向量 貝料檔案中的至少—儲存元件;以及 至少-儲存元件,用以儲存該資料向量的至少一資 科-件’其中對於該指標陣列中的至少—特定項目, 項目所識別的至少—儲存元件具有該向量資 料榣案中的一隨意起始位址。 2·如申請專利範圍第1項S系 … 頁(系統,其中,對於該指標陣 (任何給定項目,以任何給定项目所識別的至少 -儲存元件包含該向量資料樓案中的_隨意起始位 址。 3. 如申請專利範圍第1項之系統,其中該指標陣列包括 至少一項目,其根據從該向量資料檔案中至少一資料 元件所讀出之資料加以更新。 4. 如申請專利範圍第卜員之系統,其中該指標陣列包括 至少一項目,其根據藉由將讀取自該指標陣列其至少 一項目之資料增量而產生的資料加以更新。 5·如申請專利範圍第1項之系統,其中該指標陣列包括 至少一項目,其根據以讀取自該指標陣列其至少一項 目之資料執行一增量作業所產生的資料加以更新。、 -22· 私紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 · I ϋ n n ϋ n ϋ 一:口、« ϋ ϋ ϋ ϋ ϋ ϋ ϋ I ϋ n H ϋ ϋ ϋ I H ϋ ϋ n ϋ ϋ ϋ n H ϋ ϋ ϋ n d ϋ I 、申請專利範圍 6.如申请專利範圍第5項之系統,其中該指標陣列包括 至少兩項目,將當作一相同邏輯作業的一部分加以更 新0 如申叩專利範圍第5项之系統,其中該增量作業包括 一模作業及一跨步作業至少其一。 8.如申請專利範圍第i嚷之系統,其中該指標陣列的每 —項目包括該向量資料檔案中至少一儲存元件的一起 始位址。 9·如申請專利範圍第i项之系統,其中將該向量資料檔 案之儲存元件邏輯組織於具有列與行的一矩陣中,I 其中孩指標陣列的每一項目包括一位址,代表該向量 資料檔案中至少一元件之列與行。 10.如申請專利範圍第i項之系統,其中將該向量檔案資 料之儲存元件邏輯組織於具有列與行的一矩陣中,且 其中該指標陣列的每一陣列包括一位址,代表該向量 2貝料檐案中一單一元件之列與行。 U·如申請專利範圍帛Η之系統,其v,對於該指標陣 列中I任何給定項目,以該任何給定項目所識別的至 少一儲存元件與以該指標陣列之其他項目所識別的至 少一儲存元件相獨立。 12. —種用於處理作業之方法,其中該處理作業使用資料 .向量,各包含複數個資料元件,該方法包含下 驟: $ 提供一向量資料檔案,包含複數個儲存元件,用以 — ·"·" · _ 23 _ 本紙張尺錢财—(21〇-r^Fr (請先閱讀背面之注意事項再填寫本頁) • ------—訂---I----I I 經濟部智慧財產局員工消費合作社印製 六、申請專利範 圍 儲存該資料向量之資料元件,以及 提仏扎k陣列,具有複數個項目,其中每一項 識別該向量資料檔案中的至少一儲存元件,該儲存元 件用以儲存資料向量的至少-資料元件,其中對於該 指標陣列中至少一牿余 Λ 頁目,以孩特定項目所識別的 至少-儲存元件具有該向量資料檔案中的一隨意起始 位址。 13•如申請專利範圍第12項之方法,其中,對於該指標陣 列中〈任何给定項目,以任何给定項目所識別的至 —儲存元件具有該向量資料檔案中的一隨意起始 址0 认如申請專利範圍第12項之方法,進一步包含下 驟: k根據從該向#資料播案中至少一資料元件所讀出 負料’更新该指標陣列的至少一項目。 15.如申請專利範圍第12項之方法,進一步包含下列 驟: 根據從藉由將讀取自該指標陣列其至少一项目之 料增量而產生的資料所讀出之資料,更新該指標= 的至少一項目。 &如申請專利範圍第12項之方法,進一步包含下列 驟: 根據精由以謂取自該指標陣列其至少一項目之資 執行一增量作業所產生的資料,更新該指標陣列的至 少 位 步 之 步 資 列 步 料 24- 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 x 297公釐 484074 經濟部智慧財產局員工消費合作社印製 A8 B8 C8 D8 六、申請專利範圍 少一項目。 17·如申請專利範圍第16項之方法,其中將該指標陣列之 至少兩項目當作一相同邏輯作業的一部分加以更新。 18·如申請專利範園第16項之方法,其中該增量作業進一 步包括一模作業及一跨步作業至少其一,其作業於從 該指標陣列的至少一項目所讀取之資料。 19·如申請專利範圍第12項之方法,其中該指標陣列的每 員目儲存該向量資料構案中至少一儲存元件的一起 始位址。 2〇·如申請專利範圍第12項之方法,其中將該向量資料檔 案 < 儲存元件邏輯組織於具有列與行的一矩陣中,且 $中該指標陣列的每一項目儲存一位址,代表該向量 資料檔案中至少一元件之列與行。 孔如申請專利範圍第12項之方法,其中將該向量樑案資 料义儲存元件邏輯組織於具有列與行的一矩陣中,且 其中指標陣列的每- P車列儲存一位址,代表該向量資 料橋案中一單一元件之列與行。 U如申請專利範圍第12項之方法,其中,對於該指標陣 列中(任何給定項目,以該任何给定項目所識別的至 少一儲存元件與以該指標陣列之其他項目所識別的至 少一儲存元件相獨立。 23·—種機器可讀取之程式儲存裝置,且 祕抑土w 、 實施可精由該 機益執行的一指令程式’以執行用於處理作 步驟,該處理作業使用資料向量, 各包含複數個資料 (請先閱讀背面之注意事項再填寫本頁) · n ϋ ϋ ϋ I ϋ I a ϋ I ϋ ϋ H ϋ ϋ I ϋ H ϋ ϋ ϋ ϋ n i-i n 1 ϋ ϋ .1 ϋ n n n ϋ _ > -25- 、申凊專利範圍 元件,該方法步驟包含·· 提供-向量資料檔案,其中包含複數個 用以儲存該資料向量之資料元件,以及 件, 提供—指標陣列,具有複數個項目,其中> — 識別該向量資料檑案中至少—儲存元件,、兮=项目 用以儲存該資料向量的至少—資料元件,其==元)牛 指標陣列中至少—特定項目, 、於该 S心一件六-Λ 邊特疋项目所識別的 J二…件具有該向量資料擋案中的—随意起始 24. 如申請專利範圍第23項之程式儲存裝置,其中 該指標陣列中之任何给定項目,以任何給定項識 訂 別的至少-錯存元件具有該向量資料樓案中的: 起始位址。 4思 25. 如申請專利範圍第23項之程式儲存裝置,進 本 下列步驟: 匕口 線 根據從該向量資料標案中的至少—資料元件所讀出 之貝料,更新该指標陣列的至少一項目。 經濟部智慧財產局員工消費合作社印製 26. 如申請專利範圍第23項之程式儲存裝置,進—步包含 下列步驟: 口 根據從藉由將讀取自該指標陣列其至少一項目之資 料增量而產生的資料所讀出之資料,更新該指檩陣列 的至少一項目。 27·如申請專利範圍第23項之程式儲存裝置,進〜步包含 下列步驟: 26- 484074 A8 B8 C8 D8 、申請專利範圍 目 根據以讀取自該指標陣列其至少一項目之資料執犷 增量作業所產生的資料,更新指標陣列的至少 28. 如申請專利範圍第27項之程式儲存裝置,其中將指標 陣列之至少兩項目當作一相同邏輯作業的—部分加以 更新。 29. 如申請專利範圍第27項之程式儲存裝置,其中該增量 作業進一#包括一模作業1 —跨步作Μ少其二,曰其 作業於從該指標陣列的至少一項目所讀取之資料。 3〇·如申請專利範„ 23項之程式儲存裝置,其中該指標 陣列的每一項目儲存該向量資料檔 件的一起始位址 少一儲存元 (請先閱讀背面之注意事項再填寫本頁) 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 31.如申請專利範圍第23項之程式儲存裝置,其中將該向 量資料樓案之儲存元件邏輯组織於具有列與行的一矩 Ρ車中,且其中Μ指標陣列的每—項目儲存—位址,代 表該向量資料檔案中至少一元件之列與行。 32·如申請專利範圍帛23項之程式儲存裝置,其中將該向 量檔案資料之儲存元件邏輯組織於具有列與行的一矩 陣中,且其中該指標陣列的每一陣列儲存一位址,代 表孩向量資料檔案中一單一元件之列與行。 33.如申請專利範圍第23項之程式儲存裝置,其中,對於 該指標陣列中之任何給定項目,以該任何給定目所識 別的至少一儲存元件與以該指標陣列之其他項目所識 別的至少一儲存元件相獨立。--------訂---------線 ------------------------
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/514,497 US6665790B1 (en) | 2000-02-29 | 2000-02-29 | Vector register file with arbitrary vector addressing |
Publications (1)
Publication Number | Publication Date |
---|---|
TW484074B true TW484074B (en) | 2002-04-21 |
Family
ID=24047424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089128215A TW484074B (en) | 2000-02-29 | 2000-12-29 | Vector register file with arbitrary vector addressing |
Country Status (6)
Country | Link |
---|---|
US (2) | US6665790B1 (zh) |
JP (1) | JP3940269B2 (zh) |
KR (1) | KR100447294B1 (zh) |
CA (1) | CA2337784A1 (zh) |
GB (1) | GB2365588B (zh) |
TW (1) | TW484074B (zh) |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665790B1 (en) * | 2000-02-29 | 2003-12-16 | International Business Machines Corporation | Vector register file with arbitrary vector addressing |
US7010004B2 (en) * | 2001-08-03 | 2006-03-07 | Optibase Ltd. | Method for multiplexing data for packet networks |
US6931400B1 (en) | 2001-08-21 | 2005-08-16 | At&T Corp. | Method and system for identifying representative trends using sketches |
GB2382674B (en) * | 2001-10-31 | 2005-11-16 | Alphamosaic Ltd | Data access in a processor |
US20100274988A1 (en) * | 2002-02-04 | 2010-10-28 | Mimar Tibet | Flexible vector modes of operation for SIMD processor |
US20030221086A1 (en) * | 2002-02-13 | 2003-11-27 | Simovich Slobodan A. | Configurable stream processor apparatus and methods |
DE10206830B4 (de) * | 2002-02-18 | 2004-10-14 | Systemonic Ag | Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden |
US6915411B2 (en) * | 2002-07-18 | 2005-07-05 | International Business Machines Corporation | SIMD processor with concurrent operation of vector pointer datapath and vector computation datapath |
US7793084B1 (en) | 2002-07-22 | 2010-09-07 | Mimar Tibet | Efficient handling of vector high-level language conditional constructs in a SIMD processor |
US7580482B2 (en) | 2003-02-19 | 2009-08-25 | Endres Thomas J | Joint, adaptive control of equalization, synchronization, and gain in a digital communications receiver |
US7017028B2 (en) * | 2003-03-14 | 2006-03-21 | International Business Machines Corporation | Apparatus and method for updating pointers for indirect and parallel register access |
JP2004302647A (ja) * | 2003-03-28 | 2004-10-28 | Seiko Epson Corp | ベクトルプロセッサおよびレジスタのアドレス指定方法 |
US20040236920A1 (en) * | 2003-05-20 | 2004-11-25 | Sheaffer Gad S. | Methods and apparatus for gathering and scattering data associated with a single-instruction-multiple-data (SIMD) operation |
US7313788B2 (en) * | 2003-10-29 | 2007-12-25 | International Business Machines Corporation | Vectorization in a SIMdD DSP architecture |
US7945760B1 (en) * | 2004-04-01 | 2011-05-17 | Altera Corporation | Methods and apparatus for address translation functions |
US7302627B1 (en) * | 2004-04-05 | 2007-11-27 | Mimar Tibet | Apparatus for efficient LFSR calculation in a SIMD processor |
US7873812B1 (en) | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US7850400B2 (en) * | 2004-11-25 | 2010-12-14 | Freyssinet International (Stup) | Stabilized soil structure and facing elements for its construction |
US20060149938A1 (en) * | 2004-12-29 | 2006-07-06 | Hong Jiang | Determining a register file region based at least in part on a value in an index register |
TWI277876B (en) * | 2005-10-28 | 2007-04-01 | Via Tech Inc | Data storage and transfer method |
TW200739363A (en) * | 2006-04-04 | 2007-10-16 | Nat Univ Chung Cheng | Flexible load and storage device for multimedia applications |
US8135897B2 (en) | 2006-05-16 | 2012-03-13 | St-Ericsson Sa | Memory architecture |
US7788471B2 (en) * | 2006-09-18 | 2010-08-31 | Freescale Semiconductor, Inc. | Data processor and methods thereof |
US7441099B2 (en) * | 2006-10-03 | 2008-10-21 | Hong Kong Applied Science and Technology Research Institute Company Limited | Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit |
FR2918190B1 (fr) * | 2007-06-26 | 2009-09-18 | Thales Sa | Dispositif d'adressage pour processeur parallele. |
US8122229B2 (en) * | 2007-09-12 | 2012-02-21 | Convey Computer | Dispatch mechanism for dispatching instructions from a host processor to a co-processor |
US9710384B2 (en) | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
US8561037B2 (en) | 2007-08-29 | 2013-10-15 | Convey Computer | Compiler for generating an executable comprising instructions for a plurality of different instruction sets |
US8156307B2 (en) * | 2007-08-20 | 2012-04-10 | Convey Computer | Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set |
US8095735B2 (en) | 2008-08-05 | 2012-01-10 | Convey Computer | Memory interleave for heterogeneous computing |
US9015399B2 (en) | 2007-08-20 | 2015-04-21 | Convey Computer | Multiple data channel memory module architecture |
US10020037B2 (en) * | 2007-12-10 | 2018-07-10 | Intel Corporation | Capacity register file |
US8051226B2 (en) | 2008-06-13 | 2011-11-01 | Freescale Semiconductor, Inc. | Circular buffer support in a single instruction multiple data (SIMD) data processor |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US8205066B2 (en) * | 2008-10-31 | 2012-06-19 | Convey Computer | Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor |
US20100115233A1 (en) * | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
US8423745B1 (en) | 2009-11-16 | 2013-04-16 | Convey Computer | Systems and methods for mapping a neighborhood of data to general registers of a processing element |
US8635431B2 (en) | 2010-12-08 | 2014-01-21 | International Business Machines Corporation | Vector gather buffer for multiple address vector loads |
KR20120134549A (ko) | 2011-06-02 | 2012-12-12 | 삼성전자주식회사 | Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법 |
SE537423C2 (sv) | 2011-12-20 | 2015-04-21 | Mediatek Sweden Ab | Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor |
US20130332701A1 (en) * | 2011-12-23 | 2013-12-12 | Jayashankar Bharadwaj | Apparatus and method for selecting elements of a vector computation |
US10430190B2 (en) | 2012-06-07 | 2019-10-01 | Micron Technology, Inc. | Systems and methods for selectively controlling multithreaded execution of executable code segments |
US9569211B2 (en) | 2012-08-03 | 2017-02-14 | International Business Machines Corporation | Predication in a vector processor |
US9575755B2 (en) | 2012-08-03 | 2017-02-21 | International Business Machines Corporation | Vector processing in an active memory device |
US9632777B2 (en) | 2012-08-03 | 2017-04-25 | International Business Machines Corporation | Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry |
US9003160B2 (en) | 2012-08-03 | 2015-04-07 | International Business Machines Corporation | Active buffered memory |
US9594724B2 (en) | 2012-08-09 | 2017-03-14 | International Business Machines Corporation | Vector register file |
US9268571B2 (en) * | 2012-10-18 | 2016-02-23 | Qualcomm Incorporated | Selective coupling of an address line to an element bank of a vector register file |
US8972782B2 (en) | 2012-11-09 | 2015-03-03 | International Business Machines Corporation | Exposed-pipeline processing element with rollback |
US9639503B2 (en) * | 2013-03-15 | 2017-05-02 | Qualcomm Incorporated | Vector indirect element vertical addressing mode with horizontal permute |
US10013253B2 (en) * | 2014-12-23 | 2018-07-03 | Intel Corporation | Method and apparatus for performing a vector bit reversal |
US9785437B2 (en) * | 2014-12-23 | 2017-10-10 | Intel Corporation | Method and apparatus for performing a vector bit reversal and crossing |
GB2540940B (en) * | 2015-07-31 | 2018-01-03 | Advanced Risc Mach Ltd | An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank |
CN111580865B (zh) * | 2016-01-20 | 2024-02-27 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
US10762164B2 (en) | 2016-01-20 | 2020-09-01 | Cambricon Technologies Corporation Limited | Vector and matrix computing device |
CN111651205B (zh) * | 2016-04-26 | 2023-11-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量内积运算的装置和方法 |
JP2017228213A (ja) * | 2016-06-24 | 2017-12-28 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10776118B2 (en) * | 2016-09-09 | 2020-09-15 | International Business Machines Corporation | Index based memory access using single instruction multiple data unit |
KR102659495B1 (ko) | 2016-12-02 | 2024-04-22 | 삼성전자주식회사 | 벡터 프로세서 및 그 제어 방법 |
JP6500266B2 (ja) * | 2016-12-13 | 2019-04-17 | 株式会社アクセル | ディジタル信号処理装置 |
US11042375B2 (en) * | 2017-08-01 | 2021-06-22 | Arm Limited | Counting elements in data items in a data processing apparatus |
US11175915B2 (en) * | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US12112167B2 (en) * | 2020-06-27 | 2024-10-08 | Intel Corporation | Matrix data scatter and gather between rows and irregularly spaced memory locations |
US11782871B2 (en) | 2021-04-27 | 2023-10-10 | Microchip Technology Inc. | Method and apparatus for desynchronizing execution in a vector processor |
DE112022000529T5 (de) * | 2021-04-27 | 2023-11-16 | Microchip Technology Inc. | Verfahren und vorrichtung für gather/scatter-vorgänge in einem vektorprozessor |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6123275A (ja) | 1984-07-11 | 1986-01-31 | Nec Corp | ベクトル処理装置 |
JPS62120574A (ja) | 1985-11-20 | 1987-06-01 | Fujitsu Ltd | ベクトル処理装置 |
US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
JP2607689B2 (ja) * | 1989-07-10 | 1997-05-07 | 株式会社日立製作所 | ベクトル処理装置 |
JPH0444165A (ja) * | 1990-06-12 | 1992-02-13 | Nec Corp | 対称連立一次方程式の求解方式 |
US5392443A (en) * | 1991-03-19 | 1995-02-21 | Hitachi, Ltd. | Vector processor with a memory assigned with skewed addresses adapted for concurrent fetching of a number of vector elements belonging to the same vector data |
US5493687A (en) * | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
US5528550A (en) * | 1993-05-28 | 1996-06-18 | Texas Instruments Incorporated | Apparatus, systems and methods for implementing memory embedded search arithmetic logic unit |
US5669013A (en) * | 1993-10-05 | 1997-09-16 | Fujitsu Limited | System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions |
US5689653A (en) * | 1995-02-06 | 1997-11-18 | Hewlett-Packard Company | Vector memory operations |
US6016395A (en) * | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6288723B1 (en) * | 1998-04-01 | 2001-09-11 | Intel Corporation | Method and apparatus for converting data format to a graphics card |
US6266759B1 (en) * | 1998-12-14 | 2001-07-24 | Cray, Inc. | Register scoreboarding to support overlapped execution of vector memory reference instructions in a vector processor |
US6308252B1 (en) * | 1999-02-04 | 2001-10-23 | Kabushiki Kaisha Toshiba | Processor method and apparatus for performing single operand operation and multiple parallel operand operation |
US6665790B1 (en) * | 2000-02-29 | 2003-12-16 | International Business Machines Corporation | Vector register file with arbitrary vector addressing |
-
2000
- 2000-02-29 US US09/514,497 patent/US6665790B1/en not_active Expired - Fee Related
- 2000-12-29 TW TW089128215A patent/TW484074B/zh not_active IP Right Cessation
-
2001
- 2001-02-14 GB GB0103558A patent/GB2365588B/en not_active Expired - Lifetime
- 2001-02-15 CA CA002337784A patent/CA2337784A1/en not_active Abandoned
- 2001-02-26 KR KR10-2001-0009726A patent/KR100447294B1/ko not_active IP Right Cessation
- 2001-02-27 JP JP2001051897A patent/JP3940269B2/ja not_active Expired - Fee Related
-
2003
- 2003-11-15 US US10/713,502 patent/US7467288B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2337784A1 (en) | 2001-08-29 |
JP3940269B2 (ja) | 2007-07-04 |
US20040103262A1 (en) | 2004-05-27 |
JP2001273277A (ja) | 2001-10-05 |
GB2365588A (en) | 2002-02-20 |
GB2365588B (en) | 2004-08-25 |
GB0103558D0 (en) | 2001-03-28 |
KR100447294B1 (ko) | 2004-09-07 |
US7467288B2 (en) | 2008-12-16 |
US6665790B1 (en) | 2003-12-16 |
KR20010085614A (ko) | 2001-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW484074B (en) | Vector register file with arbitrary vector addressing | |
US6002881A (en) | Coprocessor data access control | |
US8078828B1 (en) | Memory mapped register file | |
JP3841131B2 (ja) | 浮動小数点演算システム | |
US5748515A (en) | Data processing condition code flags | |
US20020062436A1 (en) | Method for providing extended precision in simd vector arithmetic operations | |
US5969975A (en) | Data processing apparatus registers | |
US5881259A (en) | Input operand size and hi/low word selection control in data processing systems | |
US20040181646A1 (en) | Apparatus and method for updating pointers for indirect and parallel register access | |
TW200540706A (en) | Apparatus and method for asymmetric dual path processing | |
US7308559B2 (en) | Digital signal processor with cascaded SIMD organization | |
JPH08314717A (ja) | コンピュータ及びコンピュータ動作方法 | |
WO1998012628A1 (en) | Data processing system register control | |
JPH08314718A (ja) | データストリング生成方法、コンピュータ動作方法、コンピュータシステムによるマトリックス乗算方法、及びコンピュータ | |
US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
WO1998012625A1 (en) | Register addressing in a data processing apparatus | |
US20030221089A1 (en) | Microprocessor data manipulation matrix module | |
EP0927389B1 (en) | Register addressing in a data processing apparatus | |
TWI325542B (en) | Data access program instruction encoding | |
US6542989B2 (en) | Single instruction having op code and stack control field | |
EP0927390B1 (en) | Processing of conditional select and move instructions | |
JP2002529847A (ja) | ビットfifoを有するディジタル信号プロセッサ | |
KR900010587A (ko) | 생산라인의 고성능 명령어 실행방법 및 장치 | |
JP2916605B2 (ja) | コンピュータ用プロセツサ | |
US20040054873A1 (en) | Indirect indexing instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |