CN100416494C - 显示控制器读取系统存储器中的存储数据的方法 - Google Patents
显示控制器读取系统存储器中的存储数据的方法 Download PDFInfo
- Publication number
- CN100416494C CN100416494C CNB031101712A CN03110171A CN100416494C CN 100416494 C CN100416494 C CN 100416494C CN B031101712 A CNB031101712 A CN B031101712A CN 03110171 A CN03110171 A CN 03110171A CN 100416494 C CN100416494 C CN 100416494C
- Authority
- CN
- China
- Prior art keywords
- data
- reading
- page
- memory
- storage
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种显示控制器读取系统存储器中所存储数据的方法,该方法包含:使用存储控制器来设定块容量限制值;使存储控制器根据块容量限制值将与预定读取顺序相对应的多个存储器读取指令划分为多个指令段,其中每一个指令段的相应的多个存储器读取指令所要读取的存储数据的总量不大于块容量限制值;和当指令段中的多个存储器读取指令是用来读取存储器装置中N页上的数据时,就使用该存储控制器来调整多个存储器读取指令的读取顺序,以便使驱动存储器装置仅需执行(N-1)次页面切换。
Description
技术领域
本发明提供了一种读取存储器装置中的数据的方法,并特别涉及一种显示控制器读取系统存储器中的数据的方法。
背景技术
随着多媒体技术发展,图像输出已逐渐成为电脑装置的重要工作,也就是说显卡(graphics card)不仅要进行简单的2D图像处理,还必须能进行复杂的3D图像数据的运算。参照图1,图1为已知电脑装置10的功能框图。电脑装置10包含中央处理器12、北桥电路14、南桥电路16、绘图芯片18、绘图存储器20、显示装置22、系统存储器24以及输入装置26。中央处理器12用来控制电脑装置10的整体运行,北桥电路14用来协调高速外设(例如绘图芯片18与系统存储器24)与中央处理器12之间的信号传递,南桥电路16用来协调低速外设(例如输入装置26)的信号传输,并经北桥电路14进一步访问高速外设。绘图芯片18用来对显示数据进行处理,并由绘图存储器20来存储该显示数据,而绘图芯片18还将该显示数据输出到显示装置以便输出图像画面。此外,系统存储器24用来暂存电脑装置10的数据与程序,例如可将操作系统、常驻程序以及运算数据等装入系统存储器24,此外,北桥电路14中的存储控制器(memory controller)15控制对系统存储器24的存取操作。通常,对于绘图芯片18而言,其可使用图形加速端口(accelerated graphics port,AGP)接口或周边元件互连(peripheal component interconnect,PCI)接口来读取系统存储器24中所装入的运算数据,例如3D图像运算所需的结构(texture)数据。与周边元件互连接口相比,图形加速端口接口可快速地读取系统存储器24,因此随着3D图像运算的普遍运用,图形加速端口接口已逐渐被绘图芯片18所采用,以便提高3D图像运算的效率。
参照图2,图2为已知图形加速端口接口与已知周边元件互连接口之间的数据传输示意图,由上而下分别代表周边元件互连接口与图形加速端口接口。对于周边元件互连接口而言,在绘图芯片18连接到周边元件互连接口后,如果绘图芯片18输出读取指令A1以便经该周边元件互连接口读取系统存储器24中所存储的数据D1,那么绘图芯片18会占据该周边元件互连接口的总线(bus),直到系统存储器24完成对数据D1的检索,并经该总线输出至绘图芯片18后,绘图芯片18才会释放总线,这时,另一外设(例如输入装置26)才可使用该周边元件互连接口的总线,也就是说,在完成对数据D1的检索后,另一外设才可输出存取指令A2以便经该周边元件互连接口读取系统存储器24中所记录的数据D2。如图2所示,从绘图芯片18输出读取指令A1到该外设接收到所需的数据D1所需的时间为L1,也就是在该时段L1中,该周边元件互连接口的总线由绘图芯片18占用,而无法由其他装置使用;相反地,对于图形加速端口接口而言,它是使用流水线(pipeline)方式来读取数据,也就是绘图芯片18可使用图形加速端口接口的总线输出读取指令A1以便读取系统存储器24中的数据D1,然而在系统存储器24完成对数据D1的检索之前,绘图芯片18可随即输出读取指令A2、A3、A4、A5以便读取系统存储器24中的数据D2、D3、D4、D5,因此如图2所示,在绘图芯片18输出读取指令A1、A2、A3、A4、A5后,系统存储器24以流水线方式逐一处理读取指令A1、A2、A3、A4、A5,并将所检索的数据D1、D2、D3、D4、D5回传至绘图芯片18。因此在操作时间相同的情况下,当绘图芯片18使用已知周边元件互连接口的总线来读取系统存储器24时,就会因该总线的空闲时间(例如L1)而造成读取效率不高,然而,若绘图芯片18使用已知的图形加速端口接口,则可拥有较佳的数据处理效率。
一般而言,存储控制器15是用来控制系统存储器24的数据写入操作与数据读取操作,且存储控制器15使用队列(queue)来存储多个读取指令,也就是根据该队列中的读取指令的执行顺序来检索系统存储器24中所存储的数据。参照图3,图3为图1所示的系统存储器24的数据读取时序图。由上而下分别代表控制指令、输出数据和时间。若绘图芯片18连续输出读取指令RA1、RA2、RB1以便读取系统存储器24中相应的数据D1、D2、D3,其中数据D1、D2存储在同一行(row),也就是同一页面(page)A上,而数据D3存储在另一行,也就是另一页面B上。存储控制器15的队列中依次记录读取指令RA1、RA2、RB1,因此其执行顺序依次为读取指令RA1,读取指令RA2,以及读取指令RB1,因此在时间1T时,存储控制器15执行控制指令ActA,以便打开系统存储器24中的页面A,也就是打开(turn on)与页面A相应的所有存储单元以便存取在该页面A中的存储单元中所记录的数据。在时间2T时,存储控制器15执行读取指令RA1,若数据D1、D2、D3的比特长度为24个字节(byte),且系统存储器24需要3T的时间来完成24个字节的读取,因此系统存储器24在时间4T~7T期间输出相应的数据D1。在时间5T时,存储控制器15执行读取指令RA2,因此当数据D1在时间7T完成输出时,由于该页面A仍保持打开状态,因此根据已知突发方式(burst mode),系统存储器24可随即在时间7T~10T中检索数据D2。由于数据D3是存储在页面B而非页面A中,因此在存储控制器15执行读取指令RB 1以便读取页面B上的数据D3前,必须执行关闭(precharge)页面A且激活(activate)页面B的操作,也就是在时间8T时,存储控制器15执行控制指令PreA以关闭页面A,而在时间9T时,执行控制指令ActB以便激活页面B。当系统存储器24的页面B被顺利打开并随后进行数据的读取操作后,存储控制器15于时间10T时执行读取指令RB1,同样,系统存储器24在时间12T~15T中开始检索数据D3。
如上所述,虽然绘图芯片18可以使用流水线方式将多个读取指令连续输出到存储控制器15中以便读取系统存储器24,然而在数据的读取操作期间,当两条读取指令分别读取不同页面上的数据时,系统存储器24必须进行关闭页面的操作(例如PreA)与激活页面的操作(例如ActA、ActB),所以上述关闭页面的操作与打开页面的操作会造成系统存储器24在数据读取过程中产生延迟时间(如图3所示的时段L),换句话说,当该多个读取指令用于分别读取多个页面上的存储数据时,存储控制器15必须控制系统存储器24在各页面间不断地进行切换,所以当已知图形加速端口接口的总线在将数据传输到绘图芯片18时,会因为上述系统存储器24的延迟时间而使该总线等待接收系统存储器24的输出数据,因此使得已知图形加速端口接口的总线的数据传输效率不佳。
发明内容
因此本发明的主要目的在于提供一种显示控制器读取系统存储器的存储数据的方法,以便解决上述问题。
本发明的权利要求提供了一种电脑系统的数据读取方法,该电脑系统包含存储控制器,其用来执行多个存储器读取指令,该多个存储器读取指令是由该电脑系统的数据处理装置按预定的存取顺序逐一传输到该存储控制器以便读取在该电脑装置的存储器装置中所存储的数据,该方法包含:使用该存储控制器来设定块容量限制值;使该存储控制器根据该块容量限制值和该预定读取顺序,将与该预定读取顺序相对应的多个存储器读取指令划分为多个指令段,其中每一指令段的相应的多个存储器读取指令所要读取的存储数据的总量不大于该块容量限制值;和根据与属于同一指令段的多个存储器读取指令相对应的存储数据在该存储器装置中所属的页面,使该存储控制器先执行与该指令段中所有属于相同页面的存储数据相对应的存储器读取指令,再执行该指令段中非存取该页面的多个存储器读取指令,该多个存储器读取指令是存取对应同一页面的存储数据。
本发明的权利要求还提供了一种存储控制器读取存储器装置所存储的数据的方法,该存储控制器执行多个存储器读取指令,该多个存储器读取指令按预定的读取顺序读取在该存储器装置中存储的数据,该方法至少包含:使用该存储控制器来设定块容量限制值;使该存储控制器根据该块容量限制值和该预定读取顺序,将相应的该多个存储器读取指令划分为多个指令段,其中每一指令段的相应的多个存储器读取指令所要读取的存储数据的总量不大于该块容量限制值;和根据与属于同一指令段的多个存储器读取指令相对应的存储数据在该存储器装置中所属的页面,使该存储控制器先执行与该指令段中所有属于相同页面的存储数据相对应的存储器读取指令,再执行该指令段中与该页面不同、然而却属于相同页面的存储数据所对应的存储器读取指令。
附图说明:
图1是已知电脑装置的功能框图;
图2是已知图形加速端口接口与已知周边元件互连接口的数据传输示意图;
图3是图1所示的系统存储器的数据读取时序图;
图4是根据本发明的数据读取方法来重排读取指令的示意图。
附图标号说明
10电脑装置 12中央处理器
14北桥电路 16南桥电路
18绘图芯片 20绘图存储器
22显示装置 24系统存储器
26输入装置
具体实施方式
参照图1和图4,图4是根据本发明的数据读取方法来重排(reorder)读取指令的示意图。由上而下分别代表未重新排序的队列Q′和重新排序后的队列Q″,此外,队列Q位于存储控制器15中,其用来暂存绘图芯片18所输出的读取指令,且存储控制器15依次执行队列Q中的读取指令以便读取系统存储器24中的数据。如图4所示,绘图芯片18依次输出读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4来读取系统存储器24中的数据,因此读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4依次记录在队列Q中的队列单元(queue entry)QE1、QE2、QE3、QE4、QE5、QE6、QE7、QE8、QE9、QE10、QE11、QE12内。注意:队列单元QE1中所记录的读取指令是第一个被执行的读取指令,而队列单元QE12中所记录的读取指令是最后一个被执行的读取指令,且读取指令A1、A2、A3读取的是系统存储器24的页面A,读取指令B1、B2、B3读取的是系统存储器24的页面B,而读取指令C1、C2、C3读取的是系统存储器24的页面C。在本实施例中,为存储控制器15设定了块容量限制值,其用来划分该未重新排序的队列Q,举例来说,若该块容量限制值被设定为32*64比特(也就是32个4倍字长(quadword)),由队列单元QE1开始,累计读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4所要读取的系统存储器24中的数据量,那么便可根据该块容量限制值将队列单元QE1、QE2、QE3、QE4、QE5、QE6、QE7、QE8、QE9、QE10、QE11、QE 12和相应的读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4划分为多个指令段,例如读取指令A1、B1、C1、A2、B2、C2所读取的系统存储器24中的数据总和不大于32*64比特,而读取指令A1、B1、C1、A2、B2、C2、A3所读取的系统存储器24中的数据总和大于32*64比特,因此队列单元QE1、QE2、QE3、QE4、QE5、QE6和相应的读取指令A1、B1、C1、A2、B2、C2被划分为第一指令段,同样地,队列单元QE7、QE8、QE9、QE10、QE11、QE12和相应的读取指令A3、B3、C3、A4、B4、C4被可划分为第二指令段。
下面将描述根据本发明的数据读取方法来对读取指令进行重排的随后操作。首先进行重新排序队列Q′中的第一指令段中的读取指令A1、B1、C1、A2、B2、C2的操作,由于已知队列单元QE1是队列Q′的开始端,所以队列单元QE1所记录的读取指令A1不会被改动,也就是在队列Q″中,队列单元QE1仍存储读取指令A1。然后在队列Q′的第一指令段中搜索与读取指令A1一样用来读取系统存储器24的页面A的任何读取指令,在本实施例中,队列单元QE4所存储的读取指令A2也读取系统存储器24的页面A,因此将读取指令A2的执行顺序调整到紧跟在读取指令A1之后,也就是在队列Q″中,队列单元QE2中所存储的是读取指令A2。由于在队列Q′的第一指令段中,排列在队列单元QE4之后的队列单元QE5、QE6中所存储的读取指令B2、C2并不是用于读取系统存储器24的页面A的读取指令,因此已完成了对队列Q′的第一指令段中用于读取系统存储器24的页面A的所有读取指令A1、A2进行重新排序的操作。如上所述,尚未对读取指令B1、C1、B2、C2进行重新排序的操作,而读取指令B1是记录在队列Q′的队列单元QE2中,并具有较高的执行优先权(queue priority),因此将读取指令B1的执行顺序调整到紧跟在读取指令A2之后,也就是在队列Q″中,队列单元QE3是用来存储读取指令B 1。然后在队列Q′的第一指令段中搜索与读取指令B1一样用于读取系统存储器24的页面B的任何读取指令,在本实施例中,队列Q′的队列单元QE5中所存储的读取指令A2也读取系统存储器24的页面B,因此也将读取指令B2的执行顺序调整到紧跟在读取指令B1之后,也就是在队列Q″中,队列单元QE4中存储的是读取指令B2,由于在队列Q′的第一指令段中,排列在队列单元QE5后的队列单元QE6中所存储的读取指令C2不是用于读取系统存储器24的页面B的读取指令,因此已完成了对队列Q′的第一指令段中用于读取系统存储器24的页面B的所有读取指令B1、B2进行重新排序的操作。由于尚未对仅剩的读取指令C1、C2进行重新排序的操作,且读取指令C1被记录在队列Q′的队列单元QE3中,且具有较高的执行优先权,因此将读取指令C1的执行顺序调整到紧跟在读取指令B1之后,也就是在队列Q″中,队列单元QE5用来存储读取指令C1。然后在队列Q′的第一指令段中搜索与读取指令C1一样用于读取系统存储器24的页面C的任何读取指令,在本实施例中,队列Q′的队列单元QE6中所存储的读取指令C2也读取系统存储器24的页面C,因此也将读取指令C2的执行顺序调整到紧跟在读取指令C1之后,也就是在队列Q″中,队列单元QE6中所存储的是读取指令C2,此时,已完成了对队列Q′的第一指令段中的所有读取指令A1、B1、C1、A2、B2、C2进行重新排序的操作,也就是在与重新排序后的队列Q′相对应的队列Q″中,队列单元QE1、QE2、QE3、QE4、QE5、QE6中依次记录了读取指令A1、A2、B1、B2、C1、C2。
根据与上述相同的操作原理来对随后的队列Q′的第二指令段中的读取指令A3、B3、C3、A4、B4、C4进行重新排序的操作。注意,在队列Q″中,最后一个队列单元QE6记录的是读取指令C3、且读取指令C3用来读取系统存储器24的页面C,因此在对队列Q′的第二指令段进行重新排序的操作时,首先在队列Q′的第二指令段中搜索读取系统存储器24的页面C的任何读取指令,队列Q′的队列单元QE7、QE8中所记录的读取指令A3、B3并不是用于读取系统存储器24的页面C的读取指令,然而在随后的队列Q′的队列单元QE9中所记录的读取指令C3是读取系统存储器24的页面C的读取指令,因此将读取指令C3的执行顺序调整到紧跟在读取指令C2之后,也就是在队列Q″中,队列单元QE7所存储的是读取指令C3。然后在队列Q′的第二指令段中搜索与读取指令C3一样用来读取系统存储器24的页面C的任何读取指令。由于队列Q″的第一指令段中的最后一个队列单元QE6与队列Q″的第二指令段中的第一个队列单元QE7所记录的读取指令C2、C3一样是用来读取同一页面C,因此当完成了队列Q″的第一指令段的数据读取操作时,在队列Q″的第二指令段开始执行时,便不必进行任何切换页面的操作,因而就提高了数据读取的效率。在本实施例中,队列Q′的队列单元QE12中所存储的读取指令C4也读取系统存储器24的页面C,因此也将读取指令C4的执行顺序调整到紧跟在读取指令C3之后,也就是在队列Q″中,队列单元QE8所存储的是读取指令C4,由于在队列Q′的第二指令段中,读取指令C4被记录在最后一个队列单元QE12中,因此已完成了对队列Q′的第二指令段中用于读取系统存储器24的面C的所有读取指令C3、C4进行重新排序的操作。如上所述,尚未对读取指令A3、B3、A4、B4进行重新排序的操作,而读取指令A3被记录在队列Q′的队列单元QE7中并具有较高的执行优先权,因此将读取指令A3的执行顺序调整到紧跟在读取指令C4之后,也就是在队列Q″中,队列单元QE9用来存储读取指令A3。然后在队列Q′的第二指令段中搜索与读取指令A3一样用来读取系统存储器24的页面A的任何读取指令,在本实施例中,队列Q′的队列单元QE10中所存储的读取指令A4也是用来读取系统存储器24的页面A的读取指令,因此也将读取指令A4的执行顺序调整到紧跟在读取指令A3之后,也就是在队列Q″中,队列单元QE10所存储的是读取指令A4,由于在队列Q′的第二指令段中,排列在队列单元QE10后的队列单元QE11中所存储的读取指令B4并不适用于读取系统存储器24的页面A的读取指令,因此已完成了对队列Q′的第二指令段中用于读取系统存储器24的页面A的所有读取指令A3、A4进行重新排序的操作。由于尚未对读取指令B3、B4进行重新排序的操作,且读取指令B3被记录在队列Q′的队列单元QE8中、且具有较高的执行优先权,因此将读取指令B3的执行顺序调整到紧跟在读取指令A4之后,也就是在队列Q″中,队列单元QE11用来存储读取指令B3。然后在队列Q′的第二指令段中搜索与读取指令B3一样用来读取系统存储器24的页面B的任何读取指令,在本实施例中,队列Q′的队列单元QE11中所存储的读取指令B4也是用来读取系统存储器24的页面B的读取指令,因此也将读取指令B4的执行顺序调整到紧跟在读取指令B3之后,也就是在队列Q″中,队列单元QE12所存储的是读取指令B4。此时,已完成了对队列Q′的第二指令段中的所有读取指令A3、B3、C3、A4、B4、C4进行重新排序的操作,也就是在与重新排序后的队列Q′后相对应的队列Q″中,队列单元QE7、QE8、QE9、QE10、QE11、QE12中依次记录了读取指令C3、C4、A3、A4、B3、B4。
如本领域人员所知的,绘图芯片18按依次(in-order)存取方式,经图形加速端口接口读取系统存储器24,也就是绘图芯片18依次输出读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4,来依次分别读取系统存储器24中的数据,因此,存储控制器15也必须根据读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4的接收次序,来将与读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4相对应的数据回传到绘图芯片18,举例来说,若读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4分别读取系统存储器24中的存储数据DATA1、DATA2、DATA3、DATA4、DATA5、DATA6、DATA7、DATA8、DATA9、DATA10、DATA11、DATA12,那么不管存储控制器15实际以何种次序执行读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4,存储控制器15最后必须根据存储数据DATA1~DATA12的次序将上述存储数据DATA1~DATA12回传至绘图芯片18。所以,当读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4的执行次序改变时,必然会造成绘图芯片18等待存储控制器15回传数据,如图4所示,在未重新排序的队列Q′中,读取指令B1被记录在队列单元QE2中,所以当存储控制器15根据队列Q′来执行读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4时,在完成读取指令A1后就会执行读取指令B1。然而,在已重新排序的队列Q″中,读取指令B1被记录在队列单元QE3中,所以当存储控制器15根据队列Q″来执行读取指令A1、A2、B1、B2、C1、C2、C3、C4、A3、A4、B3、B4时,读取指令B 1就必须等到完成读取指令A1、A2后才会被执行,也就是当绘图芯片18接收到由存储控制器15执行读取指令A1所回传的存储数据DATA1后,绘图芯片18必须等待存储控制器15执行用于读取存储数据DATA4的读取指令A2的操作时间。注意,如本领域人员所知的,存储控制器15会先将存储数据DATA4记录在缓冲器(buffer)中,也就是存储数据DATA4不会被立即回传到绘图芯片18,然后,在存储控制器15执行读取指令B1后才将相应的存储数据DATA2回传到绘图芯片18。同样,对于读取指令C1而言,它被记录在队列Q″的队列单元QE5中,也就是当绘图芯片18接收到存储控制器15执行读取指令B1所回传的存储数据DATA2后,绘图芯片18必须等待存储控制器15执行用于读取存储数据DATA5的读取指令B2的操作时间,且存储控制器15也先将存储数据DATA5记录在该缓冲器中,而不会将存储数据DATA5立即回传到绘图芯片18,然后,在存储控制器15执行读取指令C1后,才将相应的存储数据DATA3回传到绘图芯片18。由于该缓冲器存储有存储数据DATA4、DATA5,所以存储控制器15可随即读取该缓冲器,以便将存储数据DATA4和存储数据DATA5依次传送到绘图芯片18。
比较图4所示的未重新排序的队列Q′和重新排序后的队列Q″,在第一指令段中,在队列Q′中,读取指令B1、C1被记录在队列单元QE2、QE3中,而在重新排序后的队列Q″中,读取指令B1、C1被记录在队列单元QE3、QE5中。由于队列单元QE3的执行优先权低于队列单元QE2,且队列单元QE5的执行优先权低于队列单元QE3,所以在存储控制器15执行重新排序后的队列Q″时,绘图芯片18必须等待存储控制器15以便获得所要的存储数据DATA2、DATA3。因此,为了避免绘图芯片18因为等待数据而严重地影响其执行效率,根据本发明的数据读取方法使用块容量限制值以便调整执行重新排序的读取指令的数量,也就是当该块容量限制值为32*64比特时,对于最差情况(worst case),例如读取指令A3被记录在队列Q′的第二指令段中的队列单元QE7中,重新排列后却被记录在重新排序后的队列Q″的第二指令段中的队列单元QE12中,不考虑系统存储器24的进行页面切换的操作时间,根据本发明的数据读取方法可使绘图芯片18等待数据的时间不会大于系统存储器24检索32*64比特的数据量的时间,换句话说,根据本发明的数据读取方法通过设定适当的块容量限制值来控制绘图芯片18等待数据的时间,也就是可调整绘图芯片18,使之拥有最佳的执行效率。还可根据系统存储器24当时的忙碌(busy)程度,来将块容量限制值动态调整为适当的值,举例来说,当存储器处于忙碌状态时,可将块调大以便减少被关闭的页的数目,反之,可将块调小或维持原有的设定。此外,虽然根据本发明的数据读取方法会造成绘图芯片18在等待数据的过程中空闲(idle),然而,在队列中的读取指令被重新排序后,却可大幅降低系统存储器24进行页面切换的操作时间,举例来说,对于未重新排序的队列Q′来说,在存储控制器15执行读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4读取系统存储器24中的存储数据DATA1~DATA12时,系统存储器24必须执行11次页面切换的操作,如本领域人员所知的,该页面切换的操作包含关闭页面和打开另一页面的操作,因此必定会造成系统存储器24的数据检索效率不佳,而本实施例则将读取指令A1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4划分为第一、二指令段,并在第一、二块中进行重新排序的操作来产生队列Q″,当存储控制器15根据队列Q″来执行读取指令A1、A2、B1、B2、C1、C2、C3、C4、A3、A4、B3、B4时,系统存储器24仅需执行4次页面切换的操作,所以可大幅增进系统存储器24的数据检索效率。总而言之,虽然对于绘图芯片18来说,根据本发明的数据读取方法会使其空闲以便等待所需的数据,然而,对于系统存储器24而言,根据本发明的数据读取方法可大幅提高其数据检索效率,换句话说,系统存储器24的数据检索效率的提高的同时可补偿绘图芯片18因为等待所需的数据所需的时间。注意,在本实施例中,该排序方法是应用于显示控制器为读取系统存储器而输出的读取指令,然而,根据本发明的数据读取方法也可应用于其他数据处理装置(例如中央处理器)对该系统存储器进行数据读取的操作中,也可达到提升整体数据读取效率的目的,这些均属本发明的范畴。
与已知技术相比,根据本发明的数据读取方法使用块容量限制值来将队列中的多个读取指令划分为多个指令段,其中使用该块容量限制值来限制绘图芯片在最差情况下所要等待的时间,因此可避免由于重排多个读取指令的执行顺序而造成的该绘图芯片本身的运算效率的恶化,此外,若该指令段中的读取指令用来读取系统存储器中的N页,则根据本发明的数据读取方法重排该指令段中的读取指令的执行顺序,以便使在重排后的读取指令被执行时,该系统存储器仅需执行(N-1)次页面切换操作。总而言之,根据本发明的数据读取方法可提升该绘图芯片读取该系统存储器的执行效率,并进一步提高该绘图芯片的运算效率。
以上所述的仅是本发明的优选实施例,所有根据本发明的权利要求书所做的同等变化与修改都应属本发明专利的保护范围。
Claims (16)
1. 一种电脑系统的数据读取方法,该电脑系统包含存储控制器,其用来执行多个存储器读取指令,该多个存储器读取指令是由该电脑系统的数据处理装置按预定的读取顺序逐一传输到该存储控制器以便读取在该电脑系统的存储器装置中所存储的数据,该方法包含:
使用该存储控制器来设定块容量限制值;
使该存储控制器根据该块容量限制值和该预定读取顺序,将与该预定读取顺序相对应的多个存储器读取指令划分为多个指令段,其中每一指令段的相应的多个存储器读取指令所要读取的存储数据的总量不大于该块容量限制值;和
根据与属于同一指令段的多个存储器读取指令相对应的存储数据在该存储器装置中所属的页面,使该存储控制器先执行与该指令段中所有属于相同页面的存储数据相对应的存储器读取指令,再执行该指令段中非读取该页面的存储数据的多个存储器读取指令,该非读取该页面的存储数据的多个存储器指令是读取属于同一页面的存储数据的指令。
2. 如权利要求1所述的数据读取方法,还包含:
若与下一指令段中的存储器读取指令相对应的存储数据在该存储器装置中所属的页面和与前一指令段的最后一个存储器读取指令相对应的存储数据的页面相同,就使该存储控制器先执行与在该下一指令段中的所有属于该页面的存储数据相对应的存储器读取指令,再执行与在该下一指令段中的与该页面不同、然而却属于相同页面的存储数据相对应的存储器读取指令。
3. 如权利要求1所述的数据读取方法,其中该存储控制器使用队列来存储该多个存储器读取指令。
4. 如权利要求1所述的数据读取方法,其中该存储控制器读取该存储器装置的数据以便将其传输到显示控制器。
5. 如权利要求4所述的数据读取方法,其中该显示控制器经该电脑系统的图形加速端口总线与该存储控制器电连接。
6. 如权利要求4所述的数据读取方法,其中该显示控制器是显卡。
7. 如权利要求1所述的数据读取方法,其中该存储器装置是该电脑系统的系统存储器。
8. 如权利要求1所述的数据读取方法,其中该存储控制器是根据该预定的读取顺序逐一将相应的存储数据回传到显示控制器。
9. 一种存储控制器读取存储器装置所存储的数据的方法,该存储控制器执行多个存储器读取指令,该多个存储器读取指令按预定的读取顺序读取在该存储器装置中存储的数据,该方法至少包含:
使用该存储控制器来设定块容量限制值;
使该存储控制器根据该块容量限制值和该预定读取顺序,将相应的该多个存储器读取指令划分为多个指令段,其中每一指令段的相应的多个存储器读取指令所要读取的存储数据的总量不大于该块容量限制值;和
根据与属于同一指令段的多个存储器读取指令相对应的存储数据在该存储器装置中所属的页面,使该存储控制器先执行与该指令段中所有属于相同页面的存储数据相对应的存储器读取指令,再执行该指令段中与该页面不同、然而却属于相同页面的存储数据所对应的存储器读取指令。
10. 如权利要求9所述的方法,还包含:
若与下一指令段中的存储器读取指令相对应的存储数据在该存储器装置中所属的页面和与前一指令段的最后一个存储器读取指令相对应的存储数据的页面相同,就使该存储控制器先执行与在该下一指令段中的所有属于该页面的存储数据相对应的存储器读取指令,再执行与在该下一指令段中的与该页面不同、然而却属于相同页面的存储数据相对应的存储器读取指令。
11. 如权利要求9所述的方法,其中该存储控制器使用队列来存储该多个存储器读取指令。
12. 如权利要求9所述的方法,其中该存储控制器读取该存储器装置的数据以便将其传输到显示控制器。
13. 如权利要求12所述的方法,其中该显示控制器经一电脑系统的图形加速端口总线与该存储控制器电连接。
14. 如权利要求12所述的方法,其中该显示控制器是显卡。
15. 如权利要求9所述的方法,其中该存储器装置是一电脑系统的系统存储器。
16. 如权利要求9所述的方法,其中该存储控制器是根据该预定的读取顺序逐一将相应的存储数据回传到显示控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031101712A CN100416494C (zh) | 2003-04-15 | 2003-04-15 | 显示控制器读取系统存储器中的存储数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031101712A CN100416494C (zh) | 2003-04-15 | 2003-04-15 | 显示控制器读取系统存储器中的存储数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1445660A CN1445660A (zh) | 2003-10-01 |
CN100416494C true CN100416494C (zh) | 2008-09-03 |
Family
ID=27814541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031101712A Expired - Lifetime CN100416494C (zh) | 2003-04-15 | 2003-04-15 | 显示控制器读取系统存储器中的存储数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100416494C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270181B (zh) * | 2010-06-01 | 2013-10-02 | 炬力集成电路设计有限公司 | 一种内存访问方法和装置 |
KR20190089365A (ko) * | 2018-01-22 | 2019-07-31 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
CN109614049B (zh) * | 2018-12-11 | 2022-03-25 | 湖南国科微电子股份有限公司 | 闪存控制方法、闪存控制器及闪存系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228500A (en) * | 1978-03-27 | 1980-10-14 | Honeywell Information Systems Inc. | Command stacking apparatus for use in a memory controller |
JPH08115399A (ja) * | 1994-10-19 | 1996-05-07 | Toshiba Corp | メモリカード |
JPH10111798A (ja) * | 1996-10-07 | 1998-04-28 | Fujitsu Ltd | 情報処理装置 |
JPH10222422A (ja) * | 1997-02-04 | 1998-08-21 | Hitachi Ltd | キャッシュメモリ制御方式 |
JP2000172553A (ja) * | 1998-12-11 | 2000-06-23 | Hitachi Ltd | データ処理装置 |
JP2001195050A (ja) * | 1999-11-05 | 2001-07-19 | Mitsubishi Electric Corp | グラフィックアクセラレータ |
US6336154B1 (en) * | 1997-01-09 | 2002-01-01 | Hewlett-Packard Company | Method of operating a computer system by identifying source code computational elements in main memory |
US6377267B1 (en) * | 1990-07-27 | 2002-04-23 | Hitachi, Ltd. | Graphic processing apparatus and method |
US20030033573A1 (en) * | 2001-08-09 | 2003-02-13 | Hitachi, Ltd. | Memory card and memory controller |
-
2003
- 2003-04-15 CN CNB031101712A patent/CN100416494C/zh not_active Expired - Lifetime
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228500A (en) * | 1978-03-27 | 1980-10-14 | Honeywell Information Systems Inc. | Command stacking apparatus for use in a memory controller |
US6377267B1 (en) * | 1990-07-27 | 2002-04-23 | Hitachi, Ltd. | Graphic processing apparatus and method |
JPH08115399A (ja) * | 1994-10-19 | 1996-05-07 | Toshiba Corp | メモリカード |
JPH10111798A (ja) * | 1996-10-07 | 1998-04-28 | Fujitsu Ltd | 情報処理装置 |
US6336154B1 (en) * | 1997-01-09 | 2002-01-01 | Hewlett-Packard Company | Method of operating a computer system by identifying source code computational elements in main memory |
JPH10222422A (ja) * | 1997-02-04 | 1998-08-21 | Hitachi Ltd | キャッシュメモリ制御方式 |
JP2000172553A (ja) * | 1998-12-11 | 2000-06-23 | Hitachi Ltd | データ処理装置 |
JP2001195050A (ja) * | 1999-11-05 | 2001-07-19 | Mitsubishi Electric Corp | グラフィックアクセラレータ |
US20030033573A1 (en) * | 2001-08-09 | 2003-02-13 | Hitachi, Ltd. | Memory card and memory controller |
Also Published As
Publication number | Publication date |
---|---|
CN1445660A (zh) | 2003-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5289584A (en) | Memory system with FIFO data input | |
EP0343769B1 (en) | Apparatus and method for accessing a page mode memory in a computer system | |
US6874044B1 (en) | Flash drive/reader with serial-port controller and flash-memory controller mastering a second RAM-buffer bus parallel to a CPU bus | |
US5594923A (en) | Direct memory access controller comprising a multi-word data register for high speed continuous data transfer | |
CN103559146B (zh) | 一种提高NAND flash控制器读写速度的方法 | |
CN1337718A (zh) | 存储器控制技术 | |
EP1540485A2 (en) | Out of order dram sequencer | |
CN109669888A (zh) | 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法 | |
US6131151A (en) | Processing high-speed digital datastreams with reduced memory | |
CN1113365C (zh) | 实现数据的读修改写操作的方法和电路以及半导体存储器 | |
GB2430053A (en) | Accessing external memory from an system on a chip integrated circuit | |
EP1026595B1 (en) | Memory interface device and method for accessing memories | |
US20050033875A1 (en) | System and method for selectively affecting data flow to or from a memory device | |
CN109313605A (zh) | 基于处理器的系统中的存储器中的经压缩的存储器行的基于优先级的存储和存取 | |
CA2316122A1 (en) | Dram data storage and movement for network processors using dual dram storage | |
CN110442321A (zh) | 一种预取fifo电路及方法 | |
CN108401467A (zh) | 存储设备、芯片及存储设备的控制方法 | |
CN100416494C (zh) | 显示控制器读取系统存储器中的存储数据的方法 | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及系统 | |
US7228393B2 (en) | Memory interleaving | |
US20200073595A1 (en) | Flash memory controller capable of improving IOPS performance and corresponding method | |
US6760273B2 (en) | Buffer using two-port memory | |
CN118402001A (zh) | 同步存储器的读时钟开始和停止 | |
WO2003040926A1 (en) | Bandwidth enhancement for uncached devices | |
US8484411B1 (en) | System and method for improving access efficiency to a dynamic random access memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20080903 |
|
CX01 | Expiry of patent term |