TWI475383B - Memory control device - Google Patents

Memory control device Download PDF

Info

Publication number
TWI475383B
TWI475383B TW102101434A TW102101434A TWI475383B TW I475383 B TWI475383 B TW I475383B TW 102101434 A TW102101434 A TW 102101434A TW 102101434 A TW102101434 A TW 102101434A TW I475383 B TWI475383 B TW I475383B
Authority
TW
Taiwan
Prior art keywords
data
address
memory
read
command
Prior art date
Application number
TW102101434A
Other languages
English (en)
Other versions
TW201418980A (zh
Inventor
Hiroshi Atobe
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of TW201418980A publication Critical patent/TW201418980A/zh
Application granted granted Critical
Publication of TWI475383B publication Critical patent/TWI475383B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

記憶控制裝置
本發明係關於處理要求來自記憶體的酬載資料的讀出的讀取請求的技術。
為了提高記憶體的可靠性,有在酬載資料附加ECC(Error Correcting Code,錯誤校正碼)或同位元的情形。
通常係在所附加的ECC,以同位元專用以寬度方向追加記憶體元件(水平ECC、水平奇偶校驗)。
考慮使用例如特殊的×9位元構成的記憶體,而非為×8位元構成的記憶體。
但是,記憶體元件的追加或特殊記憶體的採用大部分在成本上並不利,或在零件的取得性方面有困難。
以其解決對策之一而言,有採用將ECC朝向深度方向而非為寬度方向來保存ECC,藉此不需要在寬度方向增加記憶體的垂直ECC、垂直奇偶校驗的情形(以下記載為垂直ECC)。
例如考慮在第1圖所示之記憶體構成,藉由垂直ECC方式附加ECC的情形。
在第1圖中,在1個位址,儲存有4個各個的資料寬度為1位元組的酬載資料。
在第1圖的記憶體構成中,若藉由垂直ECC,每4位元組的 酬載資料即附加1位元組的ECC時,即形成為第2圖所示之資料配置。
若對採用垂直ECC的記憶體進行位址呈連續的讀取時,由記憶體所讀取的第2個資料(第2資料)係亦利用在若包含ECC時,後續位址呈連續的讀取中。
若在讀取請求的要求源,以第1圖的資料配置管理酬載資料,在記憶體中,係以第2圖的資料配置管理酬載資料及ECC時,若有第1圖的0000h位址的資料(D0~D3)的讀取請求,即進行以下的資料讀取。
由記憶體係以第2圖的0000h位址的資料(D0~D3)、0004h位址的資料(ECC0~D6)的順序進行讀出,對所被讀出的D0~D3,使用ECC0來進行錯誤訂正,且錯誤訂正後的D0~D3被輸出至要求源。
此外,若有第1圖的0004h位址的資料(D4~D7)的讀取請求時,係進行以下的資料讀取。
由記憶體係以第2圖的0004h位址的資料(ECC0~D6)、0008h位址的資料(D7~D9)的順序進行讀出,對所被讀出的D4~D7,使用ECC1來進行錯誤訂正,且錯誤訂正後的D4~D7被輸出至要求源。
如上所示,讀取對象的位址呈連續時,必須由記憶體讀取2次第2資料(在上述之例中為第2圖的0004h位址的資料)。
但是,在記憶體存取係有多數耗用(overhead)的情形(例如在DRAM(Dynamic Random Access Memory,動態隨機存取 記憶體)中,發生若將同一區段(bank)進行ACT時即無法存取的期間),若讀取2次第2資料時,會產生性能損失,不具效率。
此外,在每次進行記憶體存取時即消耗電力,因此若讀取2次第2資料時,電力消耗會變多。
關於伴隨奇偶校驗結果的資料轉送技術,係有一種對於連續的存取,以在奇偶校驗結果被輸出之前,不會接收接下來的讀取請求的方式進行匯流排控制,使讀取請求等待至奇偶校驗後的資料轉送的技術(例如專利文獻1)。
(先前技術文獻) (專利文獻)
【專利文獻1】日本特開平5-233471號公報
在專利文獻1的方式中,雖可保障由讀取請求至送回讀取資料為止的1個交易一定完成,但是會有並無法應付對管路型記憶體的資料轉送的課題。
本發明係鑑於如上所述之情形,主要目的在即使為管路型的記憶體,亦避免重複資料的讀出,有效利用有限的記憶體頻寬,此外,抑制記憶體存取中的電力消耗。
(發明所欲解決之課題)
本發明之記憶體控制裝置係具有各自儲存有預定的資料寬度份的資料的複數位址,對前述資料寬度份的酬載資料設定錯誤訂正資料,處於對應關係的前述資料寬度份的酬載 資料與錯誤訂正資料遍及鄰接的2個位址予以儲存,以管路方式處理要求來自以位址單位進行資料的讀出的記憶體的酬載資料的讀出的讀取請求,其特徵在於具有:快取區域,其係將由前述記憶體所被讀出的資料進行快取;讀取請求輸入部,其係輸入要求前述資料寬度的整數倍份的酬載資料的讀出的讀取請求;快取判定部,其係判定儲存有:以藉由前述讀取請求輸入部所被輸入的讀取請求所被要求的酬載資料亦即要求酬載資料、及前述要求酬載資料之錯誤訂正所使用的錯誤訂正資料亦即對應錯誤訂正資料的2個以上的位址亦即讀出候補位址之中的任一者的位址的資料,是否在前述快取區域快取完畢或預定快取;及指令輸出部,其係藉由前述快取判定部被判定出2個以上的讀出候補位址之中的任一者的位址的資料在前述快取區域快取完畢或預定快取時,將指示2個以上的讀出候補位址之中來自資料在前述快取區域快取完畢或預定快取的位址亦即快取位址以外的位址的資料的讀出的部分讀取指令,在由可進行對前述記憶體的前述部分讀取指令的輸出的時序經過預定的延遲時間之後,輸出至前述記憶體。
在本發明中,係將指示來自讀出候補位址之中快取位址以外的位址的資料的讀出的部分讀取指令,由可對記憶體輸出部分讀取指令的時序經過預定的延遲時間之後輸出至 記憶體。
快取位址的資料係藉由使用快取區域的資料來回避讀出重複的資料,有效率地利用有限的記憶體頻寬,此外,可抑制記憶體存取中的電力消耗。
此外,在經過延遲時間後,將部分讀取指令輸出至記憶體,藉此即使為管路型的記憶體,亦可回避來自快取區域之快取位址的資料的輸入與來自記憶體之快取位址以外的位址的資料的輸入之間的衝突。
100‧‧‧記憶體控制裝置
101‧‧‧請求要求源
102‧‧‧ECC訂正部
103‧‧‧資料整列部
104‧‧‧前次值保持部
105‧‧‧記憶體
106‧‧‧記憶體位址轉換部
107‧‧‧內部緩衝區管理部
108‧‧‧資料選擇部
109‧‧‧內部緩衝區A
110‧‧‧FIFO緩衝區
111‧‧‧資料取得部
112‧‧‧內部緩衝區資訊記憶部
113‧‧‧符合判定部
114‧‧‧指令發行間隔控制部
115‧‧‧發行間隔判定部
1090‧‧‧內部緩衝區B
第1圖係顯示實施形態1之未包含ECC之資料配置例圖。
第2圖係顯示實施形態1之附加有垂直ECC之資料配置例圖。
第3圖係顯示實施形態1之記憶體控制裝置與請求要求源與記憶體的圖。
第4圖係顯示實施形態1之記憶體控制裝置之動作例的流程圖。
第5圖係顯示實施形態1之記憶體控制裝置之動作例圖。
第6圖係顯示實施形態1之記憶體控制裝置之動作例圖。
第7圖係顯示實施形態2之記憶體控制裝置與請求要求源與記憶體的圖。
第8圖係顯示實施形態2之記憶體控制裝置之動作例的流程圖。
第9圖係顯示實施形態2之記憶體控制裝置之動作例的流 程圖。
第10圖係顯示實施形態3之記憶體控制裝置與請求要求源與記憶體的圖。
第11圖係顯示實施形態3之記憶體控制裝置之動作例的流程圖。
第12圖係顯示實施形態2之記憶體控制裝置之動作例的時序圖。
第13圖係顯示實施形態2之記憶體控制裝置之動作例的時序圖。
第14圖係顯示實施形態3之記憶體控制裝置之動作例的時序圖。
實施形態1.
在實施形態1中係說明與非為管路型的記憶體相對應的記憶體控制裝置,在實施形態2及3中說明與管路型記憶體相對應的記憶體控制裝置。
在實施形態1的記憶體控制裝置中,係使用前次值保持部及內部緩衝區,俾以避免第2資料重複的讀取。
在與管路型記憶體相對應的實施形態2及3的記憶體控制裝置中,亦同樣地使用前次值保持部及內部緩衝區,俾以避免第2資料的重複讀取。
記憶體控制裝置中之前次值保持部及內部緩衝區的使用方法由於在實施形態1~3中為共通,因此考慮理解容易度,在實施形態1中,說明非管路方式之記憶體控制裝置之動作。
接著,以實施形態1中的動作為前提,在實施形態2及3中係說明管路方式特有的動作。
此外,說明實施形態1~3中為共通的請求要求源及記憶體上的位址與資料的關係。
例如有第1圖所示之位址與資料寬幅為4位元組的資料(D0~D3f)。
在第2圖中顯示每4位元組即附加1位元組之ECC的垂直ECC的記憶體配置。
形成為接續資料配置ECC的順序,但是此為一例,ECC的配置方法若在相鄰的前後2線之中配置有資料及ECC即可。
例如,「EEC0」亦可配置在酬載資料「D0」之前。
此外,分配在相同位址的資料為可擴張,亦可在例如0000h位址擴張資料寬度為D0~D3、ECC0、D4~D6,在接下來的0008h位址擴張資料寬度為D7、ECC1、D8~Db、ECC2、Dc。
在該情形下,亦為一部分酬載資料與ECC係遍及鄰接的2個位址,持續呈對應關係之故。
實施形態1.
第3圖係顯示實施形態1之記憶體控制裝置100與請求要求源101與記憶體105。
在第3圖中,請求要求源101係發行對記憶體105的讀寫請求。
以下,請求要求源101係侷限於發行要求來自記憶體105的酬載資料的讀出的讀取請求的情形來進行說明。
請求要求源101係例如CPU(Central Processing Unit,中 央處理單元)。
其中,在請求要求源101中,例如以第1圖所示形式,來辨識酬載資料的配置。
此外,在記憶體105中,係以例如第2圖所示形式,來配置酬載資料、及作為錯誤訂正資料的ECC。
由記憶體105,係以位址單位進行資料的讀出。
其中,記憶體105係記憶體控制裝置100的控制對象的記憶體。
記憶體控制裝置100係由:記憶體位址轉換部106、內部緩衝區A109、內部緩衝區管理部107、內部緩衝區資訊記憶部112、符合判定部113、前次值保持部104、資料選擇部108、資料整列部103、及ECC訂正部102所構成。
記憶體控制裝置100的各構成要素係例如元件、裝置、電路等硬體。
記憶體控制裝置100的各構成要素係例如晶片集內的半導體電路群。
此外,例如記憶體位址轉換部106、內部緩衝區管理部107、內部緩衝區資訊記憶部112、資料選擇部108、資料整列部103、及ECC訂正部102亦可使用程式來實現。
記憶體位址轉換部106係輸入來自請求要求源101的讀取請求。
此外,記憶體位址轉換部106係將所輸入的讀取請求的位址轉換成配置有垂直ECC的記憶體105上的位址。
例如若由請求要求源101有第1圖的0000h位址的資料(D0 ~D3)的讀取請求時,記憶體位址轉換部106係進行對第2圖的0000h位址的資料(D0~D3)及0004h位址的資料(ECC0~D6)的位址轉換。
其中,將藉由記憶體位址轉換部106所致之位址轉換後的位址稱為讀出候補位址(在上述之例中,第2圖的0000h位址與0004h位址為讀出候補位址)。
此外,將以來自請求要求源101的讀取請求所被要求的酬載資料稱為要求酬載資料(在上述之例中,D0~D3為要求酬載資料)。
此外,將要求酬載資料的錯誤訂正所使用的ECC稱為對應錯誤訂正資料或對應ECC(在上述之例中,ECC0為對應錯誤訂正資料)。
此外,記憶體位址轉換部106係根據位址轉換結果及符合判定部113的判定結果,輸出對記憶體105指示資料讀取的讀取指令。
其中,在本說明書中,係將記憶體位址轉換部106由請求要求源101所輸入的資訊稱為讀取請求,記憶體位址轉換部106輸出至記憶體105的資訊稱為讀取指令。
若在符合判定部113中有符合判定時,記憶體位址轉換部106係將部分讀取指令輸出至記憶體105。
部分讀取指令係對讀出候補位址之中指示來自在內部緩衝區A109快取完畢的位址(稱為快取位址)以外的位址的資料的讀出的指令。
此外,在符合判定部113中有非符合判定時,記憶體位址 轉換部106係將全域讀取指令輸出至記憶體105。
全域讀取指令係指示來自讀出候補位址之全域的資料的讀出的指令。
其中,記憶體位址轉換部106係相當於讀取請求輸入部及指令輸出部之例。
在內部緩衝區A109係儲存有藉由以前的讀取指令而由記憶體105所被讀取的資料。
內部緩衝區A109係快取區域之例。
其中,在第1圖中,內部緩衝區係僅圖示1個,但是可配置複數內部緩衝區。
內部緩衝區管理部107係進行內部緩衝區A109的管理。
更具體而言,內部緩衝區管理部107係在由記憶體105所被讀取的資料之中選擇記憶在內部緩衝區A109的資料,將所選擇出的資料儲存在內部緩衝區A109。
按照藉由記憶體位址轉換部106所被輸出的讀取指令,在由記憶體105所被讀出的資料之中的最後尾的資料(稱為最後尾資料),包含有均非為要求酬載資料及對應ECC之任一者的資料時,內部緩衝區管理部107係在內部緩衝區A109儲存適當最後尾資料。
例如,若由請求要求源101有第1圖的0000h位址的資料(D0~D3)的讀取請求時,係藉由記憶體位址轉換部106,進行對第2圖的0000h位址的資料(D0~D3)及0004h位址的資料(ECC0~D6)的位址轉換。
若0000h位址的資料(D0~D3)未被儲存在內部緩衝區A109時,形成為非符合判定,而被輸出指示0000h位址的資料及0004h位址的資料的讀取的全域讀取指令。
在對於該全域讀取指令而由記憶體105所被讀取的最後尾資料(0004h位址)係包含有ECC0~D6。
ECC0係相當於對應ECC,但是D4~D6並非為要求酬載資料。
因此,內部緩衝區管理部107係將0004h位址的資料(ECC0~D6)儲存在內部緩衝區A109。
另一方面,若由請求要求源101有第1圖的001Ch位址的資料(D1c~D1f)的讀取請求時,藉由記憶體位址轉換部106,進行對第2圖的0020h位址的資料(D1a~D1c)及0024h位址的資料(D1d~ECC7)的位址轉換。
若0020h位址的資料(D1a~D1c)未被儲存在內部緩衝區A109時,成為非符合判定,而被輸出指示0020h位址的資料及0024h位址的資料的讀取的全域讀取指令。
在對於該全域讀取指令而由記憶體105所被讀取的最後尾資料(0024h位址)係包含有D1d~ECC7。
D1d~D1f係相當於要求酬載資料,ECC7係相當於對應ECC。
因此,內部緩衝區管理部107係0024h位址的資料(D1d~ECC7)並未儲存在內部緩衝區A109。
其中,內部緩衝區管理部107係相當於快取管理部之例。
符合判定部113係判定藉由記憶體位址轉換部 106所取得的讀出候補位址的一部分的位址的資料是否已在內部緩衝區A109快取完畢。
若讀出候補位址的一部分的位址的資料在內部緩衝區A109快取完畢,即為符合判定,若非為快取完畢,則為非符合判定。
符合判定部113係由內部緩衝區資訊記憶部112的「內部緩衝區A的位址」及「距離資訊」計算連續的位址,判定在內部緩衝區A109是否資料快取完畢。
若為符合判定,符合判定部113係將符合訊號輸出至記憶體位址轉換部106。
其中,符合判定部113係相當於快取判定部之例。
在內部緩衝區資訊記憶部112內的「內部緩衝區A的位址」係記憶有以來自請求要求源101的讀取請求所示的位址(第1圖的位址)。
在內部緩衝區資訊記憶部112內的「距離資訊A」係記憶有以讀取請求所被要求的位址的位址長。
若由請求要求源101有第1圖的0000h位址的讀取請求時,係在「內部緩衝區A的位址」記憶有「0000h位址」,在「距離資訊A」記憶有「4位元組」。
若有複數個內部緩衝區時,係對各內部緩衝區記憶有位址及距離資訊。
其中,在第1圖中,係將「內部緩衝區A的位址」及「距離資訊A」分別管理,但是亦可僅以「內部緩衝區A的位址」加以運用。
此時係將在以讀取請求所示之位址加算位址長所得的值記憶在「內部緩衝區A的位址」。
亦即,若由請求要求源101有第1圖的0000h位址的讀取請求時,係將在0000h位址加算4位元組所得的「0004h位址」記憶在「內部緩衝區A的位址」。
前次值保持部104係保持由記憶體105所接收到的前次讀取資料、或內部緩衝區A109的資料的暫存器。
資料選擇部108係選擇由記憶體105所接收到的讀取資料及內部緩衝區A109的資料的任一者,將所選擇出的資料輸出至資料整列部103。
資料整列部103係由在資料選擇部108所選擇的資料及前次值保持部104的資料之中,取得要求酬載資料及對應ECC,將所取得的要求酬載資料及對應ECC,以可進行ECC訂正的方式進行整列。
其中,將合併資料整列部103、前次值保持部104、及資料選擇部108者稱為資料取得部111。
ECC訂正部102係由資料整列部103輸入整列後的要求酬載資料及對應ECC,使用對應ECC,進行要求酬載資料的ECC訂正,對請求要求源101輸出ECC訂正後的要求酬載資料。
接著,使用第1圖~第5圖,說明本實施形態之記憶體控制裝置100之動作例。
以下係說明由第1圖的0000h位址讀取4位元組(D0~D3),接著由0004h位址讀取4位元組(D4~D7)的情形。
首先,記憶體位址轉換部106由請求要求源101受理由0000h位址為4位元組讀取的讀取請求(S201)。
接著,符合判定部113判定所受理的讀取請求是否與被儲存在內部緩衝區A109的資料相符合(S301)。
具體而言,符合判定部113係由內部緩衝區資訊記憶部112的「內部緩衝區A的位址」、「距離資訊A」計算快取位址且進行判定。
其中,在該時點,在內部緩衝區A109並未儲存有資料,因此S301的判定結果成為No。
接著,記憶體位址轉換部106計算包含4位元組的資料(D0~D3)及與其相對應的ECC(ECC0)的區域(讀出候補位址),生成指示來自所計算出的區域的讀取的讀取指令,將所生成的讀取指令輸出至記憶體105(S202)。
若參照第2圖,上述資料係跨越0000h位址及0004h位址來作配置,因此記憶體位址轉換部106係生成指示由0000h位址為8位元組的讀取的讀取指令(全域讀取指令)。
此外,記憶體位址轉換部106係將所生成的讀取指令輸出至記憶體105,並且對內部緩衝區管理部107及資料選擇部108輸出讀取指令、及來自請求要求源101的讀取請求。
記憶體105係送回0000h位址的資料(D0~D3),在記憶體控制裝置100中,係由資料選擇部108輸入0000h位址的資料(S203)。
資料選擇部108係對資料整列部103及內部緩衝區管理部107通知輸入讀取資料。
內部緩衝區管理部107係若由資料選擇部108有通知時,判斷所被輸入的讀取資料是否為最後尾資料(S400)。
0000h位址的資料並非為最後尾資料,因此S401的判定結果成為No。
內部緩衝區管理部107係由記憶體位址轉換部106輸入讀取指令及讀取請求,此外,辨識出第1圖的資料配置及第2圖的資料配置,因此可判定為最初輸入的讀取資料(0000h位址的資料)非為最後尾資料。
其中,所輸入的0000h位址的資料並非為最後尾資料,因此所輸入的讀取資料係在內部緩衝區A109未被保持。
接著,資料整列部103係判斷是否可進行資料整列(S305)。
亦即,資料整列部103係以來自記憶體105的資料或內部緩衝區A109的資料及前次值保持部104的資料,判斷是否獲得由請求要求源101所被要求的要求酬載資料及對應ECC。
在該時點,由記憶體105輸入有0000h位址的資料,但是在前次值保持部104並未儲存有資料。
僅以0000h位址的資料,並無法獲得要求酬載資料及對應ECC,因此資料整列部103係等待0004h位址的資料的輸入(S305中為NO)。
此時,由資料選擇部108,在前次值保持部104,作為前次值儲存有讀取資料(0000h位址)。
其中,資料整列部103係由記憶體位址轉換部106輸入有讀取指令及讀取請求,此外,辨識出第1圖的資料配置及第2圖的 資料配置,因此可判斷是否可進行資料整列。
接著,記憶體105係送回0004h位址的資料(ECC0~D6),在記憶體控制裝置100中係由資料選擇部108輸入0004h位址的資料(S203)。
資料選擇部108係對資料整列部103及內部緩衝區管理部107通知輸入讀取資料。
內部緩衝區管理部107係若由資料選擇部108有通知時,判斷所被輸入的讀取資料是否為最後尾資料(S400)。
0004h位址的資料係對於讀取指令而由記憶體105所輸入的最後資料,相當於最後尾資料(S400中為YES)。
接著,內部緩衝區管理部107係判斷在所被輸入的0004h位址的資料是否包含有要求酬載資料及對應ECC以外的後續的酬載資料(S401)。
由請求要求源101所被要求的要求酬載資料為D0~D3,此外,對應ECC為EEC0。
在0004h位址的資料係包含有作為後續的酬載資料的D4~D6。
因此,S401的判定結果成為YES。
如前所述,內部緩衝區管理部107係由記憶體位址轉換部106輸入讀取請求,此外,由於辨識出第1圖的資料配置及第2圖的資料配置,因此可判斷出0004h位址的D4~D6係非為要求酬載資料及對應ECC之任一者的後續的酬載資料。
接著,內部緩衝區管理部107係在內部緩衝區資訊記憶部112的「內部緩衝區A的位址」記述「0000h」,在「距 離資訊A」記述4位元組讀取的「4」,在內部緩衝區A109儲存0004h位址的資料(ECC0~D6)(S402)。
接著,資料整列部103係判斷是否可進行資料整列(S305)。
亦即,資料整列部103係以來自記憶體105的資料或內部緩衝區A109的資料及前次值保持部104的資料,判斷是否獲得由請求要求源101所被要求的要求酬載資料及對應ECC。
在該時點,由記憶體105輸入0004h位址的資料,在前次值保持部104作為前次值儲存有0000h位址的資料。
以由記憶體105所輸入的資料及前次值保持部104的資料,獲得要求酬載資料及對應ECC,因此S305的判定結果成為Yes。
資料整列部103係由前次值保持部104輸入0000h位址的資料(D0~D3),此外,由資料選擇部108取得0004h位址的資料(ECC0~D6),抽出要求酬載資料(D0~D3)及對應ECC(ECC0),進行所抽出的資料的整列(S205)。
接著,ECC訂正部102由資料整列部103取得經整列的資料(D0~D3及ECC0),使用ECC0進行要求酬載資料D0~D3的ECC訂正之後,將要求酬載資料D0~D3送回至請求要求源101(S206)。
由於將以上所要求的酬載資料已全部送回,因此處理即完成(S207)。
接著,假想由請求要求源101受理由0004h位址為4位元組讀取的讀取請求的情形。
此時係在受理讀取請求(S201)後,符合判定部113判定在讀取請求所被要求的酬載資料是否與被儲存在內部緩衝區A109的資料相符合(S301)。
亦即,符合判定部113係判斷在S201所受理的讀取請求是否要求內部緩衝區資訊記憶部112的「內部緩衝區A的位址」所記述的位址所連續的位址的資料的讀取。
若為本例之情形,係在「內部緩衝區A的位址」記述「0000h位址」,在「距離資訊A」記述「4」,因此在「0000h位址」加算4位元組而成為「0004h」,由於與讀取請求的要求相一致,因此成為符合判定,S301的判定結果為Yes。
記憶體位址轉換部106係計算包含4位元組的資料(D4~D7)、及與其相對應的ECC(ECC1)的區域(讀出候補位址)。
若參照第2圖,上述資料係跨越0004h位址、及0008h位址來作配置,因此若為平常,記憶體位址轉換部106係生成指示由0004h位址為8位元組的讀取的讀取指令。
但是,0004h位址的資料係利用內部緩衝區A109的資料,因此記憶體位址轉換部106係生成指示由0008h為4位元組的讀取的讀取指令(部分讀取指令),且將所生成的讀取指令輸出至記憶體105(S302)。
此外,記憶體位址轉換部106係將所生成的讀取指令輸出至記憶體105,並且對內部緩衝區管理部107及資料選擇部108輸出讀取指令及來自請求要求源101的讀取請求。
0004h位址的資料係全部儲存在內部緩衝區 A109,因此內部緩衝區管理部107係將內部緩衝區A109的資料透過資料選擇部108而送至資料整列部103(S303)。
資料整列部103係判斷是否可進行資料整列(S305)。
亦即,資料整列部103係以來自記憶體105的資料或內部緩衝區A109的資料及前次值保持部104的資料,來判斷是否獲得由請求要求源101所被要求的要求酬載資料及對應ECC。
在該時點,在內部緩衝區A109有0004h位址的資料,在前次值保持部104亦有0004h位址的資料。
僅以0004h位址的資料並無法獲得要求酬載資料及對應ECC,因此資料整列部103係等待0008h位址的資料的輸入(S305中為NO)。
此時,由資料選擇部108在前次值保持部104儲存內部緩衝區A109的資料(0004h位址)作為前次值。
接著,記憶體105係送回0008h位址的資料(D7~D9),在記憶體控制裝置100中係由資料選擇部108輸入0008h位址的資料(S203)。
資料選擇部108係對資料整列部103及內部緩衝區管理部107通知輸入讀取資料。
內部緩衝區管理部107係若由資料選擇部108有通知時,即判斷所被輸入的讀取資料是否為最後尾資料(S400)。
0008h位址的資料係對於讀取指令而由記憶體105所輸入的最後資料,相當於最後尾資料(S400中為YES)。
接著,內部緩衝區管理部107係判斷在所被輸入的0008h位址的資料,是否包含有要求酬載資料及對應ECC以外的後續的酬載資料(S401)。
由請求要求源101所被要求的要求酬載資料為D4~D7,此外,對應ECC為EEC1。
在0008h位址的資料係包含有作為後續的酬載資料的D8~D9。
因此,S401的判定結果成為YES。
接著,內部緩衝區管理部107係在內部緩衝區資訊記憶部112的「內部緩衝區A的位址」記述「0004h」,在「距離資訊A」記述4位元組讀取的「4」,在內部緩衝區A109儲存0008h位址的資料(D7~D9)(S402)。
接著,資料整列部103係判斷是否可進行資料整列(S305)。
亦即,資料整列部103係以來自記憶體105的資料或內部緩衝區A109的資料及前次值保持部104的資料,來判斷是否取得由請求要求源101所被要求的要求酬載資料及對應ECC。
在該時點,由記憶體105輸入0008h位址的資料,在前次值保持部104儲存有0004h位址的資料作為前次值。
以由記憶體105所輸入的資料及前次值保持部104的資料,取得要求酬載資料及對應ECC,因此S305的判定結果為Yes。
資料整列部103係由前次值保持部104輸入0004h位址的資料(ECC0~D6),此外,由資料選擇部108取得0008h 位址的資料(D7~D9),抽出要求酬載資料(D4~D7)及對應ECC(ECC1),進行所抽出的資料的整列(S205)。
接著,ECC訂正部102由資料整列部103取得經整列的資料(D4~D7及ECC1),使用ECC1來進行要求酬載資料D4~D7的ECC訂正之後,將要求酬載資料D4~D7送回至請求要求源101(S206)。
由於已將以上所被要求的酬載資料全部送回,因此處理即完成(S207)。
第5圖係具體說明以上記憶體控制裝置100之動作。
由請求要求源101若有由0000h位址(第1圖)為4位元組讀取的讀取請求(D0~D3)時,由記憶體105,由第2圖的0000h位址讀出第1資料A(D0~D3)。
第1資料A(D0~D3)並非為最後尾資料,因此在內部緩衝區A109並未被保持,但是作為第1資料B(D0~D3)而被保持在前次值保持部104。
接著,由記憶體105,由第2圖的0004h位址讀出第2資料A(ECC0~D6)。
第2資料A(ECC0~D6)為最後尾資料,因此作為第2資料E(ECC0~D6)而被保持在內部緩衝區A109。
資料整列部103係由來自記憶體105的第2資料A(ECC0~D6)、及前次值保持部104的第1資料B(D0~D3),進行資料整列,而生成第1資料C(D0~ECC0)。
接著,ECC訂正部102進行第1資料C(D0~ECC0)的ECC 訂正,將ECC訂正後的第1資料D(D0~D3)輸出至請求要求源101。
此外,第2資料A(ECC0~D6)係作為第2資料B(ECC0~D6)而被保持在前次值保持部104。
接著,由請求要求源101若有由0004h位址(第1圖)為4位元組讀取的讀取請求(D4~D7)時,在內部緩衝區A109存在有第2資料E(ECC0~D6),第2資料B(ECC0~D6)作為前次值而被保持在前次值保持部104。
在內部緩衝區A109的第2資料E(ECC0~D6)、及前次值保持部104的第2資料B(ECC0~D6)中,並無法進行資料整列,因此第2資料E(ECC0~D6)作為前次值而被保持在前次值保持部104,並且由記憶體105,由第2圖的0008h位址讀出第4資料A(D7~D9)。
第4資料A(D7~D9)為最後尾資料,因此作為第4資料E(D7~D9)而被保持在內部緩衝區A109。
資料整列部103係由來自記憶體105的第4資料A(D7~D9)、及前次值保持部104的第2資料E(ECC0~D6)進行資料整列,而生成第2資料C(D4~ECC1)。
接著,ECC訂正部102進行第2資料C(D4~ECC1)的ECC訂正,將ECC訂正後的第2資料D(D4~D7)輸出至請求要求源101。
此外,第4資料A(D7~D9)係作為第4資料B(D7~D9)而被保持在前次值保持部104。
若未藉由本實施形態,若由請求要求源101有由 0004h位址為4位元組讀取的讀取請求時,如第3資料A(ECC0~D6)所示,將ECC0~D6的資料重複由記憶體105讀出。
相對於此,在本實施形態中,可利用內部緩衝區A109內的第2資料E(ECC0~D6),因此並不需要由記憶體105的重複讀出。
以上係說明僅包含內部緩衝區A109之記憶體控制裝置100之動作例。
在此,說明除了內部緩衝區A109以外,包含有內部緩衝區B1090的記憶體控制裝置100之動作例。
第6圖係顯示包含有內部緩衝區A109及內部緩衝區B1090之記憶體控制裝置100之動作例。
在第6圖中,係顯示由請求要求源101,由0000h位址(第1圖)為4位元組讀取的讀取請求(D0~D3),接著,有由0014h位址(第1圖)為4位元組讀取的讀取請求(D14~D17),此外有由0004h位址為4位元組讀取的讀取請求(D4~D7)時的請求要求源101之動作例。
其中,若進行第1讀取請求(0000h位址的讀取請求)時,對於在第1讀取請求之前的讀取請求所被讀出的ECC4~D16的資料(第2圖的0018h位址)作為第3資料E而被保持在內部緩衝區B1090。
另一方面,在內部緩衝區A109,係在進行第1讀取請求時,未保持有資料。
若由請求要求源101有由0000h位址(第1圖)為4位元組讀取的讀取請求(D0~D3)時,由記憶體105,由 第2圖的0000h位址讀出第1資料A(D0~D3)。
第1資料A(D0~D3)並非為最後尾資料,因此在內部緩衝區A109並未被保持,但是作為第1資料B(D0~D3)而被保持在前次值保持部104。
接著,由記憶體105被讀出第2資料A(ECC0~D6)。
第2資料A(ECC0~D6)為最後尾資料,因此作為第2資料E(ECC0~D6)而被保持在內部緩衝區A109。
資料整列部103係由來自記憶體105的第2資料A(ECC0~D6)、及前次值保持部104的第1資料B(D0~D3)進行資料整列,而生成第1資料C(D0~ECC0)。
接著,ECC訂正部102進行第1資料C(D0~ECC0)的ECC訂正,將ECC訂正後的第1資料D(D0~D3)輸出至請求要求源101。
此外,第2資料A(ECC0~D6)係作為第2資料B(ECC0~D6)而被保持在前次值保持部104。
接著,當由請求要求源101有由0014h位址(第1圖)為4位元組讀取的讀取請求(D14~D17)時,在內部緩衝區B1090存在有第3資料E(ECC4~D16),第2資料B(ECC0~D6)作為前次值而被保持在前次值保持部104。
在內部緩衝區B1090的第3資料E(ECC4~D16)與前次值保持部104的第2資料B(ECC0~D6)中,由於無法進行資料整列,因此第3資料E(ECC4~D16)作為第3資料B(ECC4~D16)(前次值)而被保持在前次值保持部104,並且由記憶體105,由第2圖的001Ch位址讀出第4資料A(D17~D19)。
第4資料A(D17~D19)為最後尾資料,因此作為第4資料E(D17~D19)而被保持在內部緩衝區A109。
資料整列部103係由來自記憶體105的第4資料A(D17~D19)、及前次值保持部104的第3資料B(ECC4~D16)進行資料整列,而生成第2資料C(D14~ECC5)。
接著,ECC訂正部102進行第2資料C(D14~ECC5)的ECC訂正,將ECC訂正後的第2資料D(D14~D17)輸出至請求要求源101。
此外,第4資料A(D17~D19)係作為第4資料B(D17~D19)而被保持在前次值保持部104。
接著,當由請求要求源101有由0004h位址(第1圖)為4位元組讀取的讀取請求(D4~D7)時,係在內部緩衝區A109存在有第2資料E(ECC0~D6),第4資料B(D17~D19)作為前次值而被保持在前次值保持部104。
在內部緩衝區A109的第2資料E(ECC0~D6)及前次值保持部104的第4資料B(D17~D19)中,並無法進行資料整列,因此第2資料E(ECC0~D6)作為第5資料B(ECC0~D6)(前次值)而被保持在前次值保持部104,並且由記憶體105由第2圖的0008h位址被讀出第6資料A(D7~D9)。
第6資料A(D7~D9)為最後尾資料,因此作為第6資料E(D7~D9)而被保持在內部緩衝區A109。
資料整列部103係由來自記憶體105的第6資料A(D7~D9)、及前次值保持部104的第5資料B(ECC0~D6)進行資料整列,而生成第3資料C(D4~ECC1)。
接著,ECC訂正部102進行第3資料C(D4~ECC1)的ECC訂正,將ECC訂正後的第3資料D(D4~D7)輸出至請求要求源101。
此外,第6資料A(D7~D9)係作為第6資料B(D7~D9)而被保持在前次值保持部104。
其中,第6資料B(D7~D9)的圖示省略。
以上係舉出以由0000h位址為4位元組、由0004h位址為4位元組的方式,對於各4位元組的讀取請求,將酬載資料送回至請求要求源101之例。
本實施形態之記憶體控制裝置100係亦可處理各4位元組之整數倍的讀取請求。
例如,以由0000h位址為8位元組、由0008h位址為8位元組的方式,亦可處理各8位元組的讀取請求。
此外,在本實施形態中,係說明使用內部緩衝區A109及內部緩衝區B1090等2個內部緩衝區之例,但是在使用3個以上的內部緩衝區時,亦以在本實施形態中所說明的順序來進行處理。
在本實施形態中,係說明具備有以下手段的記憶體控制裝置。
(a)將來自請求要求源的請求轉換成記憶體的請求,進行資料之架橋的手段
(b)進行資料的ECC錯誤訂正的手段
(c)將來自採用垂直ECC的記憶體的收訊資料,重新配置在可進行ECC錯誤訂正的資料(分離成與資料相對應的ECC 者)的手段
(d)將來自請求要求源的位址及長度轉換成採用垂直ECC之記憶體的位址及長度的手段
(e)保持由記憶體接收到之前次資料的手段
(f)保持包含接下來的位址的酬載資料之最後接收到的讀取資料的手段
(g)為了判定為接下來的位址,記憶所保持的酬載資料的位址的手段
(h)為了判定為接下來的位址,保持距離資訊的手段
(i)判定是否再利用今後對記憶體所發行的讀取指令所保持的酬載資料的手段
(j)選擇內部緩衝區的資料及由記憶體所接收到的讀取資料的哪一個的手段。
實施形態2.
在實施形態1中,例如,來自請求要求源101之由0004h位址(第1圖)為4位元組讀取的讀取請求係在由前頭的0000h位址(第1圖)為4位元組的讀取完成後(第4圖的S207中為YES)進行,因此進行非管路型之動作。
在管路型之動作中,係在利用保持在內部緩衝區的資料的時序,由記憶體被送回其他交易的讀取資料,有在內部緩衝區的資料與來自記憶體的資料之間產生競爭的可能性,若發生資料競爭時,則任何資料均會消失。
在本實施形態中,若以管路型之動作再利用內部緩衝區的資料時,以由記憶體所接收的讀取資料對資料取得部111的輸 出時序、及來自內部緩衝區的資料對資料取得部111的輸出時序不會重疊的方式,使來自記憶體的讀取資料的收訊時序延遲。
如上所示,在本實施形態之記憶體控制裝置100係對應管路型的記憶體。
接著,本實施形態之記憶體控制裝置100係可發揮管路型記憶體的特徵,可有助於記憶體存取的處理量提升。
將本實施形態之記憶體控制裝置100的構成例顯示於第7圖。
與第3圖的構成相比較,在第7圖中,係追加指令發行間隔控制部114與FIFO緩衝區110。
指令發行間隔控制部114係若利用內部緩衝區A109的資料時,進行以用以利用內部緩衝區A109的資料所需的時間,使對記憶體105的讀取指令的輸出延遲的控制。
由記憶體105係在輸出讀取指令之後,在某一定間隔之後(讀取反應時間(Read Latency))被送回讀取資料,因此藉由指令發行間隔控制部114來控制發行讀取指令的間隔,藉此可空出用以利用內部緩衝區A的資料的時間。
其中,指令發行間隔控制部114使讀取指令的輸出延遲的延遲時間係例如管路中之1時槽份的時間。
在本實施形態中,指令發行間隔控制部114亦相當於指令輸出部之例。
在本實施形態中,記憶體位址轉換部106係將對記憶體105的讀取指令儲存在FIFO緩衝區110。
此外,記憶體位址轉換部106係將對資料整列部103指示輸入被保持在內部緩衝區A109的資料的內部緩衝區資料輸入指令(相當於快取資料輸入指令)、及對資料整列部103指示輸入來自記憶體105的資料的記憶體資料輸入指令儲存在FIFO緩衝區110。
FIFO緩衝區110係記憶讀取指令、內部緩衝區資料輸入指令及記憶體資料輸入指令。
本實施形態之記憶體控制裝置100係控制管路型的記憶體。
亦即,本實施形態之記憶體控制裝置100係在將與由請求要求源101所受理到的讀取請求相對應的讀取資料全部送回完畢至請求要求源101之前,由請求要求源101受理接下來的讀取請求,對記憶體105發行讀取指令。
因此,在FIFO緩衝區110中,記憶已發行的讀取指令。
此外,在本實施形態中,內部緩衝區管理部107係在由記憶體105輸入讀取資料之前,更新內部緩衝區資訊記憶部112的「內部緩衝區A的位址」的值及「距離資訊A」的值。
因此,符合判定部113係不僅判定讀出對象位址的資料是否已經在內部緩衝區A109快取完畢,亦由「內部緩衝區A的位址」的值及「距離資訊A」的值,判定是否讀出對象位址的資料預定在內部緩衝區A109被快取。
其中,第7圖所示之其他要素係與第3圖所示相同,故省略說明。
接著,參照第8圖及第9圖,說明本實施形態之記憶體控制裝置100之動作例。
S201、S301、S202係與實施形態1中所說明者為相同,故省略說明。
在本實施形態中,在S302中,記憶體位址轉換部106生成指示未被保持在內部緩衝區A109的資料的讀取的讀取指令(部分讀取指令),在S506中,指令發行間隔控制部114以用以利用內部緩衝區A109的資料的時間(用以避免資料衝突的時間)空出間隔而將讀取指令(部分讀取指令)輸出至記憶體105。
指令發行間隔控制部114係在由記憶體位址轉換部106生成讀取指令之後輸出讀取指令的平常的時序,經過預定的延遲時間之後,將讀取指令輸出至記憶體105。
接著,內部緩衝區管理部107判斷在最後尾資料是否包含有後續的酬載資料(S505)。
亦即,內部緩衝區管理部107係對在S202或S302所生成的讀取指令,判斷在由記憶體105所被讀出的資料之中的最後尾資料是否包含有後續的酬載資料。
該處理係與第4圖的S401相同的處理。
與實施形態1同樣地,內部緩衝區管理部107係由記憶體位址轉換部106輸入來自請求要求源101的讀取請求及對記憶體105的讀取指令,此外,由於辨識第1圖的資料配置及第2圖的資料配置,因此如S505所示,可判斷在最後尾資料是否包含有後續的酬載資料。
若在最後尾資料包含有後續的酬載資料時(S505中為YES),內部緩衝區管理部107係更新內部緩衝區資訊記憶部112的「內部緩衝區A的位址」的值及「距離資訊A」的值(S507)。
但是,在該時點,內部緩衝區A109的資料並不更新。
在本實施形態中,為了進行與管路型的記憶體相對應的動作,將內部緩衝區資訊記憶部112的「內部緩衝區A的位址」及「距離資訊A」的值,在由記憶體105輸入讀取資料之前進行更新。
接著,記憶體位址轉換部106將指令儲存在FIFO緩衝區110(S501)。
具體而言,記憶體位址轉換部106係若在S202中生成全域讀取指令時,以輸入來自記憶體105的資料的方式,生成對資料整列部103進行指示的記憶體資料輸入指令。
接著,記憶體位址轉換部106係將全域讀取指令及讀取請求與記憶體資料輸入指令儲存在FIFO緩衝區110。
此外,記憶體位址轉換部106係若在S302中生成部分讀取指令時,生成指示資料整列部103輸入被保持在內部緩衝區A109的資料的內部緩衝區資料輸入指令、及記憶體資料輸入指令。
接著,記憶體位址轉換部106係將部分讀取指令及讀取請求、與內部緩衝區資料輸入指令與記憶體資料輸入指令儲存在FIFO緩衝區110。
其中,在已進行ECC訂正的要求酬載資料的送回完成前, 若由請求要求源101接受讀取請求時,連續在FIFO緩衝區110儲存指令。
與第8圖的處理並行,資料整列部103係確認是否定期在FIFO緩衝區110蓄積有指令(S502),若在FIFO緩衝區110有指令(S502中為YES),即由FIFO緩衝區110取出指令(S503)。
若所取出的指令為內部緩衝區資料輸入指令,則在S504中成為YES,處理進至S303。
若所取出的指令為記憶體資料輸入指令,則在S504中成為NO,處理進至S203。
其中,基於作圖上的理由,在第9圖並未顯示所取出的指令為讀取指令及讀取請求時的處理,但是若已取出讀取指令及讀取請求,資料整列部103係將所取出的讀取指令及讀取請求保持在預定的記憶區域,並且再次由FIFO緩衝區110取指令。
在S203中,資料選擇部108由記憶體105輸入讀取資料,對內部緩衝區管理部107通知讀取資料的輸入。
內部緩衝區管理部107係判斷所被輸入的讀取資料是否為最後尾的資料(S400),若讀取資料為最後尾資料,判斷在最後尾資料是否包含有後續的酬載資料(S401)。
在最後尾資料包含有後續的酬載資料時,內部緩衝區管理部107係更新內部緩衝區A109的資料(S402)。
在S303中,內部緩衝區管理部107係將內部緩衝區A109的資料透過資料選擇部108而送至資料整列部103。
資料整列部103係判斷是否可進行資料的整列 (S305),若可進行資料的整列時,資料整列部103係抽出要求酬載資料及對應ECC,來進行所抽出的資料的整列(S205)。
此外,ECC訂正部102由資料整列部103取得經整列的資料,使用ECC資料進行要求酬載資料的ECC訂正之後,將要求酬載資料送回至請求要求源101(S206)。
若將要求酬載資料全部送回,處理即完成(S207)。
其中,S203、S400、S401、S402、S305、S205、S206、S207之動作係與針對第4圖所說明者為相同。
接著,使用第8圖、第9圖及第12圖,具體說明本實施形態之記憶體控制裝置100之動作。
在此,假想由請求要求源101,受理由0000h位址(第1圖)為4位元組讀取的讀取請求,作為第1讀取請求,在對第1讀取請求送回要求酬載資料之前,受理由0004h位址(第1圖)為4位元組讀取的讀取請求作為作為第2讀取請求之例,來說明記憶體控制裝置100之動作。
其中,第12圖的T1~T11係顯示管路處理中的各時槽。
Memory CLK係表示請求要求源101、記憶體控制裝置100及記憶體105之動作時脈。
此外,第12圖的Command(C1)係相當於第7圖的C1,Command(C2)係相當於第7圖的C2,Command(C3)係相當於第7圖的C3。
此外,第12圖的Read Data(Out)係表示由ECC訂正部102對請求要求源101的要求酬載資料的輸出。
此外,第12圖的Read Data(In)係表示來自記憶體105的讀取資料的輸入。
此外,sRead-0000係表示來自請求要求源101的讀取請求,表示由0000h位址(第1圖)為4位元組讀取的讀取請求。
此外,sRead-0004係表示來自請求要求源101的讀取請求,表示由0004h位址(第1圖)為4位元組讀取的讀取請求。
dRead-0000係表示對記憶體105的讀取指令,由0000h位址(第2圖)為4位元組讀取的讀取指令。
dRead-0004係表示對記憶體105的讀取指令,由0004h位址(第2圖)為4位元組讀取的讀取指令。
dRead-0008係表示對記憶體105的讀取指令,由0008h位址(第2圖)為4位元組讀取的讀取指令。
位於Read Data(out)以外的欄位的data-0000係表示由記憶體105所被讀取的0000h位址(第2圖)的資料。
位於Read Data(out)以外的欄位的data-0004係表示由記憶體105所被讀取的0004h位址(第2圖)的資料。
位於Read Data(out)以外的欄位的data-0008係表示由記憶體105所被讀取的0008h位址(第2圖)的資料。
位於Read Data(out)的欄位的data-0000係表示輸出至請求要求源101的0000h位址(第1圖)的要求酬載資料。
位於Read Data(out)的欄位的data-0004係表示輸出至請求要求源101的0004h位址(第1圖)的要求酬載資料。
首先,記憶體位址轉換部106由請求要求源101受理由0000h位址(第1圖)為4位元組讀取的讀取請求(第 12圖的sRead-0000)(S201)。
接著,符合判定部113判定所受理到的讀取請求是否與被儲存在內部緩衝區A109的資料相符合(S301)。
其中,在該時點,在內部緩衝區A109並未儲存有資料,因此S301的判定結果成為No。
接著,記憶體位址轉換部106生成指示來自0000h位址(第2圖)及0004h位址(第2圖)的讀取的讀取指令(第12圖的dRead-0000及dRead-0004),將所生成的讀取指令輸出至記憶體105(S202)。
接著,內部緩衝區管理部107確認在最後尾資料是否包含有後續的酬載資料(S505),此時,在來自0004h位址(第2圖)的讀取資料包含有後續的酬載資料,因此內部緩衝區管理部107係更新內部緩衝區資訊記憶部112的「內部緩衝區A的位址」、「距離資訊A」的值(S507)。
結果,如第12圖的「內部緩衝區A的位址」的欄位所示,在「內部緩衝區A的位址」記述「0000h位址」,在「距離資訊A」記述「4」。
此外,記憶體位址轉換部106係將讀取指令(第12圖的dRead-0000及dRead-0004)及讀取請求(第12圖的sRead-0004)、記憶體資料輸入指令儲存在FIFO緩衝區110(S501)。
在此,記憶體位址轉換部106由請求要求源101受理由0004h位址(第1圖)為4位元組讀取的讀取請求(第12圖的sRead-0004)(S201)。
如前所述以S507的處理,在內部緩衝區資訊記憶部112的「內部緩衝區A的位址」記述「0000h位址」,在「距離資訊A」記述「4」,0004h位址(第2圖)的資料係預定在內部緩衝區A109進行快取,因此S301的判定係成為YES。
因此,記憶體位址轉換部106係生成由0008h位址(第2圖)指示讀取的讀取指令(第12圖的dRead-0008)(S302)。
接著,指令發行間隔控制部114以用以利用內部緩衝區A109的資料的時間(用以避免資料衝突的時間)空出間隔而將讀取指令(第12圖的dRead-0008)輸出至記憶體105。
由來自請求要求源101的讀取請求(第12圖的sRead-0004)的輸入時序,讀取指令(第12圖的dRead-0008)係可以第12圖的符號1201的時序輸出至記憶體105。
但是,在本實施形態中,指令發行間隔控制部114係由可輸出讀取指令的時序,以1時槽份使讀取指令的輸出時序延遲,在符號1202的時序將讀取指令(第12圖的dRead-0008)輸出至記憶體105。
接著,內部緩衝區管理部107確認在最後尾資料是否包含有後續的酬載資料(S505)。
此時由於在來自0008h位址(第2圖)的讀取資料包含有後續的酬載資料,因此內部緩衝區管理部107係更新內部緩衝區資訊記憶部112的「內部緩衝區A的位址」、「距離資訊A」的值(S507)。
結果,如第12圖的「內部緩衝區A的位址」的欄位所示,在「內部緩衝區A的位址」記述「0004h位址」,在「距離資訊 A」記述「4」。
此外,記憶體位址轉換部106係將讀取指令(第12圖的dRead-0008)及讀取請求(第12圖的sRead-0004)、記憶體資料輸入指令及內部緩衝區資料輸入指令儲存在FIFO緩衝區110(S501)。
與上述之動作並行,資料整列部103由FIFO緩衝區110取出前頭的讀取指令(第12圖的dRead-0000及dRead-0004)、及記憶體資料輸入指令(S502、S503)。
此時由於未利用內部緩衝區A109,因此S504係成為NO,如第12圖所示,資料選擇部108由記憶體105輸入0000h位址(第2圖)的資料(第12圖的data-0000)(S203)。
接著,所被輸入的資料(第12圖的data-0000)並非為最後尾資料(S400中為NO),因此並未被儲存在內部緩衝區A109。
此外,僅以所被輸入的資料(第12圖的data-0000)並無法進行資料的整列(S305中為NO),因此等待來自記憶體105之接下來的資料的輸入。
其中,此時,0000h位址(第2圖)的資料(第12圖的data-0000)係被保持在前次值保持部104。
接著,資料選擇部108由記憶體105輸入0004h位址(第2圖)的資料(第12圖的data-0004)(S203)。
所被輸入的資料(第12圖的data-0004)為最後尾資料(S400中為YES),此外,由於包含後續的酬載資料(S401中為YES),所被輸入的資料被儲存在內部緩衝區A109。
此外,以所被輸入的資料(第12圖的data-0004)與前次值 保持部104的資料(第12圖的data-0000)可進行資料的整列(S305中為YES),因此資料整列部103將資料進行整列,ECC訂正部102進行ECC訂正,而將ECC訂正後的要求酬載資料(第12圖的data-0000)輸出至請求要求源101(S205、S206)。
此外,0004h位址(第2圖)的資料(第12圖的data-0004)係被保持在前次值保持部104。
此外,資料整列部103係由FIFO緩衝區110取出接下來的讀取指令(第12圖的dRead-0008)、及內部緩衝區資料輸入指令及記憶體資料輸入指令(S502、S503)。
此時由於利用內部緩衝區A109,因此S504成為YES,內部緩衝區A109內的資料(第12圖的data-0004)被輸出至資料整列部103(S303)。
在來自內部緩衝區A109的資料(第12圖的data-0004)與前次值保持部104的資料(第12圖的data-0004)中,並無法進行資料的整列(S305中為NO),因此等待來自記憶體105的接下來的資料的輸入。
其中,此時,來自內部緩衝區A109的資料(第12圖的data-0004)係被保持在前次值保持部104。
接著,資料選擇部108由記憶體105輸入0008h位址(第2圖)的資料(第12圖的data-0008)(S203)。
其中,若以符號1201的時序,由指令發行間隔控制部114被輸出dRead-0008至記憶體105,則以符號1203的時序由記憶體105被輸入data-0008,但是如前所述,以符號1202的時序被輸出dRead-0008,因此以符號1204的時序由記憶體105被輸入 data-0008。
所被輸入的資料(第12圖的data-0008)為最後尾資料(S400中為YES),此外,由於包含後續的酬載資料(S401中為YES),因此所被輸入的資料被儲存在內部緩衝區A109。
此外,以所被輸入的資料(第12圖的data-0008)及前次值保持部104的資料(第12圖的data-0004)可進行資料的整列(S305中為YES),因此資料整列部103將資料進行整列,ECC訂正部102進行ECC訂正,而將ECC訂正後的要求酬載資料(第12圖的data-0004)輸出至請求要求源101(S205、S206)。
此外,0008h位址(第2圖)的資料(第12圖的data-0004)係被保持在前次值保持部104。
在第12圖之例中,若藉由指令發行間隔控制部114,未調整dRead-0008的輸出時序地,以符號1201的時序被輸出dRead-0008,則以符號1203的時序由記憶體105被輸入data-0008。
此時,係以符號1206的時序,data-0008被輸入至前次值保持部104,但是如符號1205所示,與內部緩衝區A109內的data-0004被輸入至前次值保持部104的時序發生競爭。
因此,data-0008與data-0004的任一者會消失。
相對於此,在本實施形態中,指令發行間隔控制部114以符號1202的時序輸出dRead-0008,因此以符號1204的時序,由記憶體105被輸入data-0008。
接著,若以符號1204的時序被輸入時,data-0008被輸入至前次值保持部104的時序為符號1207的時序,並未發生資料的 競爭。
接著,使用第8圖、第9圖及第13圖,說明除了內部緩衝區A109以外,還存在內部緩衝區B1090之記憶體控制裝置100之動作例。
在此係假想由請求要求源101,受理由0000h位址(第1圖)為4位元組讀取的讀取請求,作為第1讀取請求,在對第1讀取請求送回要求酬載資料之前,受理由0014h位址(第1圖)為4位元組讀取的讀取請求,作為第2讀取請求之例,來說明記憶體控制裝置100之動作。
其中,如第13圖的「內部緩衝區B的位址」及「內部緩衝區B」所示,係設為在內部緩衝區B1090,藉由關於以前的0010h位址(第1圖)的讀取請求,儲存有0018h位址(第2圖)的資料(第13圖的data-0018)者。
其中,在第13圖中,為了表示data-0018繼續被保持在內部緩衝區B1090,而以雙線來表現data-0018。
首先,記憶體位址轉換部106由請求要求源101受理由0000h位址(第1圖)為4位元組讀取的讀取請求(第13圖的sRead-0000)(S201)。
接著,符合判定部113判定所受理到的讀取請求是否與被儲存在內部緩衝區A109或內部緩衝區B1090的資料相符合(S301)。
其中,在該時點,在內部緩衝區A109並未儲存有資料,此外,內部緩衝區B1090的資料係與以讀取請求所被要求的位址不相一致,因此S301的判定結果為No。
接著,記憶體位址轉換部106係由0000h位址(第2圖)及0004h位址(第2圖)生成指示讀取的讀取指令(第13圖的dRead-0000及dRead-0004),且將所生成的讀取指令輸出至記憶體105(S202)。
接著,內部緩衝區管理部107確認在最後尾資料是否包含有後續的酬載資料(S505),此時係在來自0004h位址(第2圖)的讀取資料包含有後續的酬載資料,因此內部緩衝區管理部107係更新內部緩衝區資訊記憶部112的「內部緩衝區A的位址」、「距離資訊A」的值(S507)。
結果,如第13圖的「內部緩衝區A的位址」的欄位所示,在「內部緩衝區A的位址」記述「0000h位址」,在「距離資訊A」記述「4」。
此外,記憶體位址轉換部106係將讀取資料(第13圖的dRead-0000及dRead-0004)、及記憶體資料輸入指令儲存在FIFO緩衝區110(S501)。
在此,記憶體位址轉換部106由請求要求源101受理由0014h位址(第1圖)為4位元組讀取的讀取請求(第13圖的sRead-0014)(S201)。
如前所述,在內部緩衝區B1090係在與0014h位址(第1圖)相對應的0018h位址(第2圖)的資料及001Ch位址(第2圖)的資料之中,快取出0018h位址(第2圖)的資料(第13圖的data-0018),因此S301的判定係成為YES。
因此,記憶體位址轉換部106係生成指示來自001Ch位址(第2圖)的讀取的讀取指令(第13圖的dRead-001C)(S302)。
接著,指令發行間隔控制部114以用以利用內部緩衝區B1090的資料的時間(用以避免資料衝突的時間)空出間隔而將讀取指令(第13圖的dRead-001C)輸出至記憶體105。
由來自請求要求源101的讀取請求(第13圖的sRead-0014)的輸入時序,讀取指令(第13圖的dRead-001C)係以第13圖的符號1301的時序被輸出至記憶體105。
但是,在本實施形態中,指令發行間隔控制部114係由可輸出讀取指令的時序,以1時槽份使讀取指令的輸出時序延遲,以符號1302的時序,將讀取指令(第13圖的dRead-001C)輸出至記憶體105。
接著,內部緩衝區管理部107確認在最後尾資料是否包含有後續的酬載資料(S505),此時係在來自001Ch位址(第2圖)的讀取資料包含有後續的酬載資料,因此內部緩衝區管理部107係更新內部緩衝區資訊記憶部112的「內部緩衝區B的位址」、「距離資訊B」的值(S507)。
結果,如第13圖的「內部緩衝區B的位址」的欄位所示,在「內部緩衝區B的位址」記述「0014h位址」,在「距離資訊B」記述「4」。
此外,記憶體位址轉換部106係將讀取資料(第13圖的dRead-001C)及讀取請求(第13圖的sRead-0014)、及記憶體資料輸入指令及內部緩衝區資料輸入指令儲存在FIFO緩衝區110(S501)。
其中,在本例中,在內部緩衝區資料輸入指令係被指示輸入內部緩衝區B1090的資料的要旨。
另一方面,若利用內部緩衝區A109的資料時,在內部緩衝區資料輸入指令係被指示輸入內部緩衝區A109的資料的要旨。
與上述之動作並行,資料整列部103係由FIFO緩衝區110取出前頭的讀取指令(第13圖的dRead-0000及dRead-0004)、及記憶體資料輸入指令(S502、S503)。
此時並未利用內部緩衝區A109,因此S504係成為NO,如第13圖所示,資料選擇部108由記憶體105輸入0000h位址(第2圖)的資料(第13圖的data-0000)(S203)。
接著,所被輸入的資料(第13圖的data-0000)並非為最後尾資料(S400中為NO),因此並未被儲存在內部緩衝區A109。
此外,僅以所被輸入的資料(第13圖的data-0000)並無法進行資料的整列(S305中為NO),因此等待來自記憶體105的接下來的資料的輸入。
其中,此時,0000h位址(第2圖)的資料(第13圖的data-0000)係被保持在前次值保持部104。
接著,資料選擇部108由記憶體105輸入0004h位址(第2圖)的資料(第13圖的data-0004)(S203)。
所被輸入的資料(第13圖的data-0004)為最後尾資料(S400中為YES),此外,由於包含後續的酬載資料(S401中為YES),所被輸入的資料被儲存在內部緩衝區A109。
此外,以所被輸入的資料(第13圖的data-0004)與前次值保持部104的資料(第13圖的data-0000)可進行資料的整列(S305中為YES),因此資料整列部103整列資料,ECC訂正部102進行ECC訂正,而將ECC訂正後的要求酬載資料(第13圖的 data-0000)輸出至請求要求源101(S205、S206)。
此外,0004h位址(第2圖)的資料(第13圖的data-0004)係被保持在前次值保持部104。
此外,資料整列部103係由FIFO緩衝區110取出接下來的讀取資料(第13圖的dRead-001C)、及內部緩衝區資料輸入指令及記憶體資料輸入指令(S502、S503)。
此時由於利用內部緩衝區B1090,因此S504成為YES,內部緩衝區B1090內的資料(第13圖的data-0018)被輸出至資料整列部103(S303)。
以來自內部緩衝區B1090的資料(第13圖的data-0018)與前次值保持部104的資料(第13圖的data-0004),並無法進行資料整列(S305中為NO),因此等待來自記憶體105之接下來的資料的輸入。
其中,此時,來自內部緩衝區A109的資料(第13圖的data-0018)係被保持在前次值保持部104。
接著,資料選擇部108由記憶體105輸入001Ch位址(第2圖)的資料(第13圖的data-001C)(S203)。
其中,若以符號1301的時序,由指令發行間隔控制部114被輸出dRead-001C至記憶體105,則以符號1303的時序由記憶體105被輸入data-001C,但是如前所述,由於以符號1302的時序輸出dRead-001C,因此以符號1304的時序由記憶體105被輸入data-001C。
所被輸入的資料(第13圖的data-001C)係最後尾資料(S400中為YES),此外,由於包含後續的酬載資料(S401 中為YES),因此所被輸入的資料被儲存在內部緩衝區B1090。
此外,以所被輸入的資料(第13圖的data-001C)與前次值保持部104的資料(第13圖的data-0018)可進行資料的整列(S305中為YES),因此資料整列部103將資料進行整列,ECC訂正部102進行ECC訂正,而將ECC訂正後的要求酬載資料(第13圖的data-0014)輸出至請求要求源101(S205、S206)。
此外,001Ch位址(第2圖)的資料(第13圖的data-001C)係被保持在前次值保持部104。
其中,以上係設為在內部緩衝區A109及內部緩衝區B1090儲存1位址份的資料(4位元組的資料),但是亦可在內部緩衝區A109及內部緩衝區B1090儲存2位址份以上的資料。
此外,將在來自請求要求源101的讀取請求中作為對象的第1圖的形式的位址轉換成第2圖的形式的位址的結果,若3個以上的位址成為讀出候補位址時,由3個以上的讀出候補位址之中之前2個的位址的資料在內部緩衝區A109或內部緩衝區B1090被快取時,記憶體位址轉換部106係指示生成該2個位址以外的位址的資料,亦即,第3個位址以後的資料的讀取的讀取指令(部分讀取指令)。
此外,以上,指令發行間隔控制部114使藉由記憶體位址轉換部106所生成的部分讀取指令的輸出時序延遲1時槽份而輸出至記憶體105。
相對於此,記憶體位址轉換部106亦可由平常的生成時序延遲1時槽份而生成部分讀取指令,來回避在來自記憶體105的 讀取資料與來自內部緩衝區A109的資料之間的衝突。
此外,本實施形態之記憶體控制裝置100亦與實施形態1同樣地,亦可處理4位元組的整數倍的讀取請求。
此外,使用3個以上的內部緩衝區時,亦可以本實施形態中所說明的順序來進行處理。
以上,在本實施形態中,係說明一種記憶體控制裝置,其係用以對應管路型記憶體的記憶體控制裝置,其具有:
(a)記憶對記憶體所發行的請求的手段
(b)控制指令發行間隔,使得接著對記憶體所發行的指令的發行延遲的手段。
實施形態3.
在實施形態2中,若利用內部緩衝區A109的資料時,無條件空出對記憶體105的讀取指令的發行間隔,但是若在受理到來自請求要求源101的讀取請求的時點,空出利用內部緩衝區A109的以上的時間時,亦即不會發生資料競爭時,並不需要空出讀取指令的發行間隔。
在本實施形態中,係說明檢測未空出供內部緩衝區A109的利用之用的時間,僅在該情形下控制成空出指令發行間隔,不會浪費地發行讀取指令的方式。
第10圖係顯示本實施形態之記憶體控制裝置100的構成例。
與第7圖相比較,在第10圖中追加發行間隔判定部115。
發行間隔判定部115係判定現在欲對記憶體105進行發行 的部分讀取指令、與在該部分讀取指令在之前剛發行的讀取指令(全域讀取指令、部分讀取指令的任一者)的發行間隔是否空出一定以上。
具體而言,發行間隔判定部115係判定最後輸出讀取指令(全域讀取指令、部分讀取指令的任一者)之後的經過時間是否超過在實施形態2中所說明的發行間隔(延遲時間)。
指令發行間隔控制部114係若最後輸出讀取指令之後的經過時間超過在實施形態2中所說明的發行間隔(延遲時間)時,並未空出間隔而將部分讀取指令輸出至記憶體105。
其中,發行間隔判定部115係判定保持最後輸出讀取指令的時刻作為之前剛讀取的發行時刻,該之前剛讀取的發行時刻與現在時刻的差是否超過在實施形態2中所說明的發行間隔(延遲時間)。
在本實施形態中,發行間隔判定部115亦相當於指令輸出部之例。
接著,一面參照第11圖及第14圖,一面說明本實施形態之記憶體控制裝置100之動作。
其中,以下主要說明與實施形態2之相異之處。
此外,以下係假想由請求要求源101受理由0000h位址(第1圖)為4位元組讀取的讀取請求,作為第1讀取請求,在對第1讀取請求送回要求酬載資料之前,受理由0004h位址(第1圖)為4位元組讀取的讀取請求,作為第2的讀取請求之例,來說明記憶體控制裝置100之動作。
首先,記憶體位址轉換部106係輸入由0000h位 址(第1圖)為4位元組讀取的讀取請求(第14圖的sRead-0000),與實施形態2同樣地,生成指示由0000h位址(第2圖)為8位元組的讀取的全域讀取指令,指令發行間隔控制部114將該全域讀取指令輸出至記憶體105(S201、S301、S202)。
指令發行間隔控制部114係在進行讀取指令的輸出時,對發行間隔判定部115通知讀取指令的輸出,在發行間隔判定部115中,係在由指令發行間隔控制部114被通知讀取指令的輸出的時刻更新之前剛讀取的發行時刻(S602)。
以下係進行與實施形態2相同的處理。
之後,記憶體位址轉換部106由0004h位址(第1圖)輸入4位元組讀取的讀取請求(第14圖的sRead-0004)(S201)。
在此,由於可利用內部緩衝區A109的資料,因此成為符合判定,S301為YES,記憶體位址轉換部106係與實施形態2同樣地,生成部分讀取指令(第14圖的dRead-0008)(S302)。
接著,發行間隔判定部115係判斷由最後的讀取指令(第14圖的dRead-0004)的輸出的經過時間是否超過延遲時間(在第14圖之例中,1時槽分的時間)(S601)。
在第14圖之例中,由於由最後的讀取指令的輸出的經過時間超過延遲時間(S601中為YES),因此指令發行間隔控制部114係未隔著發行間隔(未等待延遲時間經過)而將讀取指令(第14圖的dRead-0008)輸出至記憶體105。
在實施形態2中,係以第14圖的符號1402的時序,使讀取 指令(dRead-0008)被輸出至記憶體105,在本實施形態中,讀取指令(dRead-0008)係以符號1401的時序被輸出至記憶體105。
結果,由記憶體105係以符號1403的時序被輸入讀取資料(data-0008)。
另一方面,若為實施形態2的情形,係以符號1404的時序被輸入讀取資料(data-0008)。
另一方面,若由最後的讀取指令的輸出的經過時間未超過延遲時間(S601中為NO),指令發行間隔控制部114係與實施形態2同樣地,在由可進行對記憶體105的讀取指令的輸出的時序經過延遲時間後,將讀取指令(第14圖的dRead-0008)輸出至記憶體105(S506)。
以下處理由於與實施形態2相同,故省略說明。
其中,以上係若由最後的讀取指令的輸出的經過時間未超過延遲時間,指令發行間隔控制部114係在由可進行讀取指令的輸出的時序經過延遲時間後,將讀取指令輸出至記憶體105。
相對於此,若由最後的讀取指令的輸出的經過時間未超過延遲時間,指令發行間隔控制部114亦可算出由最後的讀取指令的輸出的經過時間與延遲時間的差分的時間,在由可進行讀取指令的輸出的時序經過差分的時間之後,將讀取指令輸出至記憶體105。
以上,在本實施形態中,係說明一種記憶體控制裝置,其係若再利內部緩衝區的資料的時間充分時,使指令發 行不會延遲的記憶體控制裝置,其具有:
(a)判定與之前剛發行的讀取指令的發行間隔是否比再利用內部緩衝區的資料的時間經過較久的手段
(b)保持之前剛發行的讀取指令的時序的手段。
以上說明本發明之實施形態,惟在該等實施形態之中,亦可組合2個以上來實施。
或者,在該等實施形態之中亦可局部實施1個。
或者,在該等實施形態之中亦可局部組合2個以上來實施。
其中,本發明並非被限定於該等實施形態,可視需要而作各種變更。

Claims (10)

  1. 一種記憶體控制裝置,具有各自儲存有預定的資料寬度份的資料的複數位址,對前述資料寬度份的酬載資料設定錯誤訂正資料,處於對應關係的前述資料寬度份的酬載資料與錯誤訂正資料遍及鄰接的2個位址予以儲存,以管路方式處理要求來自以位址單位進行資料的讀出的記憶體的酬載資料的讀出的讀取請求,其特徵在於具有:快取區域,其係將由前述記憶體所被讀出的資料進行快取;讀取請求輸入部,其係輸入要求前述資料寬度的整數倍份的酬載資料的讀出的讀取請求;快取判定部,其係判定儲存有:以藉由前述讀取請求輸入部所被輸入的讀取請求所被要求的酬載資料亦即要求酬載資料、及前述要求酬載資料之錯誤訂正所使用的錯誤訂正資料亦即對應錯誤訂正資料的2個以上的位址亦即讀出候補位址之中的任一者的位址的資料,是否在前述快取區域快取完畢或預定快取;及指令輸出部,其係藉由前述快取判定部被判定出2個以上的讀出候補位址之中的任一者的位址的資料在前述快取區域快取完畢或預定快取時,將指示2個以上的讀出候補位址之中來自資料在前述快取區域快取完畢或預定快取的位址亦即快取位址以外的位址的資料的讀出的部分讀取指令,在由 可進行對前述記憶體的前述部分讀取指令的輸出的時序經過預定的延遲時間之後,輸出至前述記憶體。
  2. 如申請專利範圍第1項之記憶體控制裝置,其中,前述指令輸出部係若藉由前述快取判定部被判定為2個以上的讀出候補位址之中的最前位址的資料與在前述最前位址後續的0個以上的位址的資料在前述快取區域快取完畢或預定被快取時,將指示包含前述最前位址的快取位址以外的位址的資料的讀出的部分讀取指令輸出至前述記憶體。
  3. 如申請專利範圍第2項之記憶體控制裝置,其中,前述記憶體控制裝置係另外具有:FIFO(First In First Out)緩衝區,其係蓄積指令;及資料取得部,其係由前述FIFO緩衝區輸入指令,按照所輸入的指令,取得前述要求酬載資料及前述對應錯誤訂正資料,前述指令輸出部係將前述部分讀取指令輸出至前述記憶體,並且將指示前述資料取得部由前述快取區域輸入前述快取位址的資料的快取資料輸入指令、及指示前述資料取得部由前述記憶體輸入前述快取位址以外的位址的資料的記憶體資料輸入指令儲存在前述FIFO緩衝區,前述資料取得部係由前述FIFO緩衝區輸入前述快取資料輸入指令及前述記憶體資料輸入指令,按照前述快取資料輸入指令,由前述快取區域輸入前述快取位址的資料,按照 前述記憶體資料輸入指令,由前述記憶體輸入因應前述部分讀取指令而被讀出的前述快取位址以外的位址的資料,從由前述快取區域所輸入的前述快取位址的資料、及由前述記憶體所輸入的前述快取位址以外的位址的資料,取得前述要求酬載資料及前述對應錯誤訂正資料。
  4. 如申請專利範圍第3項之記憶體控制裝置,其中,前述指令輸出部係在前述延遲時間經過後,將部分讀取指令輸出至前述記憶體,藉此在前述資料取得部中之來自前述快取區域的前述快取位址的資料的輸入、及來自前述記憶體之前述快取位址以外的位址的資料的輸入之間不會發生衝突。
  5. 如申請專利範圍第1項之記憶體控制裝置,其中,前述指令輸出部係藉由前述快取判定部被判定出2個以上的讀出候補位址之中的任何位址的資料非為在前述快取區域快取完畢,亦非為預定被快取時,將指示2個以上的讀出候補位址之來自全域的資料的讀出的全域讀取指令,無須等待前述延遲時間的經過即輸出至前述記憶體。
  6. 如申請專利範圍第5項之記憶體控制裝置,其中,前述指令輸出部係判斷若將部分讀取指令輸出至前述記憶體時,將全域讀取指令及部分讀取指令的任一者最後輸出至前述記憶體之後的經過時間是否超過前述延遲時間,若將全域讀取指令及部分讀取指令的任一者最後輸出至前述記憶體之後的經過時間超過前述延遲時間,無須等待前 述延遲時間的經過,將部分讀取指令輸出至前述記憶體。
  7. 如申請專利範圍第6項之記憶體控制裝置,其中,若將全域讀取指令及部分讀取指令的任一者最後輸出至前述記憶體之後的經過時間未超過前述延遲時間時,算出將全域讀取指令及部分讀取指令的任一者最後輸出至前述記憶體之後的經過時間與前述延遲時間的差分時間,由可進行對前述記憶體之前述部分讀取指令的輸出的時序經過前述差分時間之後,將部分讀取指令輸出至前述記憶體。
  8. 如申請專利範圍第5項之記憶體控制裝置,其中,前述記憶體控制裝置係另外具有快取管理部,其係若在按照藉由前述指令輸出部所被輸出的全域讀取指令及部分讀取指令的任一者而由前述記憶體被讀出的最後尾的資料亦即最後尾資料,包含有均非為前述要求酬載資料及前述對應錯誤訂正資料的任一者時,將前述最後尾資料儲存在前述快取區域。
  9. 如申請專利範圍第1項之記憶體控制裝置,其中,前述指令輸出部係將相當於至少管路處理中的時槽1個份的時間的時間設為前述延遲時間。
  10. 如申請專利範圍第1項之記憶體控制裝置,其中,前述記憶體控制裝置係具有複數快取區域,前述快取判定部係判定2個以上的讀出候補位址之中的任一者的位址的資料是否在前述複數快取區域的任一者的快取區域快取完畢或預定被快取。
TW102101434A 2012-11-05 2013-01-15 Memory control device TWI475383B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/078628 WO2014068789A1 (ja) 2012-11-05 2012-11-05 メモリ制御装置

Publications (2)

Publication Number Publication Date
TW201418980A TW201418980A (zh) 2014-05-16
TWI475383B true TWI475383B (zh) 2015-03-01

Family

ID=50626752

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102101434A TWI475383B (zh) 2012-11-05 2013-01-15 Memory control device

Country Status (6)

Country Link
US (1) US9715427B2 (zh)
JP (1) JP5797342B2 (zh)
CN (1) CN104769558B (zh)
DE (1) DE112012007102B4 (zh)
TW (1) TWI475383B (zh)
WO (1) WO2014068789A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326142B (zh) * 2015-06-17 2019-05-21 群联电子股份有限公司 缓冲存储器存取方法、存储器控制器与存储器存储装置
WO2017131648A1 (en) * 2016-01-27 2017-08-03 Hewlett Packard Enterprise Development Lp Adaptive request management
US10713750B2 (en) * 2017-04-01 2020-07-14 Intel Corporation Cache replacement mechanism
CN111881068B (zh) * 2020-06-30 2024-06-04 上海思朗科技有限公司 多入口的全相联的高速缓冲存储器及数据管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03132852A (ja) * 1989-10-19 1991-06-06 Pfu Ltd バス非同期制御方式
TW200901199A (en) * 2007-02-28 2009-01-01 Toshiba Kk Memory controller and semiconductor device
TW201230043A (en) * 2011-01-14 2012-07-16 Mstar Semiconductor Inc Electronic device, method for controlling memory thereof and associated computer-readable storage medium
JP2012137944A (ja) * 2010-12-27 2012-07-19 Mitsubishi Electric Corp メモリアクセス装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0588987A (ja) 1991-09-25 1993-04-09 Hitachi Ltd バツフア記憶装置
JPH05233471A (ja) 1992-02-21 1993-09-10 Toshiba Corp マイクロプロセッサ及びそれを使用したデータ処理装置
JPH0773114A (ja) 1993-09-01 1995-03-17 Nec Corp 宇宙用デジタル計算機のメモリ制御回路
JPH07146825A (ja) 1993-11-22 1995-06-06 Okuma Mach Works Ltd メモリシステム
JPH1040165A (ja) * 1996-07-22 1998-02-13 Oki Data:Kk データ読み出し方法およびリードバッファ
JPH1198462A (ja) 1997-09-19 1999-04-09 Hitachi Ltd データ再生装置
US6748486B2 (en) * 2001-01-04 2004-06-08 International Business Machines Corporation Method, system, and data structures for superimposing data records in a first data format to memory in a second data format
JP2003044354A (ja) * 2001-07-26 2003-02-14 Matsushita Electric Ind Co Ltd メモリ制御装置
JP2004038705A (ja) 2002-07-05 2004-02-05 Toshiba Corp メモリ制御装置およびメモリアクセス方法
JP2006185162A (ja) * 2004-12-27 2006-07-13 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びその制御方法
US8214600B2 (en) * 2005-02-10 2012-07-03 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domains
US20080034132A1 (en) 2006-08-01 2008-02-07 Nec Electronics Corporation Memory interface for controlling burst memory access, and method for controlling the same
JP2008059565A (ja) 2006-08-01 2008-03-13 Nec Electronics Corp バーストメモリアクセスを制御するメモリインターフェース装置及びその制御方法
JP4750889B2 (ja) 2007-06-20 2011-08-17 富士通株式会社 キャッシュメモリ制御装置、およびパイプライン制御方法
JP5380102B2 (ja) * 2009-02-16 2014-01-08 株式会社東芝 マイクロプロセッサ
CN102754089B (zh) * 2010-02-09 2016-01-20 三菱电机株式会社 传送控制装置、存储器控制装置、以及具有上述传送控制装置的plc
JP5623677B2 (ja) 2012-06-28 2014-11-12 三菱電機株式会社 リードリクエスト処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03132852A (ja) * 1989-10-19 1991-06-06 Pfu Ltd バス非同期制御方式
TW200901199A (en) * 2007-02-28 2009-01-01 Toshiba Kk Memory controller and semiconductor device
JP2012137944A (ja) * 2010-12-27 2012-07-19 Mitsubishi Electric Corp メモリアクセス装置
TW201230043A (en) * 2011-01-14 2012-07-16 Mstar Semiconductor Inc Electronic device, method for controlling memory thereof and associated computer-readable storage medium

Also Published As

Publication number Publication date
JP5797342B2 (ja) 2015-10-21
US20150186208A1 (en) 2015-07-02
WO2014068789A1 (ja) 2014-05-08
DE112012007102B4 (de) 2022-04-28
CN104769558B (zh) 2017-07-21
DE112012007102T5 (de) 2015-07-16
JPWO2014068789A1 (ja) 2016-09-08
CN104769558A (zh) 2015-07-08
US9715427B2 (en) 2017-07-25
TW201418980A (zh) 2014-05-16

Similar Documents

Publication Publication Date Title
US7925804B2 (en) FIFO device and method of storing data in FIFO buffer
TWI475383B (zh) Memory control device
JP5666722B2 (ja) メモリ・インターフェース
JP4966404B2 (ja) メモリ制御装置、記憶装置、及びメモリ制御方法
US20150363205A1 (en) Implementing out of order processor instruction issue queue
US8793435B1 (en) Load miss result buffer with shared data lines
US9620215B2 (en) Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode
US7508836B2 (en) Data processing apparatus and method for handling transactions
US9767054B2 (en) Data transfer control device and memory-containing device
JP7493311B2 (ja) バスシステムおよびその制御方法
JP4990262B2 (ja) バッファ装置
KR20190112020A (ko) 데이터 처리
US10255103B2 (en) Transaction handling
TWI492237B (zh) Read request processing device
JP4019056B2 (ja) リードリクエスト調停制御システム及びその方法
JP4882116B2 (ja) バッファ制御装置およびバッファ制御方法
US12019572B2 (en) Bridging module, data transmission system, and data transmission method
US20230136539A1 (en) Bridging module, data transmission system, and data transmission method
JP6384359B2 (ja) 分散共有メモリを有する情報処理装置、方法、および、プログラム
JP2019200592A (ja) メモリ制御回路、出力回路、メモリ制御回路の制御方法および出力回路の制御方法
JP5338452B2 (ja) メモリ管理システム、メモリ管理方法及びプログラム
JP2010272029A (ja) アクセス制御回路
JP2020071729A (ja) 処理フレームワーク連携装置、処理フレームワーク連携方法および処理フレームワーク連携プログラム
JP2012173847A (ja) バス調停装置およびバス調停方法
JP2011065451A (ja) フォルトトレラントコンピュータシステム及びデータ管理方法