200947216 九、發明說明: 【發明所屬之技術領域】 本發明係一種以工作元為數據處理暨傳送單元之架構,尤指應用於具 有Serial ΑΤΑ介面之磁碟陣列系統中,以提高電腦主機數據存/取之效率 者。 【先前技術】 隨著電腦技術的快速發展,電腦廠商不斷地追求運算速度更快、效能 更佳的硬體設備。然而,除了追求更快速、更有效率的電腦硬體設備外, 另一個影響電腦操作效能的關鍵卻是數據存/取的速度;因此,在電腦系統 ® 内如沒有搭配適當的數據存/取架構,即使是運用最先進的硬體設備,也無 法全面性地改善電腦系統的整體操作性能。 請參照第1圖所示,該架構包括一主機50、一磁碟陣列系統60;其中, 該主機50進一步包含有一系統處理器51、一系統記憶體52及一主機端具 有支援 Serial ATA(Serial Advanced Technology Attachment)協定之介面 控制器53,該系統處理器51係將欲執行之指令透過seriai ΑΤΑ介面控制 器53向該磁碟陣列系統60發出數據讀取/儲存之指令,並將處理完成後之 數據回傳於該系統記憶體52中;該磁碟陣列系統60係透過通訊線路55與 β 該主機50之介面控制器53相連接,又,該磁碟陣列系統60進一步包含有 一磁碟陣列控制器61及數個磁碟62,惟該架構係使用Serial ΑΤΑ介面作 為數據高速傳送之通道,雖然提昇數據之傳輸效率,但該磁碟陣列控制器 61係接受主機50所傳來之指令而向該磁碟62執行數據之存/取,由於有些 指令係執行簡單的動作’但有些指令則執行比較複雜的數個動作,如此一 來,當該磁碟陣列系統60處理較複雜之指令時,需待其指令中所有動作皆 儿成後才開始回傳給主機5〇,所以當該指令之部份動作已完成,仍必須等 待該心令巾其他未絲之動作完成後再-起回傳域5G,@此無法有效提 尚主機之運作效率。 200947216 【發明内容】 發明人有鑑於上述架構於實施時之缺失,爰精心研究,進一步發展出 本案之以工作元為數據處理暨傳送單元之架構。 發明綱要: 本發明之一目的,在提供一種當執行主機之指令時,會將該指令拆解 成數個執行單元-工作元(job-based),並對儲存設備進行存/取動作。 本發明之再一目的,其工作元(job-based)於完成對儲存設備之存/ 取動作後’會以先完成先傳送(FIFO/ First in First out)之原則,依 序傳送回主機。 〇 本發明之又一目的’在執行指令動作或將完成指令動作之數據傳送 前’會先執行實體位置描述表控制器(PRD Table Controller)編譯的程 序’用以改善數據轉換的能力。 緣是’爲達到上述目的’本發明係一種以工作元為數據處理暨傳送單 元之架構’其包括’ 一主機、一磁碟陣列系統;其中,該主機上設有一介 面控制器、一系統處理器及一系統記憶體,且該介面控制器、系統處理器 及系統記憶體係透過系統匯流排而相連,其系統處理器係根據所欲執行之 指令透過介面控制器向該磁碟陣列系統發出數據存/取請求,並將回應之數 ❹ 據儲存於系統記憶體中; 其中’該磁碟陣列系統係與該介面控制器藉由通訊線路而相連接’且 該磁碟陣列系統進一步包含有一編/解碼控制器(c〇DEC compression/decompression)、一接收控制器(Receiver 如加以小 -傳輸控制器(Transmitter Controller )、-工作元仔列控備(j〇b Queue200947216 IX. Description of the Invention: [Technical Field] The present invention relates to a structure in which a work element is a data processing and transfer unit, and particularly to a disk array system having a Serial interface, to improve data storage of a host computer. / Take the efficiency. [Prior Art] With the rapid development of computer technology, computer manufacturers are continually pursuing hardware devices with faster computing speed and better performance. However, in addition to the pursuit of faster and more efficient computer hardware devices, another key to the performance of computer operations is the speed of data storage/removal; therefore, if there is no appropriate data storage/access in the computer system® The architecture, even with the most advanced hardware devices, does not provide a comprehensive improvement in the overall operational performance of the computer system. Referring to FIG. 1, the architecture includes a host 50 and a disk array system 60. The host 50 further includes a system processor 51, a system memory 52, and a host terminal supporting Serial ATA (Serial). The interface controller 53 of the Advanced Technology Attachment protocol, the system processor 51 sends an instruction to execute the data read/store command to the disk array system 60 through the seriai interface controller 53, and after the processing is completed The data is transmitted back to the system memory 52. The disk array system 60 is connected to the interface controller 53 of the host 50 via the communication line 55. Further, the disk array system 60 further includes a disk array. The controller 61 and the plurality of disks 62, but the architecture uses the Serial interface as a channel for high-speed data transmission. Although the data transmission efficiency is improved, the disk array controller 61 receives the commands from the host 50. Performing data storage/fetching to the disk 62, because some instructions perform simple actions 'but some instructions perform a relatively complicated number of actions, such a When the disk array system 60 processes a more complicated instruction, it needs to wait for all the actions in the instruction to be returned to the host 5, so when part of the action of the instruction is completed, it must still wait for the instruction. After the other action of the heart towel is completed, it will be returned to the domain 5G. @This cannot effectively improve the operational efficiency of the host. 200947216 SUMMARY OF THE INVENTION In view of the lack of implementation of the above architecture, the inventors have carefully studied and further developed the structure of the work data processing and transmission unit. SUMMARY OF THE INVENTION: It is an object of the present invention to provide a method of executing a host, disassembling the instruction into a plurality of execution units-job-based, and performing a store/fetch operation on the storage device. In still another object of the present invention, the job-based will be transmitted back to the host in sequence on the principle of FIFO/First in First Out after the storage/storage operation of the storage device is completed.又一 Another object of the present invention is to perform a program compiled by a PRD Table Controller to improve data conversion capability before executing an instruction action or transferring data for completing an instruction action. The present invention is an architecture for a data processing and transfer unit that includes a host and a disk array system. The host is provided with an interface controller and a system for processing. And a system memory, and the interface controller, the system processor and the system memory system are connected through the system bus, and the system processor sends data to the disk array system through the interface controller according to the instruction to be executed. Depositing/retrieving the request, and storing the response data in the system memory; wherein 'the disk array system is connected to the interface controller by a communication line' and the disk array system further includes a file / decoding controller (c 〇 DEC compression / decompression), a receiving controller (Receiver such as the small - transmission controller (Transmitter Controller), - work element control device (j〇b Queue
Controller)、一實體位置描述表控制器(pRD下油“ c〇ntr〇Uer)、一直 接6己憶體存/取控制器(Direct Memory Access Controller/ DMA控制器) 及透過DMA匯流排相連接之儲存設備;該編/解碼控制器係透過介面控制器 執行從主機所傳送來之指令’該指令格式係符合訊框資訊架構(Fis),並 200947216 依8b/10b之譯碼機制進行解碼程序;該接收控制器係將經解碼程序之指令 拆解成數個可獨立完成之單元—工作元(灿如⑷;該傳輸控制器係將 完成已存/取動作之數據仍以工作元(j〇M酿為處理單元回應於主機; 該工作元符列控制器係將待執行之指令工作元或處理完成之數據工作元依 序排列等待執行或回應主機;該腿控制器係於取得系統匯流排主控權後, 將由該工作元仔列控制器依序排列之待執行工献寫入·^流排,即開 純行數據之存/取’或將處理完成之數據工作元傳送至該工作元仲列控制 器依序排列’等待回應主機,且該難匯流排並與儲存設備或記憶體控制 器或PCI控制器等相連;該實體位置描述表控制器⑽)係描述欲處理之 Ο指令及數據之轉換地址(Transfer Add聰)和轉換容量(τ·知Controller), a physical location description table controller (pRD under the oil "c〇ntr〇Uer", a direct 6 memory memory / controller (Direct Memory Access Controller / DMA controller) and connected through the DMA bus The storage device; the encoding/decoding controller executes the instruction transmitted from the host through the interface controller. The instruction format conforms to the frame information architecture (Fis), and the 200947216 decodes the program according to the decoding mechanism of 8b/10b. The receiving controller disassembles the decoded program instructions into a plurality of independently-performable units - the work element (Changru (4); the transmission controller will complete the data of the saved/fetched action still with the work element (j〇 M is a processing unit responsive to the host; the work element queue controller is to sequentially execute the instruction work element or the processed data work element to be executed or respond to the host; the leg controller is to obtain the system bus After the master control, the work to be executed by the work cell controller is sequentially written to the ^^ stream, that is, the storage/fetch of the pure data is performed or the processed data work element is transferred to the The controller is arranged in a sequence of 'waiting for response to the host, and the difficult bus is connected to the storage device or the memory controller or the PCI controller; the physical location description table controller (10) describes the processing to be processed. Conversion address of instruction and data (Transfer Add) and conversion capacity (τ·Know
Count) ’藉由該實體位置描述表鋪器⑽)之描述,令腿控制器將數 據寫入到相連接之儲存設備。 本發明係將齡拆触油獨立誠之轉元,^作元為數據處 理暨傳送單元’不必像先前技術是以指令中所有動作皆完成後始開始回傳 主機本發似)了等待指令動作完成的咖,因此可以大幅提高主機運 作效率》 【實施方式】 〇 請參照第2圖所示’其為本發明之較佳實施方式,該架構包括,-主 機H)、一磁碟陣列系統2〇 ;其中,該主機1〇上設有一介面控制器u (於 本實施例係為支援Serial ATA規格之介面控制器)、一系統處理器12、一 系統記憶體13 ;該介面控制器U、系統處理器12及系統記憶體13係透過 系統匯流排14而相連,該系統處理器12係根據所欲執行之指令透過該介 面控制器11向該磁碟陣列系統20發出數據存/取請求,並將回應之數據储 存於系統記憶體13中; 其中’該磁碟陣列系統20係透過通訊線路15與該介面控制器i j相連 接’且該磁碟陣列系統2〇進一步包含有一編/解碼控制器21、一接收控制 7 200947216 器22、-傳輸控制器23、-工作元件列控制器24、一實體位置描述表控制 器25、一 DMA控制器26及透過DMA匯流排27相連接之儲存設備(圖中未 示,於本實施例之儲存設備係支援NCQ (NativeC〇BHnandQueuing)協定); 其該編’解碼控制器21係透過介面控制器11執行從主機1〇所傳來指 7該指7係符合訊框資訊架構(Fraffle 〖nf〇rfflati〇n structure /pig) 格式,並依8b/l〇b之譯碼機制進行解碼程序; 其該接收控制器22係將經解碼程序之指令拆解成數個可獨立完成之單 元—工作元(job-based); 其該傳輸控制器23係將完成已存/取動作之數據仍以工作元 © (job-based)為單元回應於主機; 其該工作元佇列控制器24係將待執行之指令工作元或已處理完成之指 令動作以數據工作元為單元依序排列,並等待執行或回應主機1〇 ; 其該DM控制器26係於取得DMA匯流排27主控權後,將該工作元佇 列控制器24依序排列之待執行工作元寫入腿匯流排27,即開始進行數據 之存/取,或將處理完成之數據工作元傳送至該工作元佇列控制器24依序 排列’等待回應主機10 ’且該腿匯流排27並與儲存設備或記憶體控制器 或PCI控制器等相連(圖中未示); φ 該實體位置描述表控制器(PRD) 25係描述欲處理之指令及數據之轉換 地址(Transfer Address)和轉換容量(Transfer Count),藉由該描述而 令DMA控制器26將數據寫入到相連接之餘存設備。 再者’該接收控制器22從編/解碼控制器21取得之指令係符合訊框資 訊架構格式’並將該指令拆解成數個工作元,該等工作元並依序排列於該 工作元佇列控制器24中’將系統處理器12所欲處理數據,藉由實體位置 描述表控制器(PRD)所描述之轉換地址(Transfer Address)和轉換容量 (Transfer Count),而令該DMA控制器26將數據寫入到相連接之儲存設 200947216 會將在當該驅控制器26將執行完成之數據工作元傳回主機ϊ〇時, 會將已元赫/_叙數據工作被完錢_雜_渺工作 =Γ ’再透過該工作元㈣控制器24通知傳輸控制器23,同時, 26會將處理數據,藉咖位職表_⑽)所描 ==6將晴獅傳軸編喊域㈣入到相連 參 3圖所示本發明之將從_來之指令拆解成數個 t,或將經_控制器26處理動作 作元侧鋪器24心魏先絲先_ (觸)之原則, 送與靖或麵_ 26,於本細t之工作A 施例為4DW0RD類型。 貝 麗^ /參照第4圖所示’其為本發明之接收控制器22於接收由該介面 =1之贿資訊架構(Fis)格式時之處理示意圖,該符合訊 2資訊架構⑽)格式可為由主機所傳送之指令,該接收控· 22中設 =憶空㈣’該記億空間3G包含有A、β_ 3ι、犯,該a指位器31 糸為該記憶_〇内訊框資訊架構(FIS)總數,而b指位器&係為指示 =»己隐工間30内當時執行位置;於初始作動時,該a、b指位器3卜犯值 係為相等’但當第-個經由介面控制器u所傳送之訊框資訊架構⑽) 時’並經編/解碼控制器21進行編解譯程序後傳送至該接收控制器烈時, _收控制器22會更新訊框資訊架構(⑽總數為A指位謂,此時B 和位器32會依序執行jlb指位器321 ;同時,當該接收控制器接24收到第 2個訊框資訊架構(FIS)時1記憶空間3()内之a指位器31,將會更新 為312 ’同時’該B指位器321依序執行至B指位器微,以此類推。 請參照第5圖所不,其為本發明之工作元仔列控制器以針對執行後之 數據之作動作說明’該工作元仵列控制器24中設有工作元作列記憶空間 200947216 40 ’該工作元仔列記憶空f4 40 &含有A、B指位器41、犯,該a指位器4i 係為該工作元仔列記憶空間40内需被轉移至主機之數據總數,而β指位器 42係為指示該工作元㈣記憶空間4〇内已完成之工作;於初始作動時,該 A、Β指位㈣、42係為初純’但程式執行之卫作傳送至王作元仔列控制 器24時’該工作元佇列控制器24會更新工作總數為Α指位器4ιι,此時程 式連續執行-個贿列中之工作元,同時每一個執行之工作元會有獨立之 傳輸訊框結構’同時’並通知傳輸控制器23而傳送至主機ι〇 ;當程式於執 行上述工作後該A、B指位器411、421將會相# ;同時,當程式繼績行 新的工作時,則該工作元符列記憶空間仙内之A指位器4ιι,將會更新為 罾必同時,程式會執行並更新由B指位器421至β指位器似,以此類推。 請-併參閲第6圖’其係本發明以工作元為數據處理暨傳送單元之運 作流程示意圖,其包括有: (1)主機下達指令51 ; ⑵磁碟陣雕統上之接收控㈣收到指令’並將該指令拆解成數個可 獨立完成之工作元單元52 ; _ (3)工作元仔列控制器收到數個已拆解為數個可獨立完成之指令工作 兀,並以先進先出原則依序進行數據存/取53 ; ❹器54(4)將已完成存/取動作以數據工作元為單元傳送至工作元仵列控制 ⑸工作树難__數個已完成處狀數據卫作元並 出原則依序進行數據工作元傳送55 ; 理將指_成數個可獨立完成之卫作元,以卫作元為數據處 、單% ’不必像先紐術是以指令巾所有動作皆完錢開始回傳主 ’減少了等待指令動作完成的_,可以大幅提高主機運作效率。 之Z上’料本㈣之触實酬㈣,當純蚊本發明實施 舉凡類似之變更或置換’或依本發㈣料利範®所作之均等 200947216 變化與修飾,皆應仍屬本發明專利涵蓋之範疇。 【圖式簡單說明】 第1圖為習知之架構示意圖。 第2圖為本發明之架構示意圖。 第3圖為本發明之工作元佇列排列之示意圖。 第4圖為本發明接收控制器之FIS架構指位器作動示意圖。 第5圖為本發明接收控制器之工作元佇列之指位器作動示意圖。 第6圖為本發明以工作元為數據處理暨傳送單元之運作流程示意圖。【主要元件符號說明】 ❹ 主機 介面控制器 系統處理器 系統記憶體 系統匯流排 通訊線路 磁碟陣列系統 編/解碼控制器 ©接收控制器 傳輸控制器 工作元佇列控制器 實體位置描述表控制器 DMA控制器 DMA匯流排 指令匯流排 記憶空間 A指位器 10 11 12 13 14 15 20 21 22 23 24 25 26 ' 27 28 30、 40 31、 31 卜 312、41、411、412 11 200947216 B指位器 32、321、322、42、42 卜 422Count) 'The description of the physical location description table (10)) causes the leg controller to write data to the connected storage device. The invention is an independent transfer of the oil of the age, and the data processing and transfer unit is not required to complete the return of the host after the completion of all the actions in the instruction as in the prior art. The coffee can greatly improve the efficiency of the host operation. [Embodiment] Please refer to FIG. 2, which is a preferred embodiment of the present invention. The architecture includes, - Host H, a disk array system. The host controller 1 is provided with an interface controller u (in this embodiment, an interface controller supporting the Serial ATA specification), a system processor 12, and a system memory 13; the interface controller U and the system The processor 12 and the system memory 13 are connected through the system bus 14 , and the system processor 12 sends a data save/fetch request to the disk array system 20 through the interface controller 11 according to the instruction to be executed, and The response data is stored in the system memory 13; wherein the disk array system 20 is connected to the interface controller ij via the communication line 15 and the disk array system 2 further includes The encoding/decoding controller 21, a receiving control 7 200947216 22, a transmission controller 23, a working element column controller 24, a physical position description table controller 25, a DMA controller 26, and a DMA busbar 27 The connected storage device (not shown in the figure, the storage device in the embodiment supports the NCQ (NativeC〇BHnandQueuing) protocol); the coded decoding controller 21 is transmitted from the host 1 through the interface controller 11. 7 refers to the frame information architecture (Fraffle 〖nf〇rfflati〇n structure / pig) format, and according to the decoding mechanism of 8b / l 〇 b decoding process; its receiving controller 22 will be decoded The instructions of the program are disassembled into a plurality of independently-performing units-job-based; the transmission controller 23 responds to the data of the stored/extracted operations by the job-based unit. The working unit controller 24 is configured to sequentially execute the instruction working elements to be executed or the processed instructions to be executed in units of data working elements, and wait for execution or response to the host 1; 26 is to obtain DMA convergence After the master control of the row 27, the work element to be executed sequentially arranged by the work unit queue controller 24 is written into the leg busbar 27, that is, data storage/fetching is started, or the processed data work element is transmitted to The work cell controller 24 sequentially arranges 'waiting for the host 10' and the leg bus 27 is connected to a storage device or a memory controller or a PCI controller or the like (not shown); φ the physical location description The table controller (PRD) 25 describes the transfer address and transfer count of the instruction and data to be processed, by which the DMA controller 26 writes the data to the remaining connection. device. Furthermore, the instruction received by the receiving controller 22 from the encoding/decoding controller 21 conforms to the frame information architecture format and disassembles the command into a plurality of working elements, which are sequentially arranged in the working unit. The column controller 24 'puts the data to be processed by the system processor 12, and uses the transfer address and transfer count described by the physical location description table controller (PRD) to make the DMA controller 26 writing the data to the connected storage device 200947216 will be used when the drive controller 26 will execute the completed data work element back to the host, and the data will be completed. _渺 work = Γ 'receive the transfer controller 23 through the work unit (4) controller 24, at the same time, 26 will process the data, as described in the _ _ _ _ (10)) ==6 will be the lion's axis (4) The invention shown in the attached figure 3 is disassembled into a number of t from the instruction of the _, or the processing action of the _ controller 26 is used as the principle of the first side _ (touch) of the heart side splicer 24 With Jing or Noodle _ 26, in the work of this fine t, the example is 4DW0RD type. Belle ^ / Referring to Figure 4, which is a processing diagram of the receiving controller 22 of the present invention when receiving the Fis format of the interface = 1, the conforming information structure (10) format can be For the instruction transmitted by the host, the receiving control 22 sets the value of the memory (4) 'the space 3G contains A, β_ 3ι, the offense, the a pointer 31 is the memory _ 〇 internal frame information The total number of architectures (FIS), and the b-pointer & is the indication == the current execution position within the hidden work room 30; at the initial actuation, the a, b positioner 3 is equal to the value of the 'but when When the frame information structure (10) transmitted by the interface controller u is transmitted to the receiving controller by the editing/decoding controller 21, the controller 22 updates the message. Box information architecture ((10) The total number is A. In this case, B and bit 32 will execute jlb pointer 321 in sequence; meanwhile, when the receiving controller receives 24, receive the second frame information architecture (FIS). The a pointer 31 in the memory space 3() will be updated to 312 'at the same time. The B pointer 321 is sequentially executed to the B pointer micro, and so on. Please refer to FIG. 5, which is a working element controller of the present invention for explaining the action of the executed data. 'The working element queue controller 24 is provided with a working element for the column memory space 200947216 40 'The working element queue memory f4 40 & contains A, B positioner 41, guilty, the a pointer 4i is the total number of data in the memory space 40 to be transferred to the host, and The β positioner 42 is for indicating the work done in the working space (4) memory space 4; in the initial operation, the A, Β finger position (4), 42 series is the initial pure 'but the program execution is transmitted to Wang Zuoyuan When the controller 24 is in the controller 24, the work unit queue controller 24 will update the total number of jobs to be the positioner 4 ιι, and the program will continuously execute the work elements in the bribe list, and each work unit will be independent. The transmission frame structure is 'simultaneous' and notifies the transmission controller 23 to be transmitted to the host ι; when the program performs the above work, the A, B positioners 411, 421 will be #; meanwhile, when the program is succeeded In the new work, the work element is listed in the memory space. The device 4 will be updated to be the same, the program will execute and update the B positioner 421 to the β positioner, and so on. Please - and refer to Figure 6 The schematic diagram of the operation process of the data processing and transmission unit includes: (1) the host issuing instruction 51; (2) receiving control on the disk array (4) receiving the instruction 'and disassembling the instruction into several independently workable tasks Element unit 52; _ (3) The working element controller receives several pieces of instructions that have been disassembled into several independently executable instructions, and performs data storage/fetching in sequence on a first-in, first-out basis; 4) Transfer the completed save/fetch action to the work unit as the unit of the work unit. (5) The work tree is difficult __Several completed data data processing elements and the data work element transfer 55 in principle; It will refer to _ into a number of independently completed Wei Zuoyuan, with Wei Zuoyuan as the data department, single % 'do not have to be like the first button, all the actions are finished with the command towel and start to return the main 'reduced the waiting instruction action _, can greatly improve the efficiency of the host operation. On the Z, the material (4) of the invention (4), when the pure mosquitoes of the present invention are similar to the changes or replacements, or according to the same (4) materials, the equivalent of 200947216 changes and modifications, should still be covered by the invention patent The scope. [Simple description of the diagram] Figure 1 is a schematic diagram of a conventional architecture. Figure 2 is a schematic diagram of the architecture of the present invention. Fig. 3 is a schematic view showing the arrangement of the working elements of the present invention. Figure 4 is a schematic diagram of the operation of the FIS architecture pointer of the receiving controller of the present invention. FIG. 5 is a schematic diagram of the operation of the positioner of the working unit of the receiving controller of the present invention. Figure 6 is a schematic diagram showing the operation flow of the data processing and transfer unit of the present invention. [Main component symbol description] 主机 Host interface controller system processor system memory system bus line communication line disk array system encoding/decoding controller © receiving controller transmission controller working unit queue controller entity position description table controller DMA controller DMA bus instruction bus memory space A pointer 10 11 12 13 14 15 20 21 22 23 24 25 26 ' 27 28 30, 40 31, 31 312, 41, 411, 412 11 200947216 B 32, 321, 322, 42, 42
1212