TWI447646B - 資料傳輸裝置及多個指令的整合方法 - Google Patents

資料傳輸裝置及多個指令的整合方法 Download PDF

Info

Publication number
TWI447646B
TWI447646B TW100142254A TW100142254A TWI447646B TW I447646 B TWI447646 B TW I447646B TW 100142254 A TW100142254 A TW 100142254A TW 100142254 A TW100142254 A TW 100142254A TW I447646 B TWI447646 B TW I447646B
Authority
TW
Taiwan
Prior art keywords
data
memory block
original
integrated
instructions
Prior art date
Application number
TW100142254A
Other languages
English (en)
Other versions
TW201322124A (zh
Inventor
Ming Hui Chiu
Chia Hsin Chen
Original Assignee
Asmedia Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asmedia Technology Inc filed Critical Asmedia Technology Inc
Priority to TW100142254A priority Critical patent/TWI447646B/zh
Priority to US13/662,566 priority patent/US8843663B2/en
Publication of TW201322124A publication Critical patent/TW201322124A/zh
Application granted granted Critical
Publication of TWI447646B publication Critical patent/TWI447646B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Description

資料傳輸裝置及多個指令的整合方法
本發明是有關於一種資料傳輸技術,且特別是有關於一種資料傳輸裝置及多個指令的整合方法。
圖1是主機100與周邊裝置110的示意圖。如圖1所示,現今的主機100(例如,電腦裝置)與周邊裝置110通常透過資料傳輸介面來進行連接。為了發揮周邊裝置110的功用(例如,存取儲存於周邊裝置中的數位資訊),主機100的作業系統便會透過相關驅動程序及硬體的配合,發送指令給周邊裝置110,藉以開始執行周邊裝置110的相關功能。
當主機100在短時間內發出多個指令到周邊裝置110的時候,這些指令將會形成佇列(Queue)以等待周邊裝置110處理。周邊裝置110通常會依據這些指令的傳輸順序、或是周邊裝置110可自行決定這些指令的處理順序,藉以依序進行資料的存取。然而,當主機100下達的指令過多而此使得佇列過長時,周邊裝置110還是只能依據指令的個數來逐一完成。因此,傳統的作法無法有效地加快這些指令的處理時間。
本發明提供一種資料傳輸裝置,此資料傳輸裝置包括指令暫存器以及指令整合單元。指令暫存器接收並暫存多個原始指令。這些原始指令分別包括多個記憶體區塊。指令整合單元耦接至所述指令暫存器。當指令整合單元判斷這些原始指令的記憶體區塊為一連續記憶體區塊時,整合這些原始指令為一整合指令。
本發明提供一種多個指令的整合方法,其包括下列步驟。從一主機接收並暫存多個原始指令,其中這些原始指令分別包括多個記憶體區塊。判斷這些原始指令的這些記憶體區塊是否為一連續記憶體區塊。當判斷這些記憶體區塊為連續記憶體區塊時,整合這些原始指令為一整合指令。以及,傳送此整合指令至一周邊裝置。
基於上述,本發明實施例利用位於主機與周邊裝置之間的資料傳輸裝置,其將主機所發出的多個原始指令進行分析,並判斷相同種類之原始指令中所對應的記憶體區塊是否可以整合為同一個連續的記憶體區塊。如果這些原始指令對應的記憶體區塊部分重疊或是相互連接,可以整合為同一個記憶體區塊時,便藉由演算法來整合這些原始指令為一整合指令,並對相對應的讀取資料及寫入資料進行處理。藉此,便可減少周邊裝置所需處理的指令數量,有效地加快周邊裝置的處理時效。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
請參照圖2是根據本發明一實施例說明之資料傳輸裝置200的方塊圖。資料傳輸裝置200則設置於主機100及周邊裝置110之間,藉以對主機100與周邊裝置110之間所傳輸的指令及資料進行處理。於本實施例中,資料傳輸裝置200可以設置於主機100,也可以裝設於周邊裝置110的資料傳輸介面上,本發明實施例並不限制資料傳輸裝置200的裝設地點。
資料傳輸裝置200包括指令暫存器210以及指令整合單元220,而指令整合單元220耦接到指令暫存器210。此處的指令暫存器210可以是先進先出(FIFO)暫存器。於本實施例中,資料傳輸裝置200更包括資料處理單元230以及記憶模組240,且記憶模組240耦接資料處理單元230。主機100可透過資料傳輸介面傳送這些原始指令至指令暫存器210。指令整合單元220也是透過相同格式的資料傳輸介面來傳送整合指令至周邊裝置110。
由於主機100的作業系統經常會對周邊裝置110進行資料長度較短卻連續的資料存取指令,因此經常會發出眾多的指令給周邊裝置110,使得這些指令會形成佇列,並等待周邊裝置110進行處理。因此,本發明實施例的資料傳輸裝置200便可配合本發明實施例所述之多個指令的整合方法,將主機100所發送的多個指令進行分析並加以整合,減少周邊裝置所需處理的指令數量,有效加快周邊裝置的處理時效。
圖3是根據本發明一實施例說明多個指令的整合方法的流程圖。請同時參照圖2及圖3,於步驟S310中,資料傳輸裝置200中的指令暫存器210從主機100依序接收並暫存多個原始指令,並且這些原始指令分別對應多個記憶體區塊。於本實施例中,每個原始指令的內容至少應包括指令種類(例如,讀取或寫入)、記憶體區塊的起始位址、資料長度...等資訊。上述記憶體區塊的起始位址可以利用邏輯區塊位址(Logical Block Address;LBA)作為舉例。
特別說明的是,由於可從原始指令中得知記憶體區塊的起始位址以及資料長度,因此資料傳輸裝置200應可輕易計算出這個指令所要處理的記憶體區塊及這個記憶體區塊的範圍。
上述原始指令的格式可依照主機100與周邊裝置110所採用的資料傳輸介面來決定。於本實施例中,上述的資料傳輸介面例如是序列先進技術附件(Serial Advanced Technology Attachment;SATA)、小型電腦系統介面(Small Computer System Interface;SCSI)或是通用序列匯流排(Universal Serial Bus;USB)...等資料傳輸介面,並且這些資料傳輸介面的指令格式中皆具有指令種類(例如,讀取或寫入)、記憶體區塊的起始位址及資料長度...等資訊。本發明實施例並不限制資料傳輸介面的種類。
於步驟S320中,指令整合單元220便會偵測這些暫存之原始指令的記憶體區塊,並判斷這些原始指令的這些記憶體區塊是否為一連續記憶體區塊。在此利用圖4A及圖4B所繪示之原始指令I1~I4、I5~I8及其記憶體區塊411~414、431~434作為舉例,藉以說明步驟S320。圖4A及圖4B繪示多個原始指令及整合指令的記憶體區塊的示意圖。圖4A的原始指令I1~I4具有相對應的記憶體區塊411~414,而圖4B的原始指令I5~I8則具有相對應的記憶體區塊431~434。並且,原始指令I1~I4、I5~I8應為同樣的指令種類,例如這些原始指令I1~I4、I5~I8皆為寫入(write)指令或是讀取(read)指令。其中,圖4A中原始指令I1~I4具有相互連接的連續記憶體區塊411~414,而圖4B中原始指令I5~I8的記憶體區塊431~434則有部分重疊或相互連接。
如圖4A所示,原始指令I1之記憶體區塊411的起始位址為『0』,而記憶體區塊411的資料長度為100,因此可計算出此記憶體區塊411的結束位址為『99』,並將此記憶體區塊411表示為『0~99』。依此類推,記憶體區塊412、413及414的資料長度分別是100、100與400,記憶體區塊412、413及414便分別表示為『100~199』、『200~299』與『300~699』。
藉此,請參考圖4A並配合圖3,圖2的指令整合單元220在步驟S320中會偵測各個原始指令I1~I4中的記憶體區塊411~414。並且,由於記憶體區塊411~414兩兩相互連接,因此指令整合單元220便判斷記憶體區塊411~414可以組成一個連續的記憶體區塊,如整合指令IR1所對應的連續記憶體區塊420,其表示為『0~699』。
藉此,當指令整合單元220判斷這些記憶體區塊411~414為連續記憶體區塊的時候,便從步驟S320進入步驟S330,指令整合單元220整合這些原始指令I1~I4為整合指令IR1。
在圖4A的實現中,原始指令I1~I4應皆為同樣的指令種類,因此整合指令IR1也與原始指令I1~I4為相同的指令種類。此外,記憶體區塊411~414皆為多個連續的記憶體區塊,因此,指令整合單元220在整合原始指令I1~I4為整合指令IR1時,可將整合指令IR1中記憶體區塊的起始位址設定為最先原始指令I1的起始位址(也就是『0』),而整合指令IR1中資料長度的值則由最後一個原始指令I4的起始位址(也就是『300』)加上原始指令I4的資料長度(也就是『400』)之後,減去最先原始指令I1的起始位址(也就是『0』)便可求得。也就是說,整合指令IR1中資料長度的值應為700。
此外,請參照圖4B並配合圖3。於圖4B中,原始指令I5的記憶體區塊431的起始位址為『0』,而記憶體區塊431的資料長度為200,因此可計算出此記憶體區塊431的結束位址為『199』,並且此記憶體區塊431可表示為『0~199』。依此類推,原始指令I6、I7及I8對應之記憶體區塊432、433及434的起始位址分別是『100』、『300』及『500』,其資料長度分別是300、200與200,因此記憶體區塊432、433及434便可分別表示為『100~399』、『300~499』與『500~699』。
藉此可知,由於原始指令I5~I8的記憶體區塊431~434兩兩部分重疊(例如,記憶體區塊431~432的重疊部分R1及R2、記憶體區塊432~433的重疊部分R3及R4)、或是兩兩相互連接(例如,記憶體區塊433、434),因此指令整合單元220便可判斷這些記憶體區塊431~434可以成為整合指令IR2的連續記憶體區塊440(其表示為『0~699』)的時候,進入步驟S330,指令整合單元220便會整合上述原始指令I5~I8以成為整合指令IR2。
在圖4B的實現中,原始指令I5~I8應皆為同樣的指令種類,因此整合指令420也與原始指令I5~I8為相同的指令種類。此外,指令整合單元220在整合這些原始指令I5~I8為整合指令IR2時,可將整合指令IR2中記憶體區塊440的起始位址設定為最先原始指令I5的起始位址(也就是『0』),而整合指令IR2中資料長度的值則由最後一個原始指令I8的起始位址(也就是『500』)加上原始指令I8的資料長度(也就是『200』)之後,減去最先原始指令I5的起始位址(也就是『0』)便可求得。也就是說,整合指令IR2中資料長度的值應為700。
接著,於圖3的步驟S340中,指令整合單元220便會將此整合指令IR1或IR2傳送至週邊裝置110。藉此可知,無論是在圖4A中原始指令I1~I4兩兩相互連接的記憶體區塊411~414,還是在圖4B中原始指令I5~I8兩兩部分重疊記憶體區塊431~433、以及部分兩兩相互連接的記憶體區塊433~434,對於整合指令IR1、IR2中起始位址以及資料長度的計算方式是相同的。唯一不同之處應在於,這些原始指令I1~I4、I5~I8相對應的資料如何進行整合與處理,才能達到整合多個指令的目的。
若是如同圖4A中所述,原始指令I1~I4所對應的寫入資料(如果原始指令I1~I4皆為寫入指令)或是讀取資料(如果原始指令I1~I4皆為讀取指令)也為連續發送的話,資料傳輸裝置200只需要將寫入資料從主機100直接且依序地轉發到周邊裝置110,或是將上述的讀取資料從周邊裝置110直接且依序地轉發至主機100即可,主機100及周邊裝置110便可直接利用整合後的整合指令IR1及上述相關資料來執行相關功能,不需另外進行對應的資料處理。
然而,若是如同圖4B中所繪示,原始指令I5~I8所對應的寫入資料(如果原始指令I5~I8皆為寫入指令)或是讀取資料(如果原始指令I5~I8皆為讀取指令)有部份記憶體區塊會相互重疊時,則需要透過資料傳輸裝置200中的資料處理單元230以及記憶模組240來加以處理。
此外,由於原始指令的指令種類不同,將會產生不同的處理流程,因此本發明實施例列舉最為常用的兩種指令種類-寫入指令及讀取指令,藉以作為本實施例的舉例。熟悉此技術領域者應可藉由上述這兩種指令來輕易推知其他相類似的指令種類。
圖5是根據本發明一實施例說明當原始指令I5~I8為寫入指令時,對於寫入資料D5~D8的處理流程圖,圖6則是主機100經由資料傳輸裝置200對周邊裝置110寫入多個寫入資訊D5~D8的示意圖。
請同時參照圖4B及圖6,當圖4B的原始指令I5~I8為寫入指令時,隨後由主機100所傳送至資料傳輸裝置200的寫入資料D5~D8便分別對應原始指令I5~I8中記憶體區塊431~434的資料。換句話說,圖6的寫入資料D5便為圖4B中記憶體區塊431對應的資料、圖6的寫入資料D6便為圖4B中記憶體區塊432對應的資料,並依此類推。
若採用以往對於每個原始指令I5~I8依順序執行的情況下,後面寫入的資料將會覆蓋前面寫入的資料。換句話說,圖4B中會先將原始指令I5中記憶體區塊431內的資料先行依序寫入周邊裝置110,再寫入原始指令I6中記憶體區塊432內的資料,如此一來便會讓重疊的記憶體區塊R1與R2、R3與R4重複寫入兩次。因此,於本實施例中,圖2中的資料處理單元230便依序接收圖6的資料D5~D8,並將記憶體區塊中部分重疊且在先傳輸的資料(例如,圖4B的記憶體區塊R1及記體體區塊R3中的資料)加以捨棄,並保留記憶體區塊部分重疊且在後傳輸的資料(例如,圖4B的記憶體區塊R2及記體體區塊R4中的資料),以形成連續記憶體區塊440所對應的整合寫入資料DW2(圖6),並同時將整合寫入資料DW2即時傳送至週邊裝置110。藉此,便可將這些資料D5~D8整合為同一個整合寫入資料DW2,以符合本發明實施例的精神。
藉此,請同時參照圖4B、圖5及圖6。於步驟S510中,圖2的指令整合單元220在處理圖4B的原始指令I5~I8時,將會記錄在先記憶體區塊與在後記憶體區塊中部分重疊的一重疊起始位址。另一方面,若是在先記憶體區塊與在後記憶體區塊並沒有部分重疊但有相互連接,則記錄在後記憶體區塊中的起始位址,藉以作為上述的重疊起始位址。例如,於圖4B中,指令整合單元220(圖2)會依序記錄在先記憶體區塊431與在後記憶體區塊432之間重疊的記憶體區塊R1與R2的重疊起始位址X0(也就是圖4B所示的『100』)、記錄在先記憶體區塊432與在後記憶體區塊433之間重疊的記憶體區塊R3與R3的重疊起始位址X1(也就是『300』),以及記錄在先記憶體區塊433與在後記憶體區塊434的重疊起始位址X2(也就是在後記憶體區塊404中的起始位址『500』)。於本實施例中,指令整合單元220所記憶的重疊起始位址便原始指令I5~I8的順序為(X0『100』,X1『300』,X2『500』)。
於步驟S520中,圖2的資料處理單元230便會依序從主機110接收這些記憶體區塊431~434對應的資料D5~D8(圖6)。再者,於步驟S530中,資料處理單元230從指令整合單元220中讀取每個在先記憶體區塊對應的重疊起始位址,並依序整合在先記憶體區塊中起始位址至此在先記憶體區塊中重疊起始位址的資料,並加上在後記憶體區塊中的資料,如此往復進行並丟棄在先傳輸且重疊的資料,以形成整合寫入資料DW2(圖6)。於本實施例中,資料處理單元230(圖2)依序整合圖4B的記憶體區塊431中起始位址『0』至重疊起始位址X0『100』對應的資料、記憶體區塊432中起始位址『100』至重疊起始位址X1『300』對應的資料、記憶體區塊433中起始位址『300』至重疊起始位址X2『500』的資料,並加上最後一個記憶體區塊434對應的資料(也就是圖6的資料D8),便可組成圖6的整合寫入資料DW2。然後,於步驟S540中,資料處理單元230將整合寫入資料DW2傳送至週邊裝置110。
在此特別說明的是,為了即時將圖6的資料D5~D8進行整合,並將處理後的整合寫入資料DW2迅速地傳送至週邊裝置110,圖2中的資料處理單元230可以利用上述方式來將不需要重複寫入的資料進行捨棄,並即時進行整合寫入資料DW2的傳送。因此,本實施例可以不需要記憶模組240來對整合寫入資料DW2加以暫存。
另一方面,在此以圖7與圖8作為當原始指令I5~I8(圖4B)為讀取指令時的相關舉例。圖7是根據本發明一實施例說明當原始指令I5~I8為讀取指令時,對於讀取資料D5~D8的處理流程圖,圖8則是主機100經由資料傳輸裝置200從周邊裝置110讀取其讀取資料D5~D8的示意圖。
請同時參照圖4B及圖8,當原始指令I5~I8為讀取指令的時候,資料傳輸裝置200產生並傳輸整合指令IR2至周邊裝置110,周邊裝置110接收並處理此整合指令IR2,然後傳送圖8中繪示的整合讀取資料DR2到資料傳輸裝置200。因此,資料傳輸裝置200中的資料處理單元230(圖2)從周邊裝置110接收整合讀取資料DR2(圖8),並依據此整合讀取資料DR2以分別形成原始指令I5~I8對應的多個讀取資料D5~D8。由圖4B可知,由於整合讀取資料DR2(圖8)為整合指令IR2(圖4B)對應之記憶體區塊440的資料,因此在依據整合讀取資料DR2分別形成記憶體區塊431~434對應的資料D5~D8時,這些讀取資料D5~D8有部分可能會有重疊。因此,圖2的資料處理單元230必須分別重新傳送這些部份重疊之記憶體區塊(例如,重疊的記憶體區塊R1與R2、R3與R4)對應的資料,以使讀取資料D5~D8完整。這些部份重疊之記憶體區塊對應的資料便需要透過資料處理單元230以及記憶模組240之間的配合,才能夠進行暫存。
藉此,請同時參照圖4B、圖7及圖8。於步驟S710中,圖2的指令整合單元220在處理圖4B的原始指令I5~I8時,將會記錄在先記憶體區塊與在後記憶體區塊中重疊的一重疊起始位址,若是在先記憶體區塊與在後記憶體區塊並沒有重疊但有相互連接,則記錄在後記憶體區塊中的起始位址。例如,圖2中指令整合單元220所記憶的重疊起始位址依照原始指令I5~I8的順序為(X0『100』,X1『300』,X2『500』)。此處的制動方式於圖5的步驟S510相似,在此不再舉例。
於步驟S720中,圖2的資料處理單元230從周邊裝置110依序接收對應整合記憶體區塊440(圖4B)的整合讀取資料DR2(圖8)。再者,於步驟S730中,資料處理單元230從指令整合單元220中讀取每個在先記憶體區塊對應的重疊起始位址,並暫存上述重疊起始位址至在先記憶體區塊之結束位址的一重疊資料。例如,資料處理單元230讀取在先記憶體區塊431對應的重疊起始位址X0『100』,並將重疊起始位址X0『100』至在先記憶體區塊431之結束位址『200』的重疊資料暫存於記憶模組240中。換句話說,記憶模組240用以暫存上述記憶體區塊中部分重疊(例如,重疊的記憶體區塊R1或R2)的資料。
於步驟S740中,資料處理單元230整合上述暫存的重疊資料、以及在先記憶體區塊的結束位址至在後記憶體區塊中之結束位址的資料,以形成一在後記憶體區塊所對應的原始讀取資料。例如,當資料處理單元230在處理在先記憶體區塊431(圖4B)對應的讀取資料D5(圖8)時,可直接將整合讀取資料DR2中在先記憶體區塊431所對應的全部資料直接放入讀取資料D5即可。此外,當資料處理單元230在處理在後記憶體區塊432(圖4B)對應的讀取資料D6(圖8)時,則是將步驟S730中暫存的重疊資料(也就是重疊之記憶體區塊R1或R2的資料)、以及在先記憶體區塊431的結束位址『200』至在後記憶體區塊432中之結束位址『400』對應之整合讀取資料DR2的部份資料,兩者加以整合,便可形成在後記憶體區塊432(圖4B)及原始指令I6對應的讀取資料D6。藉此,應用本實施例者應可透過上述作法的教示而類推至讀取資料D7、D8的形成,在此不再贅述。
有鑒於此,圖2中的記憶模組240可以利用隨機存取記憶體(Random-Access Memory;RAM)以及直接記憶體存取(Direct Memory Access;DMA)控制器來實現。於部分實施例中,圖2中資料傳輸裝置200及其各個構件也可由數位積體電路來建構而成。
綜上所述,本發明實施例利用位於主機與周邊裝置之間的資料傳輸裝置,其將主機所發出的多個原始指令進行分析,並判斷相同種類的原始指令中所標識的記憶體區塊是否可以整合為同一個連續的記憶體區塊。如果這些原始指令中記憶體區塊兩兩部分重疊或是相互連接,使其得以整合為同一個記憶體區塊時,便藉由演算法來整合這些原始指令為一整合指令,並對相應的讀取資料或是寫入資料進行處理。藉此,便可減少周邊裝置所需處理的指令數量,有效地加快周邊裝置的處理時效。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...主機
110...周邊裝置
200...資料傳輸裝置
210...指令暫存器
220...指令整合單元
230...資料處理單元
240...記憶模組
I1~I5...原始指令
IR1~IR2...整合指令
411~414、420、431~434、440、R1~R4...記憶體區塊
D5~D8‧‧‧資料
DW2‧‧‧整合寫入資料
DR2‧‧‧整合讀取資料
X0~X2‧‧‧重疊起始位址
S310~S740‧‧‧步驟
圖1是主機與周邊裝置的示意圖。
圖2是根據本發明一實施例說明之資料傳輸裝置的方塊圖。
圖3是根據本發明一實施例說明多個指令的整合方法的流程圖。
圖4A及圖4B繪示多個原始指令及整合指令的記憶體區塊的示意圖。
圖5是根據本發明一實施例說明當原始指令為寫入指令時,對於寫入資料的處理流程圖。
圖6是主機經由資料傳輸裝置對周邊裝置寫入多個寫入資訊的示意圖。
圖7是根據本發明一實施例說明當原始指令為讀取指令時,對於讀取資料的處理流程圖。
圖8是主機經由資料傳輸裝置從周邊裝置讀取其讀取資料的示意圖。
100...主機
110...周邊裝置
200...資料傳輸裝置
210...指令暫存器
220...指令整合單元
230...資料處理單元
240...記憶模組

Claims (11)

  1. 一種資料傳輸裝置,包括:一指令暫存器,接收並暫存多個原始指令,其中該些原始指令分別對應多個記憶體區塊;以及一指令整合單元,耦接至該指令暫存器,當判斷該些原始指令的該些記憶體區塊為一連續記憶體區塊時,整合該些原始指令為一整合指令;其中該連續記憶體區塊係為該些記憶體區塊部分重疊。
  2. 如申請專利範圍第1項所述之資料傳輸裝置,其中該些原始指令由一主機產生,且該指令整合單元傳送該整合指令至一周邊裝置。
  3. 如申請專利範圍第1項所述之資料傳輸裝置,當該些原始指令為多個寫入指令時,該資料傳輸裝置更包括:一資料處理單元,接收該些記憶體區塊對應的資料,並捨棄該些記憶體區塊部分重疊且在先傳輸的資料,保留該些記憶體區塊部分重疊且在後傳輸的資料,以形成該連續記憶體區塊對應的一整合寫入資料。
  4. 如申請專利範圍第3項所述之資料傳輸裝置,其中該資料處理單元記錄一在先記憶體區塊與一在後記憶體區塊中重疊的一重疊起始位址,且該資料處理單元整合該在先記憶體區塊中一起始位址至該重疊起始位址的資料,並加上該在後記憶體區塊的資料,以形成該整合寫入資料。
  5. 如申請專利範圍第1項所述之資料傳輸裝置,當該些原始指令為多個讀取指令時,該資料傳輸裝置更包括:一資料處理單元,接收一整合讀取資料,根據該整合讀取資料分別形成該些原始指令對應的多個原始讀取資料,並在該些原始讀取資料中分別重新傳送該些記憶體區塊部分重疊的資料;以及一記憶模組,耦接至該資料處理單元,暫存該些記憶體區塊部分重疊的資料。
  6. 如申請專利範圍第5項所述之資料傳輸裝置,其中該資料處理單元記錄一在先記憶體區塊與一在後記憶體區塊中重疊的一重疊起始位址,且該資料處理單元暫存該重疊起始位址至該在先記憶體區塊之結束位址的一重疊資料,並整合該重疊資料以及該在先記憶體區塊的結束位址至該在後記憶體區塊中之結束位址的資料,以形成一在後原始讀取資料。
  7. 一種多個指令的整合方法,包括:從一主機接收並暫存多個原始指令,其中該些原始指令分別對應多個記憶體區塊;判斷該些原始指令的該些記憶體區塊是否部分重疊,以形成一連續記憶體區塊;當判斷該些記憶體區塊為該連續記憶體區塊時,整合該些原始指令為一整合指令;以及傳送該整合指令至一周邊裝置。
  8. 如申請專利範圍第7項所述之整合方法,當該些原始指令為多個寫入指令時,更包括下列步驟:從該主機接收該些記憶體區塊對應的資料;捨棄該些記憶體區塊部分重疊且在先傳輸的資料,保留該些記憶體區塊部分重疊且在後傳輸的資料,以形成該連續記憶體區塊對應的一整合寫入資料;以及傳送該整合資料至該周邊裝置。
  9. 如申請專利範圍第8項所述之整合方法,形成該連續記憶體區塊對應的該整合寫入資料更包括下列步驟:記錄一在先記憶體區塊與一在後記憶體區塊中重疊的一重疊起始位址;以及整合該在先記憶體區塊中一起始位址至該重疊起始位址的資料,並加上該在後記憶體區塊的資料,以形成該整合寫入資料。
  10. 如申請專利範圍第7項所述之整合方法,當該些原始指令為多個讀取指令時,更包括下列步驟:從該周邊裝置接收一整合讀取資料;以及根據該整合讀取資料分別形成該些原始指令對應的多個原始讀取資料,並在該些原始讀取資料中分別重新傳送該些記憶體區塊部分重疊的資料。
  11. 如申請專利範圍第10項所述之整合方法,分別形成該些原始指令對應的多個原始讀取資料更包括下列步驟: 記錄一在先記憶體區塊與一在後記憶體區塊中重疊的一重疊起始位址;暫存該重疊起始位址至該在先記憶體區塊之結束位址的一重疊資料;整合該重疊資料以及該在先記憶體區塊的結束位址至該在後記憶體區塊中之結束位址的資料,以形成一在後原始讀取資料;以及傳送該在後原始讀取資料至該主機。
TW100142254A 2011-11-18 2011-11-18 資料傳輸裝置及多個指令的整合方法 TWI447646B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW100142254A TWI447646B (zh) 2011-11-18 2011-11-18 資料傳輸裝置及多個指令的整合方法
US13/662,566 US8843663B2 (en) 2011-11-18 2012-10-29 Data transmission device and method for merging multiple commands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100142254A TWI447646B (zh) 2011-11-18 2011-11-18 資料傳輸裝置及多個指令的整合方法

Publications (2)

Publication Number Publication Date
TW201322124A TW201322124A (zh) 2013-06-01
TWI447646B true TWI447646B (zh) 2014-08-01

Family

ID=48428041

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100142254A TWI447646B (zh) 2011-11-18 2011-11-18 資料傳輸裝置及多個指令的整合方法

Country Status (2)

Country Link
US (1) US8843663B2 (zh)
TW (1) TWI447646B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI656481B (zh) * 2014-12-17 2019-04-11 美商輝達公司 關於序列平行化消耗的方法、電腦可讀取媒體和系統

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5658336B1 (ja) * 2013-09-04 2015-01-21 Necプラットフォームズ株式会社 ストアマージ処理装置、ストアマージ処理システム、ストアマージ処理方法、及び、ストアマージ処理プログラム
TWI553476B (zh) 2015-03-05 2016-10-11 光寶電子(廣州)有限公司 區域描述元管理方法及其電子裝置
EP3447646A4 (en) * 2016-04-21 2019-04-24 Fujitsu Frontech Limited WRITING CONTROL PROGRAM, WRITING CONTROL DEVICE AND WRITING CONTROL METHOD
US10684955B2 (en) 2017-04-21 2020-06-16 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations
US10686910B2 (en) 2018-02-02 2020-06-16 Servicenow, Inc. Distributed queueing in a remote network management architecture
US10956315B2 (en) 2018-07-24 2021-03-23 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access
KR20210115576A (ko) 2020-03-13 2021-09-27 에스케이하이닉스 주식회사 호스트 및 메모리 시스템을 포함하는 전자 시스템
KR20220067795A (ko) * 2020-11-18 2022-05-25 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
CN112711218B (zh) * 2020-12-08 2022-03-15 杭州电子科技大学上虞科学与工程研究院有限公司 一种工业设备数据采集的方法
US11593001B1 (en) * 2021-08-02 2023-02-28 Nvidia Corporation Using per memory bank load caches for reducing power use in a system on a chip
US11640264B2 (en) * 2021-08-30 2023-05-02 Western Digital Technologies, Inc. Parallel commands overlap detection based on queue-depth
CN117743196A (zh) * 2022-09-13 2024-03-22 创鑫智慧股份有限公司 内存查找装置及内存查找方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193774A1 (en) * 2001-07-27 2004-09-30 Kazuya Iwata Flash memory apparatus and method for merging data stored in the same
CN101196850A (zh) * 2007-12-28 2008-06-11 祥硕科技股份有限公司 数据存取整合方法及其系统
US20090222644A1 (en) * 2006-09-27 2009-09-03 International Business Machines Corporation Merge Operations of Data Arrays Based on SIMD Instructions
TW200941215A (en) * 2008-03-24 2009-10-01 Phison Electronics Corp Management method, management apparatus and controller for memory data access

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802076B2 (en) 2004-06-24 2010-09-21 Intel Corporation Method and apparatus to vectorize multiple input instructions
US7237094B2 (en) 2004-10-14 2007-06-26 International Business Machines Corporation Instruction group formation and mechanism for SMT dispatch
CN100524266C (zh) * 2005-07-11 2009-08-05 辉达公司 在总线上以包的形式传输数据传输请求的方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193774A1 (en) * 2001-07-27 2004-09-30 Kazuya Iwata Flash memory apparatus and method for merging data stored in the same
US20090222644A1 (en) * 2006-09-27 2009-09-03 International Business Machines Corporation Merge Operations of Data Arrays Based on SIMD Instructions
CN101196850A (zh) * 2007-12-28 2008-06-11 祥硕科技股份有限公司 数据存取整合方法及其系统
TW200941215A (en) * 2008-03-24 2009-10-01 Phison Electronics Corp Management method, management apparatus and controller for memory data access

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI656481B (zh) * 2014-12-17 2019-04-11 美商輝達公司 關於序列平行化消耗的方法、電腦可讀取媒體和系統

Also Published As

Publication number Publication date
US20130132612A1 (en) 2013-05-23
TW201322124A (zh) 2013-06-01
US8843663B2 (en) 2014-09-23

Similar Documents

Publication Publication Date Title
TWI447646B (zh) 資料傳輸裝置及多個指令的整合方法
TWI628542B (zh) 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置
KR101932920B1 (ko) 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법
US20070088867A1 (en) Memory controller and data processing system with the same
US20060080489A1 (en) Bus bridge and data transfer method
KR101986355B1 (ko) 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
JP2009540431A5 (zh)
US8996794B2 (en) Flash memory controller
TWI512609B (zh) 讀取命令排程方法以及使用該方法的裝置
JP2013239099A5 (zh)
US20130346686A1 (en) Memory access alignment in a double data rate ('ddr') system
TWI612473B (zh) 垃圾回收方法以及使用該方法的裝置
TWI498743B (zh) 資料儲存系統以及其管理方法
TWI439925B (zh) 內嵌式系統及其執行緒與緩衝區管理方法
TWI645331B (zh) 固態硬碟存取方法以及使用該方法的裝置
JP2016186828A5 (ja) 記憶装置および記憶制御方法
JP2012242961A5 (zh)
TWI570557B (zh) 內部資料搬移方法以及使用該方法的裝置
TWI626540B (zh) 一般及垃圾回收的資料存取方法以及使用該方法的裝置
JP4097883B2 (ja) データ転送装置および方法
TW201810058A (zh) 周邊介面電路與周邊記憶體系統
TWI534619B (zh) 動態邏輯分段方法以及使用該方法的裝置
JP2012063875A (ja) データ記憶装置、コマンド制御装置及び電子機器
JP2007011659A (ja) インターフェース装置、ディスクドライブ及びインターフェース制御方法
TWI822516B (zh) 執行主機寫入命令的方法及電腦程式產品及裝置