區域描述元管理方法及其電子裝置的制造方法
【專利摘要】本發明提出一種區域描述元管理方法以及其電子裝置。區域描述元管理方法適用于電子裝置的裝置控制器。管理方法包括下列步驟。由區域描述元列表提取多個區域描述元項目,并且每一區域描述元項目包括區塊起始地址以及區塊長度以對應描述存儲器模塊的一個存儲器區塊。依據多個區域描述元項目的區塊起始地址以及區塊長度,調整部分的區域描述元項目為至少一個目前區域描述元項目。基于前述的目前區域描述元項目,產生目前區域描述元列表。
【專利說明】
區域描述元管理方法及其電子裝置
技術領域
[0001]本發明是有關于一種管理方法及其電子裝置,且特別是關于一種區域描述元(Reg1n Descriptor)的管理方法及其電子裝置。
【背景技術】
[0002]于已知技術中,當任一儲存裝置或任一外圍裝置需要與主機系統的系統存儲器作資料傳輸時,可以例如是利用直接存儲器訪問(Direct Memory Access)的形式,在不增加主機系統的負載下進行資料的傳送。
[0003]一般而言,系統存儲器上的存儲器區塊可以通過區域描述元(Reg1nDescriptor)所定義。換言之,即是通過區域描述元定義每一資料片段(Data Segment)在系統存儲器上的位置。詳細來說,每一區域描述元項目(Reg1n Descriptor Entry)分別記錄了存儲器區塊的起始地址以及長度。因此,儲存裝置可以通過提取(fetch)區域描述元項目來進一步存取特定的存儲器區塊,以達到資料傳輸的目的。
[0004]已知技術之中,區域描述元項目是由主機系統對應系統存儲器內的資料片段進行分配,但主機系統基于效能上的考慮或者是為了對應不同儲存裝置的規格,經常使得區域描述元項目的配置是過于復雜或脆弱,導致儲存裝置與系統存儲器間的資料傳輸在傳輸速度以及效率的表現上是較差的。
【發明內容】
[0005]本發明提供一種區域描述元管理方法及其電子裝置,通過調整、合并、分割部分的區域描述元項目,使得儲存裝置以及系統存儲器間的資料傳輸速度能相對的提升。
[0006]本發明的一實施例提出一種區域描述元管理方法,適用于電子裝置的裝置控制器。前述管理方法包括下列步驟。由區域描述元列表提取多個區域描述元項目,其中每一區域描述元項目包括區塊起始地址以及區塊長度以對應描述存儲器模塊的存儲器區塊。依據多個區域描述元項目的區塊起始地址以及區塊長度,調整部分的區域描述元項目為至少一個目前區域描述元項目。基于目前區域描述元項目,產生目前區域描述元列表。
[0007]本發明的一實施例提出一種電子裝置,包括主機系統、儲存裝置以及裝置控制器。主機系統具有存儲器模塊,而裝置控制器耦接于主機系統以及儲存裝置之間。裝置控制器由主機系統的區域描述元列表提取多個區域描述元項目,其中每一區域描述元項目包括區塊起始地址以及區塊長度以對應描述存儲器模塊的存儲器區塊。裝置控制器依據前述區域描述元項目的區塊起始地址以及區塊長度,調整部分的區域描述元項目為至少一目前區域描述元項目。裝置控制器更基于目前區域描述元項目,產生目前區域描述元列表。
[0008]基于上述,本發明實施例所提供的區域描述元管理方法及其電子裝置,在進行資料傳輸時,首先對主機系統所提供的多個區域描述元項目進行調整,以產生至少一個目前區域描述元項目。所產生的目前區域描述元項目以較佳的形式描述存儲器模塊中的存儲器區塊,以提升儲存裝置與存儲器模塊之間的資料傳輸速度與效率。
[0009]為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合所附附圖作詳細說明如下。
【附圖說明】
[0010]下面的所附附圖是本發明的說明書的一部分,繪示了本發明的示例實施例,所附附圖與說明書的描述一起說明本發明的原理,其中:
[0011]圖1是依照本發明一實施例所繪示的電子裝置的方塊圖。
[0012]圖2是依照本發明一實施例所繪示的區域描述元管理方法的流程圖。
[0013]圖3是依照本發明一實施例所繪示的調整區域描述元項目為目前區域描述元項目的示意圖。
[0014]圖4A是依照本發明一實施例所繪示的目前區域描述元列表的示意圖。
[0015]圖4B是依照本發明一實施例所繪示的目前區域描述元項目的示意圖。
【具體實施方式】
[0016]現將詳細參考本發明的示范性實施例,在附圖中說明所述示范性實施例的實例。另外,凡可能之處,在附圖及實施方式中使用相同標號的元件/構件代表相同或類似部分。
[0017]本發明提供一種區域描述元管理方法及其電子裝置,其中區域描述元管理方法適用于耦接在儲存裝置以及主機系統之間的控制器或系統芯片(System On Chip,S0C)。圖1是依照本發明一實施例所繪示的電子裝置的方塊圖。電子裝置例如是桌面計算機、筆記本電腦、平板計算機或智能型手機等,但并不以前述為限。參照圖1,電子裝置100包括主機系統120、儲存裝置140以及裝置控制器160。裝置控制器160耦接于主機系統120以及儲存裝置140之間。主機系統120例如是包括處理器單元(未繪示)以及存儲器模塊122。處理器單元例如是中央處理單元(Central Processing Unit, CPU)或者是可程序化的一般用途或特殊用途的微處理器(Microprocessor),用于執行各項程序或軟件以提供不同的功能。存儲器模塊122為主機系統120的主存儲器(Main Memory),其例如是以靜態隨機存取存儲器(Static Random Access Memory, SRAM)、動態隨機存取存儲器(Dynamic RandomAccess Memory,DRAM)或同步動態隨機存取存儲器(Synchronous Dynamic Random AccessMemory, SDRAM)來實現。
[0018]儲存裝置140 則例如是硬盤(Hard Disk Drive,HDD)、光驅(Optical DiskDrive, ODD)或固態硬盤(Solid State Drive,SSD),其具有并列先進技術配置(ParallelAdvanced Technology Attachment, PATA)接口、串行先進技術配置(Serial AdvancedTechnology Attachment, SATA)接口、快捷外設互聯標準(Peripheral ComponentInterconnect Express, PCIE)、串行連接 SCSI 接口 (Serial Attached SCSI,SAS)。裝置控制器160例如是嵌入式控制器(embedded controller)或控制芯片(control chip) ο在本發明的一實施例中,裝置控制器160包括符合進階主機控制總線接口(Advanced HostController Interface,AHCI)規范的主機總線配接器(Host Bus Adaptor,HBA),以實現主機系統120與儲存裝置140間的資料傳輸,但本發明并不限于此。更詳細而言,本發明所提出的區域描述元管理方法,同樣適用于不同規范下的裝置控制器160。然而,為了更清楚地表達本發明的區域描述元管理方法,以下將搭配符合AHCI規范的裝置控制器160以及電子裝置100來說明前述區域描述元管理方法。
[0019]圖2是依照本發明一實施例所繪示的區域描述元管理方法的流程圖。請參照圖1以及圖2,區域描述元管理方法包括下列步驟。裝置控制器160由區域描述元列表提取多個區域描述元項目(步驟S220),其中每一區域描述元項目包括區塊起始地址以及區塊長度以對應描述存儲器模塊122的一個存儲器區塊。接著,裝置控制器160依據前述多個區域描述元項目的區塊起始地址以及區塊長度,調整部分的區域描述元項目為至少一個目前區域描述元項目(步驟S240)。最后,裝置控制器160基于目前區域描述元項目,產生目前區域描述元列表(步驟S260)。
[0020]于本發明的一實施例中,主機系統120在AHCI規范下,是通過一個在存儲器模塊122之中的指令列表(Co_and List)來對裝置控制器160下達指令。主機系統120將指令放置于指令列表中的空隙(Slot)之中,并且通知裝置控制器160。裝置控制器160收到通知后,由存儲器模塊122提取指令,并且依據指令執行相關程序,例如是資料傳輸。值得注意的是,在指令中,通常是以區域描述元(即AHCI規范下的實體區域描述元(PhysicalReg1n Descriptor,PRD))描述參與資料傳輸的存儲器模塊122的存儲器區塊。區域描述元例如是包括存儲器區塊122的區塊起始地址以及區塊長度(即AHCI規范下的資料基地址(Data Base Address,DBA)以及資料字節計數(Data Byte Count, DBC)),其對應地指示了資料在存儲器模塊122上的儲存位置或傳輸位置。更詳細而言,指令包括一個區域描述元列表(即AHCI規范下的實體區域描述元列表(Physical Reg1n Descriptor Table,PRDT)),而區域描述元列表還包括多個區域描述元項目(即AHCI規范下的實體區域描述元項目(Physical Reg1n Descriptor Entry))。每一個區域描述元項目對應記載了一個存儲器區塊的位置信息。
[0021]裝置控制器160例如是采用分散收集機制(Scatter/Gather Mechanism)來執行資料傳輸。具體而言,裝置控制器160是預先取得相關于資料傳輸的多個區域描述元后,在對應前述的區域描述元所描述的存儲器模塊120的多個存儲器區塊來執行資料傳輸。一般而言,裝置控制器160于每個區域描述元所指示的區塊長度為最適區塊長度(例如是4096字節(bytes)或者是8192字節)時,在資料傳輸的表現是較佳的。然而,由主機系統120所配置的區域描述元項目通常是較為雜散,并且每個區域描述元項目并不是依照儲存裝置140的最適區塊長度進行配置,使得裝置控制器160在資料傳輸的表現上無法達到最佳的效果,而通常需要花費更多的時間并且降低整體的效率。
[0022]在本發明的一實施例中,裝置控制器160由區域描述元列表提取多個區域描述元項目后,接著是依據區域描述元項目的區塊起始地址以及區塊長度,選擇性地調整部分的區域敘述元項目。圖3是依照本發明一實施例所繪示的調整區域描述元項目為目前區域描述元項目的示意圖。如圖3所示,由區域描述元列表PRDT中的區域描述元項目PRD0、PRD1的資料基地址(區塊起始地址)DBA(0xlFD040000h、0xlFD040c00h,十六進制)以及資料字節計數(區塊長度)DBC(3072字節、1024字節)可知,區域描述元項目PRD0、PRDl所描述的存儲器區塊是連續地排列于存儲器模塊122。基于前述,為了使得裝置控制器160能較佳地進行資料傳輸,裝置控制器160首先調整區域描述元項目PRD0、PRDl為目前區域描述元項目PRD0’。由圖3可知,目前區域描述元項目PRD0’所描述的存儲器區塊為區域描述元項目PRD0、PRDl所分別描述的兩個存儲器區塊的合并。此外,目前區域描述元項目PRD0’指示的目前區塊長度DBC’為4096字節,符合資料傳輸中的最適區塊長度,而目前區塊起始地址DBA’則是區域描述元項目PRDO的區塊起始地址DBA。
[0023]基于前述的目前區域描述元項目PRD0’,裝置控制器160產生目前區域描述元列表PRDT’。值得注意的是,其它不需要進行調整的區域描述元項目PRD2?PRDm,對應地保留并調整為目前區域描述元項目PRD1’ PRDn’,并且同樣放置于目前區域描述元列表PRDT’之中。在本實施例中,前述n、m為大于2的正整數,并且η等于m_l。
[0024]圖3所示的實施例僅為調整區域描述元項目為目前區域描述元項目的多個實施例之一,但本申請并不以此為限。以下將更詳細地說明調整區域描述元項目為目前區域描述元項目所需要注意的細節。
[0025]圖4A是依照本發明一實施例所繪示的目前區域描述元列表的示意圖。圖4B是依照本發明一實施例所繪示的目前區域描述元項目的示意圖。參照圖1-圖4A、圖4B,如同前述,可以被調整為目前區域描述元項目的多個區域描述元項目,其所描述的存儲器區塊例如是連續地排列于存儲器模塊122。以圖4A、圖4B的存儲器模塊122為例,存儲器區塊41-44分別對應儲存第一資料-第四資料,并且存儲器區塊41-43是連續地排列于存儲器模塊122之中。此時,原先用于分別描述存儲器區塊41-43的區域描述元項目PRD41-PRD43,即可調整為目前區域描述元項目PRD41’-PRD43’,而用于描述存儲器區塊44的區域描述元項目PRD44則經保留并調整為PRD44’。
[0026]在進行調整的過程中,裝置控制器160利用多個固定區塊地址以及固定區塊長度,比對區域描述元項目PRD41-PRD43的區塊起始地址DBA以及區塊長度DBC,以產生目前區塊起始地址DBA’以及目前區塊長度DBC’。在本實施例中,固定區塊長度為前述最適區塊長度(在本實施例中以4096字節為例),而固定區塊地址則是在存儲器模塊122上,距離地址O為一或多個固定區塊長度的地址,例如是0、4096、8192等地址(以字節為單位,十進制)。裝置控制器160以固定區塊長度以及固定區塊地址來比對第一資料-第三資料所在的存儲器區塊41-43(區塊起始地址DBA以及區塊長度DBC),以取得多個目前區塊起始地址512、4096、8192以及多個目前區塊長度3584字節、4096字節、1024字節。最后,依據目前區塊起始地址DBA’以及目前區塊長度DBC’,取得目前區域描述元項目PRD41’ -PRD43’。
[0027]由前述可知,調整區域描述元項目PRD41-PRD43為目前區域描述元項目PRD41’ -PRD43’的過程中,主要是對區域描述元項目PRD41-PRD43所描述的存儲器區塊41-43(對應第一資料第三資料)進行合并與裁切,產生符合固定區塊長度以及固定區塊地址的目前區塊起始地址DBA’以及目前區塊長度DBC’。明顯地,目前區域描述元項目PRD41’ -PRD43’所指示目前區塊長度DBC’皆不大于固定區塊長度,即4096字節。
[0028]于本發明的一實施例中,裝置控制器160更依據目前區域描述元列表(例如是圖3所示的PRDT’或圖4A所示的PRDT’ 40),對目前區域描述元項目所指示的存儲器區塊,執行資料傳輸程序。裝置控制器160可以是由目前區域描述元項目所指示的存儲器區塊取得資料至儲存裝置140,或者是從儲存裝置140取得資料并儲存至目前區域描述元項目所指示的存儲器區塊。最后,對于所產生的目前區域描述元項目,裝置控制器160還可以寫入存儲器模塊122以更新存儲器模塊122存儲器的區域描述元列表PRDT。
[0029]綜上所述,本發明實施例所提供的區域描述元管理方法及其電子裝置,對主機系統所提供的多個區域描述元項目進行整并,以產生至少一個目前區域描述元項目。目前區域描述元項目以較佳的形式描述存儲器模塊中的存儲器區塊。基于前述的目前區域描述元項目,裝置控制器以較佳的速度與效率進行資料傳輸,以從目前區域描述元項目所描述的存儲器區塊中取得資料至儲存裝置,或者是將儲存裝置的資料傳輸至目前區域描述元項目所描述的存儲器區塊。
[0030]雖然本發明已以實施例詳述如上,然其并非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和范圍內,當可作些許的更動與潤飾,故本發明的保護范圍當視后附的權利要求范圍所界定的為準。
【主權項】
1.一種區域描述元管理方法,適用于一電子裝置的一裝置控制器,該管理方法包括: 由一區域描述元列表提取多個區域描述元項目,其中每一所述區域描述元項目包括一區塊起始地址以及一區塊長度以對應描述一存儲器模塊的一存儲器區塊; 依據所述區域描述元項目的所述區塊起始地址以及所述區塊長度,調整一部分的所述區域描述元項目為至少一目前區域描述元項目;以及 基于該至少一目前區域描述元項目,產生一目前區域描述元列表。2.如權利要求1所述的區域描述元管理方法,其中該部分的所述區域描述元項目所描述的所述存儲器區塊是連續地排列于該存儲器模塊。3.如權利要求1所述的區域描述元管理方法,其中調整該部分的所述區域描述元項目為該至少一目前區域描述元項目的步驟,還包括: 利用多個固定區塊地址以及一固定區塊長度,比對該部分的所述區域描述元項目的所述區塊起始地址以及所述區塊長度,以產生至少一目前區塊起始地址以及至少一目前區塊長度;以及 依據該至少一目前區塊起始地址以及該至少一目前區塊長度,取得該至少一目前區域描述元項目。4.如權利要求3所述的區域描述元管理方法,其中每一該目前區域描述元項目所包括的該目前區塊長度不大于該固定區塊長度。5.如權利要求1所述的區域描述元管理方法,還包括: 將該至少一目前區域描述元項目寫入該存儲器模塊。6.如權利要求1所述的區域描述元管理方法,還包括: 對該至少一目前區域描述元項目所指示的該至少一存儲器區塊,執行一資料傳輸程序。7.一種電子裝置,包括: 一主機系統,該主機系統具有一存儲器模塊; 一儲存裝置:以及 一裝置控制器,耦接于該主機系統以及該儲存裝置之間,該裝置控制器由該主機系統的一區域描述元列表提取多個區域描述元項目,其中每一所述區域描述元項目包括一區塊起始地址以及一區塊長度以對應描述該存儲器模塊的一存儲器區塊, 該裝置控制器依據所述區域描述元項目的所述區塊起始地址以及所述區塊長度,調整一部分的所述區域描述元項目為至少一目前區域描述元項目,并且該裝置控制器基于該至少一目前區域描述元項目,產生一目前區域描述元列表。8.如權利要求7所述的電子裝置,其中該部分的所述區域描述元項目所描述的所述存儲器區塊是連續地排列于該存儲器模塊。9.如權利要求7所述的電子裝置,其中該裝置控制器更利用多個固定區塊地址以及一固定區塊長度,比對該部分的所述區域描述元項目的所述區塊起始地址以及所述區塊長度,以產生至少一目前區塊起始地址以及至少一目前區塊長度, 該裝置控制器依據該至少一目前區塊起始地址以及該至少一目前區塊長度,取得該至少一目前區域描述元項目。10.如權利要求9所述的電子裝置,其中每一該目前區域描述元項目所包括的該目前區塊長度不大于該固定區塊長度。11.如權利要求7所述的電子裝置,其中該裝置控制器還將該至少一目前區域描述元項目寫入該存儲器模塊。12.如權利要求7所述的電子裝置,其中該裝置控制器由該至少一目前區域描述元項目所描述的該至少一存儲器區塊取得資料至該儲存裝置,或者是從該儲存裝置取得資料至該至少一目前區域描述元項目所描述的該至少一存儲器區塊。
【文檔編號】G06F13/28GK105988954SQ201510096782
【公開日】2016年10月5日
【申請日】2015年3月5日
【發明人】江偉凌, 李宜忠
【申請人】光寶科技股份有限公司