數據存取方法和利用相同方法的數據存取裝置的制造方法
【專利說明】數據存取方法和利用相同方法的數據存取裝置
[0001]【交叉參考相關引用】
[0002] 本申請要求2014年2月17日提交的序列號為61/940,695的美國申請的優先權, 上述申請參考并入本文。 【技術領域】
[0003] 本發明涉及數據存儲,且特別地,涉及數據存取方法和利用相同方法的數據存取 裝置。 【【背景技術】】
[0004]同步動態隨機存取存儲器(SynchronousDynamicRandomAccessMemroy,SDRAM) 是與計算機系統的系統總線同步的動態隨機存取存儲器(DRAM)。市場上有SDRAM的若干 類型或家族,包含低功率DDR(LPDDR)(即,移動DDR)和雙數據率同步動態隨機存取存儲器 (DDRSDRAM)。不同類型的SDRAM在某些方面不同于彼此(例如,速度、功耗和價格等)。
[0005] 在數據存取(例如,圖像存取或程序存取)中,數組通常分割為多個數據塊用于 數據存取。數據塊的數據大小通常不同。另外,每個數據塊可以以預定或順序或隨機順序 從SDRAM存取。在一些應用中,數據塊可以不僅存取一次而是很多次。在一些應用中,數據 塊可以由第一處理引擎以第一優選存取行為寫入,由第二處理引擎以第二優選存取行為讀 取。存取行為的示例是視頻編解碼和GPU處理的基于塊的存取。存取行為的示例是顯示處 理的光柵掃描。因此,需要一種從SDRAM存取數據的數據存取方法。 【
【發明內容】
】
[0006] 下文的實施例參考附圖給出詳細描述。
[0007] 描述一種數據存取方法的實施例,包含:獲取分成多個區域的數組;以及對于每 個區域,將表示區域的多個數據單元寫入存儲器裝置的片段,并記錄對應于區域的長度信 息和數據安排信息,其中在表示區域的數據單元上執行的突發存取的突發長度是根據長度 信息定義的。
[0008] 提供數據存取方法的另一實施例,包含:獲取分成多個區域的數組;以及對于多 個區域的每個,將表示區域的多個數據單元寫入存儲器裝置的片段,其中對于至少一個數 據單元的寫入處理可開始地址是基于對應數據單元的長度信息生成的。
[0009] 揭示一種在具有存儲器數據處理系統中存取數據的方法的另一實施例,包含根據 第一存儲器引腳、表示第一數組的多個區域的多個數據單元,通過存取在存儲器裝置上執 行存取操作;根據第二存儲器引腳,表示第二數組的多個區域的多個數據單元,通過存取在 存儲器裝置上執行存取操作;以及根據數據單元的長度信息執行存取操作。 【【附圖說明】】
[0010] 通過閱讀后續詳細描述和參考附圖的示例,可以更全面的理解本發明,其中: toon] 圖1是根據本發明的實施例的數據存取系統1的框圖;
[0012] 圖2是數據存取裝置存儲器布局示意圖;
[0013] 圖3A、3B和3C圖示根據本發明的若干實施例的數組的任何區域中的不同的數據 類型的布局;
[0014] 圖4A和4B顯示根據本發明的實施例的由2數據類型分割的圖像數組上的圖像對 象;
[0015] 圖5是根據本發明的實施例的數據存取方法5的存儲器布局示意圖;
[0016] 圖6A和6B是根據本發明的另一實施例的數據存取方法6的存儲器布局7K意圖;
[0017] 圖7A和7B是根據本發明的另一實施例的數據存取方法7A和7B的存儲器布局示 意圖;
[0018] 圖8A、8B和8C是根據本發明的另一實施例的數據存取方法8的存儲器布局示意 圖;
[0019] 圖9是根據本發明的實施例的圖示數據存取方法9的存儲器片段的存儲器布局示 意圖;
[0020] 圖10是根據本發明另一實施例的圖示數據存取方法10的存儲器片段的存儲器布 局不意圖;
[0021] 圖11是根據本發明另一實施例的圖示數據存取方法11的存儲器片段的存儲器布 局不意圖;
[0022] 圖12是根據本發明另一實施例的圖示數據存取方法12的存儲器片段的存儲器布 局不意圖;
[0023] 圖13是根據本發明的實施例的數據存取方法13的流程圖;
[0024] 圖14是根據本發明的實施例的地址生成方法14的流程圖;
[0025] 圖15是根據本發明的另一實施例的數據存取方法15的流程圖;
[0026] 圖16是根據本發明的實施例的數據存取裝置的寫入電路的地址生成電路16的框 圖;
[0027] 圖17A和17B是根據本發明的實施例的數據存取裝置的寫入電路的長度緩存17A 和17B的框圖;
[0028] 圖18是根據本發明的實施例的數據存取裝置的讀取電路的地址生成電路18的框 圖;
[0029] 圖19是根據本發明的實施例的數據存取裝置的讀取電路的長度緩存19的框圖;
[0030] 圖20A、20B和20C分別是一組未壓縮數據、壓縮數據和長度信息;
[0031] 圖21是根據本發明的實施例的圖示數據存取方法的存儲器布局示意圖21;以及
[0032] 圖22是根據本發明另一實施例的圖示數據存取方法的存儲器布局示意圖22。 【【具體實施方式】】
[0033] 下文的描述是實施本發明的最佳模式。此描述是為了說明本發明的一般原理,不 能被認為是限制。本發明的范圍最好參考所附的權利要求來確定。
[0034] 如本文所使用的,術語"芯片"還可被稱作操作于個人計算機、小型計算機(例如, 移動電話、MP3播放器以及手持游戲控制臺)、或移動計算機(例如,膝上計算機)、或嵌入 式計算機(例如,工廠控制器、機動車輛控制器和玩具)的集成電路。為了簡單和一致,我 們將在全文使用術語計算機。
[0035] 圖1根據本發明的實施例的數據存取系統1的框圖。數據存取系統1可以包含于 計算機、游戲系統、智能電話、平板電腦、電視系統、多媒體播放系統或交互式視頻系統。數 據存取系統1包含芯片10、相機傳感器12、顯示器裝置14(例如,液晶體顯示器(LCD))以 及芯片外存儲器16 (例如,硬盤驅動)。芯片10連接到相機傳感器12以處理圖像數據,連 接到顯示器裝置14以顯示視覺圖像,以及連接到芯片外存儲器16以存取外部數據。需意 識到圖1中的總線連接僅僅描述了一種可能的實現,并不打算用作限制本發明。
[0036] 在本實施例中,芯片10包含多個數據存取裝置,例如,中央處理單元(CPU) 100、視 頻編碼器102、視頻解碼器104、圖形處理單元(GPU) 106、圖像信號處理或(ISP) 110、顯示控 制器112以及數字信號處理器(DSP) 114。另外,芯片10包含芯片上存儲器108和管理芯片 外存儲器16的操作的芯片外存儲器控制器116。然而,其他電路和組件可以出現在芯片10 中。數據存取裝置可根據本申請揭示的數據存取方法存取數據到芯片上存儲器108和芯片 外存儲器16,或從芯片上存儲器108和芯片外存儲器16存取數據。
[0037] 如圖1所示,每個數據存取裝置包含數據的代理(例如,DA1000、DA1020、DA 1040、DA1060、DA1KKKDA1120和DA1140)用于提供直接存儲器存取(DMA)。在一些實 施例中,數據代理可以包含或可以不包含數據壓縮和/或解壓縮的功能。此外,每個數據 存取裝置包含地址生成電路(例如,AG10000、AG10200、AG10402、AG10602、AG11000、 AG11202和AG11402)用于根據數據存取行為生成地址數據。一些數據存取裝置包含長度 緩存(例如,IX10400、LC10600、LC11200和LC11400),其中長度緩存可以是緩存存儲器 或長度緩沖器。例如,顯示控制器112以非常常規和可預測的方式存取圖像數據,因此LC 11200可以是長度緩沖器。在另一示例中,視頻解碼器104和GPU106以非常規和非可預測 的方式存取圖像數據,因此,LC10400和LC10600可以是緩存存儲器。
[0038]CPU100控制芯片10中的所有組分的操作。芯片上存儲器108暫時存儲由CPU 100執行的部分操作系統(os)程序或應用軟件程序(在下文中被稱作應用)。此外,芯片 上存儲器108儲存由CPU100和/或芯片10中的其他組分要求的各種數據。芯片上存儲 器108和芯片外存儲器16可以是動態隨機存取存儲器(DRAM)、同步動態隨機存取存儲器 (SDRAM)、雙數據率(DDR)SDRAM(例如,DDR1、DDR2、DDR3、DDR4、低功率DDR(DDR))、其它類型 的SDRAM或同步圖形RAM(SGRAM)。
[0039] 在一些實施例中,每個數據存取裝置的每個讀取端口(未示出)和/或寫入端口 (未示出)包含數據代理。在數據通過量很低的其它實施例中,兩個或者更多的讀取端口 (未示出)和/或寫入端口(未示出)可共享相同的數據代理或部分數據代理。例如,數據 存取裝置的讀取端口和寫入端口可共享公共地址生成電路,但使用單獨的長度緩存。
[0040] 芯片上存儲器108和芯片外存儲器16的存取的數據可具有固定的長度或可變長 度。例如,為了減少傳送的數據帶寬,數據在寫入芯片外存儲器16之前被壓縮,導致其數據 長度可變。
[0041] 芯片外存儲器16的數據存取性能是由存取數據所要求的處理的數目、每個處理 的突發長度和芯片外存儲器16的存取的數據的存儲位置來確定。一般而言,數據存取性能 隨著一個突發轉移的總數據處理的數目降低而增加。突發長度應該是(2的次方),例如1、 2、4、8、16字,或其他預定長度的數據字。對于2數據字的突發長度,首先存取請求的字,緊 接著存取對齊的數據塊中的第二字。當轉移大量數據時,總處理的數目可通過增加突發長 度和允許單個處理以跨越(span)多于一個數據字來減小。而且,當突發轉移可以在單個處 理而不是兩個或者更多處理中完成時,數據存取性能也將增加。
[0042]另外,由于數據是由突發轉移來發送,且每個數據突發總是存取開始于多個突發 長度的連續字的突發長度的地址對齊的塊,當數據突發從芯片外存儲器16的地址對齊的 塊的開始處存取時,數據存取性能增加。例如,對于64字節的數據塊,如果數據突發的開始 地址是64字節對齊的,則數據處理將涉及整個64字節的塊,然而,如果數據突發的開始地 址不是64字節對齊的,則芯片外存儲器16將要求擴展的時間以提供請求的數據。結果,當 數據突發開始于對齊的塊時,存取性能增加。
[0043] 當寫入數據到芯片外存儲器16時,數據存取裝置可根據預定義的存儲器引腳安 排數據進入芯片外存儲器16且保持數據安排信息,這樣以后,數據可以根據預定義的存儲 器引腳和/或數據安排信息從芯片外存儲器16讀出,導致減小數量的總數據處理以及減少 的存取時間,由此增加存儲器利用率和數據存取性能。
[0044] 數據安排信息可指示被寫入到芯片外存儲器16的預定義的片段的數據的寫入順 序,或由數據采用的存儲器引腳,在能夠識別數據以后,允許數據存取裝置以隨機順序寫入 數據到芯片外存儲器16。芯片外存儲器16的存儲器引腳表示區域的數據的開始位置和寫 入方向,以及定義區域的數據在存儲器片段中將被寫入的區域,允許數據存取裝置以隨機 順序多次從預定義的存儲器片段存取數據,其中每個數據可具有不同的長度。由數據存取 裝置采用的使用數據安排信息用于從芯片外存儲器16存取數據的數據存取方法詳細描述 于圖5、6A、6B和15。由數據存取裝置采用的使用預定存儲器安排用于從芯片外存儲器16 外存取數據的數據存取方法詳細描述于圖7A、7B、8A、8B、8C、9、10、11、12、13、14和15。
[0045] 具體地,實施例中的數據存取方法尋址可以獲取并分到多個區域的數組,且對應 地,多個存儲器片段分配在芯片外存儲器16,每個存儲器片段分配到對應區域。對于每個區 域,數據存取裝置可將表示區域的數據單元寫入到芯片外存儲器16的對應片段,且記錄對 應于區域的長度信息和數據安排信息。在表示區域的數據上執行的突發