CN107818192A - 存储器事务层级模型模拟方法及系统 - Google Patents
存储器事务层级模型模拟方法及系统 Download PDFInfo
- Publication number
- CN107818192A CN107818192A CN201611107634.2A CN201611107634A CN107818192A CN 107818192 A CN107818192 A CN 107818192A CN 201611107634 A CN201611107634 A CN 201611107634A CN 107818192 A CN107818192 A CN 107818192A
- Authority
- CN
- China
- Prior art keywords
- order
- output time
- command queue
- memory transaction
- memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004088 simulation Methods 0.000 title claims abstract description 40
- 238000003860 storage Methods 0.000 claims description 11
- 238000011084 recovery Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 20
- 230000009471 action Effects 0.000 description 19
- 230000000694 effects Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000005611 electricity Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
一种存储器事务层级模型模拟方法及系统。存储器事务层级模型模拟方法用以模拟输出至少一命令至一存储器。存储器包括数个存储区。各个存储区对应于一命令输出时间表。存储器事务层级模型模拟方法包括以下步骤:等待一事件。判断命令输出时间表的其中之一是否需回溯更新(recovery)。若命令输出时间表的其中之一需回溯更新,则根据一已输出命令队列(TMP queue)回溯更新此命令输出时间表。依据一欲执行命令队列(command queue)输出至少一命令至存储器及并记录此至少一命令于已输出命令队列。更新部分的命令输出时间表,其余的命令输出时间表维持不变。
Description
技术领域
本发明是有关于一种事务层级模型模拟方法及系统,且特别是有关于一种存储器事务层级模型模拟方法及系统。
背景技术
适应系统设计复杂度不断提高,ITRS(International Technology Roadmap forSemiconductors)建议采用电子系统层级设计方法进行架构探索与分析,以改善系统性能。在此设计方法中,将提升设计抽象层级,例如是依序从晶体管、栅极、缓存器级提升至事务层级。
事务层级模型的其中一项设计重点在于模拟效率。适应于系统复杂度的提高,研究人员均致力于提出各种创新的模拟方法来提升模拟效率。
发明内容
本发明是有关于一种存储器事务层级模型模拟方法及系统,其利用部分更新命令输出时间表(bank status table)的方式,使得存储器事务层级模型模拟方法的效率大幅增进。
根据本发明的一实施例,提出一种存储器事务层级模型模拟方法。存储器事务层级模型模拟方法用以模拟输出至少一命令至一存储器。存储器包括数个存储区(bank)。各个存储区对应于一命令输出时间表(bank status table)。存储器事务层级模型模拟方法包括以下步骤:等待一事件(event)。判断命令输出时间表的其中之一是否需回溯更新(recovery)。若有命令输出时间表需回溯更新,则根据一已输出命令队列(TMP queue)回溯更新此命令输出时间表。依据一欲执行命令队列(bank status table)输出至少一命令至存储器及并记录至少一命令于已输出命令队列。更新部分的命令输出时间表,其余的命令输出时间表维持不变。
根据本发明的另一实施例,提出一种存储器事务层级模型模拟系统。存储器事务层级模型模拟系统用以模拟输出至少一命令至一存储器。存储器包括数个存储区(bank)。各个存储区对应于一命令输出时间表(bank status table)。存储器事务层级模型模拟系统包括一回溯更新判断单元、一回溯单元、一输入与输出单元、一队列管理单元及一部分更新单元。回溯更新判断单元用以判断命令输出时间表是否需回溯更新(recovery)。若有命令输出时间表需回溯更新,则回溯单元根据一已输出命令队列(TMP queue)回溯更新此命令输出时间表。输入与输出单元依据一欲执行命令队列(command queue)输出至少一命令至存储器。队列管理单元用以记录该至少一命令于已输出命令队列。部分更新单元更新部分的命令输出时间表,其余的命令输出时间表维持不变。
为了对本发明的上述及其他方面有更好的了解,下文特举优选实施例,并配合所附附图,作详细说明如下:
附图说明
图1绘示存储器的架构示意图。
图2绘示请求事件(request event)与命令的关系图。
图3绘示依据一实施例的以周期为更新基础(cycle based)的存储器事务层级模型模拟方法的示意图。
图4绘示依据另一实施例的以周期为更新基础的存储器事务层级模型模拟方法的示意图。
图5A绘示存储器事务层级模型模拟系统的方块图。
图5B绘示存储器事务层级模型模拟方法的流程图。
图6绘示以周期为更新基础的存储器事务层级模型模拟方法的流程图。
图7绘示依据一实施例的以请求事件为更新基础(event based)的存储器事务层级模型模拟方法的示意图。
图8绘示以请求事件为更新基础的存储器事务层级模型模拟系统的方块图。
图9绘示以请求事件为更新基础的存储器事务层级模型模拟方法的流程图。
图10绘示依据另一实施例的以请求事件为更新基础的存储器事务层级模型模拟方法的示意图。
图11绘示以请求事件为更新基础的存储器事务层级模型模拟方法的流程图。
图12绘示以窗口为更新基础(window based)的存储器事务层级模型模拟方法的流程图。
【符号说明】
100、200:存储器事务层级模型模拟系统
110:输入与输出单元
120:队列管理单元
130:部分更新单元
140:回溯更新判断单元
150:回溯单元
160:同步单元
270:冲突侦测单元
280:调度单元
A、A0、A1、A2:启动命令(active command)
B0:第0存储区
B1:第1存储区
B2:第2存储区
B3:第3存储区
B15:第15存储区
MR:存储器
P:预充电命令(pre-charge command)
Q1:欲执行命令队列(command queue)
Q2:已输出命令队列(TMP queue)
R:读取命令(read command)
RF:暂存列(row buffer)
RP、RP0、RP1、RP2:读取与预充电命令(read with pre-charge command)
R’、R0’、R1’:读取请求事件(read request event)
S110、S120、S130、S140、S150、S160、S1701、S180、S190、S210、S220、S230、S240、S250、S251、S260、S261、S270、S280、S290、S291、S310、S320、S330、S340、S350、S351、S360、S370、S380、S390、S391、S410、S420、S430、S450、S460、S470、S480、S490、S491、S910、S920、S930、S940、S950:流程步骤
T0、T1、T2:命令输出时间表(bank status table)
W:写入命令(write command)
WP、WP0、WP1、WP2:写入与预充电命令(write with pre-charge command)
W’、W0’、W1’、W2’:写入请求事件(write request event)
具体实施方式
请参照图1,其绘示存储器MR的架构示意图。存储器MR例如是动态存取存储器(DRAM)。本实施例所述的存储器MR可以是实际/实体上的存储器,也可以是存储器的软/硬件模型。存储器MR包含数个存储区(bank),例如是第0存储区(bank 0)B0、第1存储区(bank1)B1、第2存储区(bank 2)B2、第3存储区(bank 3)B3、…、第15存储区(bank 15)B15。在各个存储区(例如是第1存储区B0~第15存储区B15)中,存在数行(column)及数列(row)的存储单元。第1存储区B0~第15存储区B15另有一暂存列(row buffer)RF。在存储器MR进行写入(write)时,将欲写入的数据暂存于暂存列RF中,接着再转送到指定的存储单元。同样地,在存储器MR进行读取(read)时,将欲读取的数据暂存于暂存列RF中,接着再予以输出。
由于存储器MR的写入或读取动作均需要通过暂存列RF来进行,故需进一步提供对暂存列RF的操作控制。请参照图2,其绘示请求事件(request event)与命令(command)的关系图。当接收到对存储器MR进行读取动作的读取请求事件R’(read request event)时,根据读取请求事件R’,需执行启动命令(active command)A、读取命令(read command)R及预充电命令(pre-charge command)P。启动命令A用以开启暂存列RF的存取路径。读取命令R用以进行读取的动作。预充电命令P用以把暂存列RF的值存回第1存储区B0~第15存储区B15,以供下次使用。根据一命令顺序限制,启动命令A的运行时间早于读取命令R,读取命令R的运行时间早于预充电命令P。在另一命令顺序限制中,预充电命令P可省略。
在另一实施例中,当接收到对存储器MR进行读取动作的读取请求事件R’时,根据读取请求事件R’,可执行启动命令A、读取与预充电命令(read with pre-charge command)RP。启动命令A用以开启暂存列RF的存取路径。读取与预充电命令RP用以进行读取及清空暂存列RF的动作。根据命令顺序限制,启动命令A的运行时间早于读取与预充电命令RP。
当接收到对存储器MR进行写入动作的写入请求事件W’时,根据写入请求事件W’,需执行启动命令A、写入命令(write command)W及预充电命令P。启动命令A用以开启暂存列RF的存取路径。写入命令W用以进行写入的动作。预充电命令P用以清空暂存列RF,以供下次使用。根据一命令顺序限制,启动命令A的运行时间早于写入命令W,写入命令W的运行时间早于预充电命令P。在另一命令顺序限制中,预充电命令P可省略。
在另一实施例中,当接收到对存储器MR进行写入动作的写入请求事件W’时,根据写入请求事件W’,可执行启动命令A、写入与预充电命令(write with pre-chargecommand)WP。启动命令A用以开启暂存列RF的存取路径。写入与预充电命令WP用以进行写入及清空暂存列RF的动作。根据一命令顺序限制,启动命令A的运行时间早于写入与预充电命令WP。
以下说明的读取请求事件R’,是以执行启动命令A及读取与预充电命令RP为例作说明;写入请求事件W’,是以执行启动命令A及写入与预充电命令WP为例作说明。
如上所述,每一存储区具有一暂存列RF。当第0存储区B0收到读取请求事件R0’且第1存储区B1也收到读取请求事件R1’时,对于第0存储区B0需执行启动命令A0及读取与预充电命令RP0,对于第1存储区B1需要执行启动命令A1及读取与预充电命令RP1。由于第0存储区B0的暂存列RF与第1存储区R1的暂存列RF相互独立,故读取与预充电命令RP1并不一定要等待读取与预充电命令RP0执行完毕才可执行。只要满足互不影响的一限制条件下,即可适当地安排启动命令A0、读取与预充电命令RP0、启动命令A1及读取与预充电命令RP1等四个命令的执行顺序,以增进系统效率。
请参照下表一,其示例性表示命令运行时间限制条件。举例而言,根据表一第3行所述,执行启动命令A后,在同一存储区欲执行读取与预充电命令RP(或读取命令R)时,需间隔4周期以上。根据表一第7行所述,执行读取与预充电命令RP后,在同一存储区欲执行读取与预充电命令RP(或读取命令R)时,需间隔7周期以上。根据表一第14行所述,执行启动命令A后,在不同存储区欲执行启动命令A时,需间隔3周期以上。其余内容如表一所示。未列于表一的情况,则需间隔1周期以上即可。
表一
本发明所述的存储器事务层级模型模拟方法可以是以周期为更新基础(cyclebased)的存储器事务层级模型模拟方法、以窗口为更新基础(window based)的存储器事务层级模型模拟方法、或以请求事件为更新基础(event based)的存储器事务层级模型模拟方法。以下先说明以周期为更新基础(cycle based)的存储器事务层级模型模拟方法。请参照图3,其绘示依据一实施例的以周期为更新基础(cycle based)的存储器事务层级模型模拟方法的示意图。以周期为更新基础(cycle based)的存储器事务层级模型模拟方法可以模拟接收事件,并输出对应于接收事件的命令至存储器。在图3的实施例中,在第10周期收到读取请求事件R1’。读取请求事件R1’为请求对第1存储区B1的读取动作。根据读取请求事件R1’,对第1存储区B1的启动命令A1、读取与预充电命令RP1存储于欲执行命令队列(command queue)Q1中。在本实施例中,欲执行命令队列(command queue)Q1存储待执行的命令。
在第10周期时,由于欲执行命令队列Q1所存储的命令仅相关于第1存储区R1,且未输出任何命令,故只需更新第1存储区B1的命令输出时间表(bank status table)T1,而无需更新第0存储区B0的命令输出时间表T0及第2存储区B2的命令输出时间表T2,也无需更新其他存储区的命令输出时间表。在本实施例中,命令输出时间表T1记录了可以对第1存储区B1输出各个命令(例如启动命令A1、读取与预充电命令RP1或写入与预充电命令WP1)的最早时间,命令输出时间表T0及命令输出时间表T2的内容可依此类推,在此不再赘述。图3以实线表示需更新的命令输出时间表T1,并以虚线表示无需更新的命令输出时间表T0、T2。为方便理解,图3仍显示出无需要更新的命令输出时间表T0、T2的内容。但在实际实施过程中,在第10周期的时间点,不需要更新的命令输出时间表T0、T2并未存储任何内容。
根据上表一,前一时间未执行任何命令,故于第1存储区R1欲执行任何命令时,仅需间隔1周期以上即可。因此,在命令输出时间表T1,启动命令A1可输出时间为第11(10+1)周期,读取与预充电命令RP1可输出时间为第11(10+1)周期,写入与预充电命令WP1可以输出的时间为第11(10+1)周期。
在第10周期时,欲执行命令队列Q1记录着启动命令A1、读取与预充电命令RP1,根据命令输出时间表T1的查询结果,两者的可输出时间均为第11周期。根据命令顺序限制,启动命令A1的运行时间早于读取与预充电命令RP1,故在第11周期可优先执行的是启动命令A1。
接着,时间来到第11周期时,输出启动命令A1、将启动命令A1从欲执行命令队列Q1中移除,并将启动命令A1及其输出时间存储于已输出命令队列(TMP queue)Q2。在第11周期更进一步收到写入请求事件W0’。写入请求事件W0’为请求对第0存储区B0的写入动作。根据写入请求事件W0’,对第0存储区B0的启动命令A0、写入与预充电命令WP0将存储于欲执行命令队列Q1中。因此,欲执行命令队列Q1存储了未输出的读取与预充电命令RP1、启动命令A0、写入与预充电命令WP0。
在第11周期时,由于欲执行命令队列Q1所存储的命令仅相关于第0存储区B0及第1存储区B1,且输出的命令仅相关于第1存储区B1,故只需更新第0存储区B0的命令输出时间表T0及第1存储区B1的命令输出时间表T1,而无需更新第2存储区B2的命令输出时间表T2,也无需更新其他存储区的命令输出时间表。
根据上表一的第14行,前一时间已执行启动命令A1,故欲执行启动命令A0时,需间隔3周期以上。因此,在命令输出时间表T0,启动命令A0可输出时间为第14(11+3)周期。欲执行读取与预充电命令RP0及写入与预充电命令WP0则未列于表一,故欲执行读取与预充电命令RP0及写入与预充电命令WP0时仅需间隔1周期以上。因此,在命令输出时间表T0,读取与预充电命令RP0可输出时间为第12(11+1)周期,写入与预充电命令WP0可以输出的时间为第12(11+1)周期。
根据上表一的第5行,前一时间已执行启动命令A1,故欲执行启动命令A1时,需间隔18周期以上。因此,在命令输出时间表T1,启动命令A1可输出时间为第29(11+18)周期。根据上表一的第3行,欲执行读取与预充电命令RP1,需间隔4周期以上。因此,于命令输出时间表T1,读取与预充电命令RP1可输出时间为第15(11+4)周期。根据上表一的第4行,欲执行写入与预充电命令WP1,需间隔4周期以上。于命令输出时间表T1,写入与预充电命令WP1可以输出的时间为第15(11+4)周期。
在第11周期时,欲执行命令队列Q1记录着读取与预充电命令RP1、启动命令A0、写入与预充电命令WP0,根据命令输出时间表T0、T1的查询结果,三者的可输出时间的最早者为写入与预充电命令WP0的第12周期,其次为启动命令A0的第14周期,再其次为读取与预充电命令RP1的第15周期。根据命令顺序限制,启动命令A0的运行时间早于写入与预充电命令WP0,故在第14周期可优先执行的是启动命令A0。
接着,时间来到第14周期时,输出启动命令A0、将启动命令A0从欲执行命令队列Q1中移除、并将启动命令A0及其输出时间存储于已输出命令队列Q2。因此,欲执行命令队列Q1存储了未输出的读取与预充电命令RP1、写入与预充电命令WP0;已输出命令队列Q2存储了启动命令A1、启动命令A0。
在第14周期时,由于欲执行命令队列Q1所存储的命令仅相关于第0存储区B0及第1存储区B1,且输出的命令仅相关于第0存储区B0,故只需更新第0存储区B0的命令输出时间表T0及第1存储区B1的命令输出时间表T1,而无需更新第2存储区B2的命令输出时间表T2,也无需更新其他存储区的命令输出时间表。
根据上表一的第5行,前一时间已执行启动命令A0,故欲执行启动命令A0时,需间隔18周期以上。因此,在命令输出时间表T0,启动命令A0可输出时间为第32(14+18)周期。根据上表一的第3行,欲执行读取与预充电命令RP0,需间隔4周期以上。因此,在命令输出时间表T0,读取与预充电命令RP0可输出时间为第18(14+4)周期。根据上表一的第4行,欲执行写入与预充电命令WP0,需间隔4周期以上。于命令输出时间表T0,写入与预充电命令WP0可以输出的时间为第18(14+4)周期。
根据上表一的第14行,前一时间已执行启动命令A0,故欲执行启动命令A1时,需间隔3周期以上。第14周期间隔3周期为第17周期,早于命令输出时间表T1原本所记录的第29周期。因此,在命令输出时间表T1,启动命令A1可输出时间仍为第29周期。根据上表一,欲执行的读取与预充电命令RP1未列示于表一,故仅需间隔1周期以上。因此,在命令输出时间表T1,读取与预充电命令RP1可输出时间为第15(14+1)周期。根据上表一,欲执行的写入与预充电命令WP1未列示于表一,故仅需间隔1周期以上。因此,在命令输出时间表T1,写入与预充电命令WP1可以输出的时间为第15(14+1)周期。
在第14周期时,欲执行命令队列Q1记录着读取与预充电命令RP1、写入与预充电命令WP0,根据命令输出时间表T0、T1的查询结果,两者的可输出时间的最早者为读取与预充电命令RP1的第15周期。根据命令顺序限制,读取与预充电命令RP1、写入与预充电命令WP0两者没有顺序限制,故可在第15周期执行可输出时间最早的读取与预充电命令RP1。
接着,时间来到第15周期时,输出读取与预充电命令RP1、将读取与预充电命令RP1从欲执行命令队列Q1中移除、并将读取与预充电命令RP1及其输出时间存储于已输出命令队列Q2。因此,欲执行命令队列Q1存储了未输出的写入与预充电命令WP0;已输出命令队列Q2存储了启动命令A1、启动命令A0、读取与预充电命令RP1。
在第15周期时,由于欲执行命令队列Q1所存储的命令仅相关于第0存储区B0,且输出的命令仅相关于第1存储区B1,故只需更新第0存储区B0的命令输出时间表T0及第1存储区B1的命令输出时间表T1,而无需更新第2存储区B2的命令输出时间表T2,也无需更新其他存储区的命令输出时间表。
根据上表一,前一时间已执行读取与预充电命令RP1,欲执行的启动命令A0未列示于表一,因此仅需间隔1周期以上。第15周期间隔1周期为第16周期,早于命令输出时间表T0原本所记录的第32周期。因此,在命令输出时间表T0,启动命令A0可输出时间仍为第32周期。根据上表一的第15行,欲执行读取与预充电命令RP0,需间隔2周期以上。第15周期间隔2周期为第17周期,早于命令输出时间表T0原本所记录的第18周期。因此,在命令输出时间表T0,读取与预充电命令RP0可输出时间仍为第18周期。根据上表一的第16行,欲执行写入与预充电命令WP0,需间隔4周期以上。在命令输出时间表T0,写入与预充电命令WP0可以输出的时间为第19(15+4)周期。
根据上表一的第6行,前一时间已执行读取与预充电命令RP1,欲执行启动命令A1,需间隔7周期以上。第15周期间隔7周期为第22周期,早于命令输出时间表T1原本所记录的第29周期。因此,在命令输出时间表T1,启动命令A1可输出时间仍为第29周期。根据上表一的第7行,欲执行读取与预充电命令RP1,需间隔7周期以上。因此,在命令输出时间表T1,读取与预充电命令RP1可输出时间为第22(15+7)周期。根据上表一的第8行,欲执行写入与预充电命令WP1,需间隔7周期以上。在命令输出时间表T1,写入与预充电命令WP1可以输出的时间为第22(15+7)周期。
在第15周期时,欲执行命令队列Q1仅记录着写入与预充电命令WP0,根据命令输出时间表T0的查询结果,写入与预充电命令WP0的可输出时间为第19周期。
接着,时间来到第19周期时,输出写入与预充电命令WP0、将写入与预充电命令WP0从欲执行命令队列Q1中移除、并将写入与预充电命令WP0及其输出时间存储于已输出命令队列Q2。因此,欲执行命令队列Q1未存储任何命令;已输出命令队列Q2存储了启动命令A1、启动命令A0、读取与预充电命令RP1、写入与预充电命令WP0。
在第19周期时,由于欲执行命令队列Q1未存储任何命令,且输出的命令仅相关于第0存储区B0,故只需更新第0存储区B0的命令输出时间表T0,而无需更新第1存储区B1的命令输出时间表T1及第2存储区B2的命令输出时间表T2,也无需更新其他存储区的命令输出时间表。
根据上表一的第9行,前一时间已执行写入与预充电命令WP0,欲执行的启动命令A0需间隔14周期以上。因此,在命令输出时间表T0,启动命令A0可输出时间为第33(19+14)周期。根据上表一的第10行,欲执行的读取与预充电命令RP0需间隔14周期以上。因此,在命令输出时间表T0,读取与预充电命令RP0可输出时间为第33(19+14)周期。根据上表一的第11行,欲执行的写入与预充电命令WP0需间隔14周期以上。因此,在命令输出时间表T0,写入与预充电命令WP0可以输出的时间为第33(19+14)周期。
接着,时间来到第21周期时,进一步收到写入请求事件W2’。写入请求事件W2’为请求对第2存储区B2的写入动作。根据写入请求事件W2’,对第2存储区B2的启动命令A2、写入与预充电命令WP2存储于欲执行命令队列Q1中。因此,欲执行命令队列Q1存储了启动命令A2、写入与预充电命令WP2。
在第21周期时,由于欲执行命令队列Q1所存储的命令仅相关于第2存储区B2,且没有输出任何命令,故只需更新第2存储区B2的命令输出时间表T2,而无需更新第0存储区B0的命令输出时间表T0及第1存储区的命令输出时间表T1,也无需更新其他存储区的命令输出时间表。
在最近一次有对任何命令输出时间表进行更新动作中(第19周期),第2存储区B2的命令输出时间表T2并未进行更新,故需要通过已输出命令队列Q2进行回溯更新。也就是说,依据已输出命令队列(TMP queue)Q2已存储的启动命令A1、启动命令A0、读取与预充电命令RP1、写入与预充电命令WP0将虚线的各个命令输出时间表T2回溯建立起来,以得到第21周期的命令输出时间表T2。
如上所述,在各个时间点并未针对所有的存储区更新所有的命令输出时间表,而只有更新部分的命令输出时间表。在有需要时,未更新的命令输出时间表可以根据已输出命令队列Q2来进行回溯更新。如此一来,可以大幅增进存储器事务层级模型模拟方法的效率。
另外,请再参照图4,其绘示依据另一实施例的以周期为更新基础的存储器事务层级模型模拟方法的示意图。图4的实施例与图3的实施例不同之处在于写入请求事件W2’是在第40周期才接收到。
时间来到第40周期时,进一步收到写入请求事件W2’。写入请求事件W2’为请求对第2存储区B2的写入动作。根据写入请求事件W2’,对第2存储区B2的启动命令A2、写入与预充电命令WP2存储于欲执行命令队列Q1中。因此,欲执行命令队列Q1存储了启动命令A2、写入与预充电命令WP2。
在第40周期时,由于欲执行命令队列Q1所存储的命令仅相关于第2存储区B2,且没有输出任何命令,故只需更新第2存储区B2的命令输出时间表T2,而无需更新第0存储区B0的命令输出时间表T0及第1存储区的命令输出时间表T1,也无需更新其他存储区的命令输出时间表。
在最近一次有对任何命令输出时间表进行更新动作中(第19周期),第2存储区B2的命令输出时间表T2并未进行更新,故需要通过已输出命令队列Q2进行回溯更新。请参照表一,所需间隔周期数最大值为18,此数值即为相依时间间隔(dependence interval)。也就是说,间隔周期数在18以内,都可能具有相依性,而需要依据表一进行回溯更新。
换句话说,已输出命令队列Q2内所存储的命令需保留的周期数为相依时间间隔(即18),超过相依时间间隔之后,则可删除,而无保留的必要。
在第40周期时,第40周期与前次更新的第19周期已超过相依时间间隔(即18),故已输出命令队列Q2的所有命令均已被删除。因此,在第40周期时,可直接视为前一时间未执行任何命令,故在第2存储区B2欲执行任何命令时,仅需间隔1周期以上即可。因此,在命令输出时间表T2,启动命令A2可输出时间为第41(40+1)周期,读取与预充电命令RP2可输出时间为第41(40+1)周期,写入与预充电命令WP2可以输出的时间为第41(40+1)周期。
也就是说,已输出命令队列Q2可以适当地进行缩减,即依据相依时间间隔删除已输出命令队列Q2的部分内容,以增进回溯更新命令输出时间表的效率。
请参照图5A,其绘示存储器事务层级模型模拟系统100的方块图。存储器事务层级模型模拟系统100包括一输入与输出单元110、一队列管理单元120、一部分更新单元130、一回溯更新判断单元140、一回溯单元150及一同步单元160。
输入与输出单元110用以输入或输出各种数据,可以包括一总线接口(businterface),例如从属总线接口(slave bus interface),并可选择性的包括请求队列(request queue)及/或响应队列(response queue),请求队列可以接收总线接口传来的请求(request)并将请求存储在请求队列中,响应队列可以存储事务层级模型模拟系统100的响应(response)并将响应传送到总线接口;在一实施例中,输入与输出单元110也可以包括输出命令至存储器的一界面(interface);在另一实施例中,输入与输出单元110可以包括一传输电路。队列管理单元120用以管理欲执行命令队列Q1及已输出命令队列Q2。部分更新单元130用以对部分的命令输出时间表进行更新的动作。回溯更新判断单元140用以判断是否有需要回溯更新的命令输出时间表。回溯单元150用以对命令输出时间表进行回溯更新的动作。同步单元160用以管控更新基础,例如是采用以周期为更新基础、以窗口为更新基础、或以请求事件为更新基础。队列管理单元120、部分更新单元130、回溯更新判断单元140、回溯单元150及同步单元160例如是一芯片、一电路、一电路板或存储数组程序代码的存储装置,或是可由处理器、计算机或服务器执行的程序代码。
以下更搭配流程图说明上述图5A的存储器事务层级模型模拟系统100的运作。请参照图5B,其绘示存储器事务层级模型模拟方法的流程图。在步骤S910中,等待一事件(event)。事件例如是对定时器进行更新的事件、接收到新的请求事件(request event)、同步时间到达、或窗口时间到达。
当事件发生后,在步骤S920中,回溯更新判断单元140判断此些命令输出时间表的其中之一是否需回溯更新(recovery)。
若此些命令输出时间表的其中之一需回溯更新,则进入步骤S930。在步骤S930中,回溯单元150根据已输出命令队列(TMP queue)Q2回溯更新此命令输出时间表。
若没有命令输出时间表需回溯更新,则进入步骤S940。在步骤S940中,输入与输出单元110依据欲执行命令队列(command queue)Q1输出至少一命令至存储器,队列管理单元120并记录此至少一命令于已输出命令队列Q2。
接着,在步骤S950中,部分更新单元130更新部分的命令输出时间表,其余的命令输出时间表维持不变。
上述存储器事务层级模型模拟方法系可以是以周期为更新基础(cycle based)的存储器事务层级模型模拟方法、以请求事件为更新基础(event based)的存储器事务层级模型模拟方法、或以窗口为更新基础(window based)的存储器事务层级模型模拟方法。以下分别说明各种更新基础的存储器事务层级模型模拟方法。本发明虽以流程图说明存储器事务层级模型模拟方法,然而并不限制各步骤的执行顺序。以图5B为例,也可在执行步骤S910后,先执行步骤S940、S950,再执行步骤S920、S930,而后再回到步骤S910。
请参照图6,其绘示以周期为更新基础的存储器事务层级模型模拟方法的流程图。在步骤S110中,等待同步单元160对定时器进行更新的事件,例如等待某一周期的时间到达。
当定时器更新,例如某一周期的时间到达时,在步骤S180中,回溯更新判断单元140判断维持不变的命令输出时间表的其中之一是否需回溯更新。举例来说,在上述图3的第21周期时,收到了写入请求事件W2’。在最近一次有对任何命令输出时间表进行更新动作中(第19周期),第2存储区B2的命令输出时间表T2并未进行更新,故需要进行回溯更新。具体而言,对应于欲执行命令队列Q1且维持不变的命令输出时间表需回溯更新,或者是,对应于输出的命令且维持不变的命令输出时间表需回溯更新。在一实施例中,当定时器更新时,若是收到新的请求事件,可将对应于新的请求事件的命令加入欲执行命令队列Q1。
若维持不变的命令输出时间表皆不需回溯更新,则进入步骤S120。若维持不变的命令输出时间表的其中之一需回溯更新,则进入步骤S190。在步骤S190中,回溯单元150根据已输出命令队列Q2回溯更新此命令输出时间表。具体而言,回溯单元150按照已输出命令队列Q2的命令及/或命令的输出时间依序更新需回溯更新的命令输出时间表。
接着,在步骤S120中,队列管理单元120自欲执行命令队列Q1选择一命令。举例来说,在上述图3的例子中,在进入第14周期时,欲执行命令队列Q1依序记录着读取与预充电命令RP1、启动命令A0、写入与预充电命令WP0。故可优先选择读取与预充电命令RP1。
然后,在步骤S130中,队列管理单元120判断所选择的命令是否能够输出。接续于上例,在进入第14周期时,若步骤S120所选择的命令是读取与预充电命令RP1,则因命令输出时间表T1记录着读取与预充电命令RP1最早需在第15周期才能输出,故所选择的读取与预充电命令RP1无法输出。因此,进入步骤S140。
若所选择的命令不能够输出,则进入步骤S140。在步骤S140中,队列管理单元120判断欲执行命令队列Q1的命令是否皆已选择过。
若欲执行命令队列Q1的命令皆已选择过,则到步骤S110。若欲执行命令队列Q1的命令并非皆已选择过,则回至步骤S120。接续于上例,欲执行命令队列Q1中尚有启动命令A0、写入与预充电命令WP0,故进入步骤S120选择可选择启动命令A0。在步骤S130中,命令输出时间表T0记录着启动命令A0在第14周期可以输出,故所选择的启动命令A0可以输出,而进入步骤S150。
在步骤S150中,输入与输出单元110输出所选择的命令至存储器,队列管理单元120记录此命令及其输出时间于已输出命令队列Q2。
在步骤S160中,若已输出命令队列Q2所存储的命令已超过相依时间间隔,则队列管理单元120删除已输出命令队列Q2的部分内容,以缩减已输出命令队列Q2。详细的说,队列管理单元120删除输出时间与目前时间的间隔大于相依时间间隔的已输出命令队列Q2的命令。
在步骤S170中,部分更新单元130更新部分的命令输出时间表,其余的命令输出时间表维持不变。详细的说,更新对应于欲执行命令队列Q1及目前输出的命令的部分的命令输出时间表。接续于上例,在第14周期时,由于欲执行命令队列Q1所存储的命令仅相关于第0存储区B0及第1存储区B1,且输出的命令仅相关于第0存储区B0,故只需更新第0存储区B0的命令输出时间表T0及第1存储区B1的命令输出时间表T1,而无需更新第2存储区B2的命令输出时间表T2,也无需更新其他存储区的命令输出时间表。
根据上述流程图,步骤S170并未在各个时间点针对所有的存储区更新所有的命令输出时间表,而只有更新部分的命令输出时间表。在步骤S180判断出有需要时,未更新的命令输出时间表可以在步骤S190根据已输出命令队列来进行回溯更新。如此一来,可以大幅增进存储器事务层级模型模拟方法的效率。
请参照图7,其绘示依据一实施例的以请求事件为更新基础(event based)的存储器事务层级模型模拟方法的示意图。图7的实施例是以请求事件来驱动同步动作(RequestDriven)。如图7的上方图表,依据第21周期收到的读取请求事件R0’,启动命令A0、读取与预充电命令RP0排定的预计输出时间分别为第33周期、第37周期。根据上方图表,读取与预充电命令RP0是最后一个命令,其预计输出时间为第37周期。
如图7的下方图表,在第22周期进一步收到写入请求事件W1’。由于第22周期的时间早于上方图表原定的最后一个命令的预计输出时间(即第37周期),故发生了冲突(schedule conflict)。因此,在图7的下方图表中,需要重新排列预计输出时间,而将预计输出时间晚于第22周期的部分进行调整,直到排到写入请求事件W1’的最后一个命令为止。经过调整后,启动命令A1、启动命令A0、写入与预充电命令WP1的预计输出时间分别为第29周期、第33周期、第34周期(读取与预充电命令RP0的预计输出时间由第37周期调整为第42周期)。
请参照图8,其绘示以请求事件为更新基础的存储器事务层级模型模拟系统200的方块图。相较于图5A的存储器事务层级模型模拟系统100,以请求事件为更新基础的存储器事务层级模型模拟系统200还包括一冲突侦测单元270及一调度单元280。冲突侦测单元270用以侦测是否发生冲突。调度单元280用以重新排列预计输出时间。冲突侦测单元270及调度单元280例如是一芯片、一电路、一电路板、或存储数组程序代码的存储装置,或是可由处理器、计算机或服务器执行的程序代码。
以下更搭配流程图说明上述图8的以请求事件为更新基础的存储器事务层级模型模拟系统200的运作。请参照图9,其绘示以请求事件为更新基础的存储器事务层级模型模拟方法的流程图。图9的实施例是以请求事件来驱动同步动作(Request Driven)。在步骤S210中,等待事件。事件可为新的请求事件或同步时间到达(例如时间已到达欲执行命令队列Q1中预计输出时间的最小值)。以图7为例,在第22周期收到了写入请求事件W1’。
当事件发生后,例如收到新的请求事件,队列管理单元120将对应于新的请求事件的命令加入欲执行命令队列Q1,以图7为例,例如收到在第22周期收到了写入请求事件W1’,队列管理单元120将启动命令A1及写入与预充电命令WP1加入欲执行命令队列Q1,在步骤S220中,回溯更新判断单元140判断维持不变的命令输出时间表的其中之一是否需回溯更新。
若有维持不变的命令输出时间表需回溯更新,则进入步骤S230。在步骤S230中,回溯单元150根据已输出命令队列Q2回溯更新此命令输出时间表。
若没有维持不变的命令输出时间表需回溯更新,则直接进入步骤S240。在步骤S240中,冲突侦测单元270依据此请求事件,判断请求事件是否与命令的预计输出时间发生冲突。
若请求事件与命令的预计输出时间发生冲突,则进入步骤S250。在步骤S250中,将已排列的命令送回欲执行命令队列Q1。接续于图7的例子,由于第22周期的时间早于图7的上方图表原订的最后一个命令的预计输出时间(即第37周期),故发生了冲突。因此,在图7的下方图表中,将已排列的命令送回欲执行命令队列Q1(未绘示)。
若请求事件与预计输出时间未发生冲突,则进入步骤S251。在步骤S251中,调度单元280对欲执行命令队列Q1的命令排列预计输出时间。
接着,在步骤S260中,部分更新单元130更新部分的命令输出时间表,其余的命令输出时间表维持不变。
然后,在步骤S261中,判断是否为欲执行命令队列Q1中第一个完整排完命令的请求事件的最后一个命令。
若不是欲执行命令队列Q1中第一个完整排完命令的请求事件的最后一个命令,则回到步骤S251。若为欲执行命令队列Q1中第一个完整排完命令的请求事件的最后一个命令,则进入步骤S270。在本实施例中,调度单元280对欲执行命令队列Q1的命令排列预计输出时间,直到排到欲执行命令队列Q1中第一个完整排完命令的请求事件的最后一个命令为止。例如,在图7的下方图表中,记录着排列启动命令A1、启动命令A0、写入与预充电命令WP1的预计输出时间,在此例中,第一个完整排完命令的请求事件为写入请求事件W1’。需说明的是,若是重新排列后,排列顺序为启动命令A1、启动命令A0、读取与预充电命令RP0,则排到读取与预充电命令RP0为止,在此例中,第一个完整排完命令的请求事件为读取请求事件R0’。在步骤S270中,判断是否接收到另一请求事件或时间已到达欲执行命令队列Q1中预计输出时间的最小值。
若接收到另一请求事件,则回至步骤S220。
若时间已到达欲执行命令队列Q1中预计输出时间的最小值,则进入步骤S280。在步骤S280中,输入与输出单元110输出命令直到欲执行命令队列Q1中第一个完整排完命令的请求事件的最后一个命令输出为止,队列管理单元120记录输出的命令及其输出时间于已输出命令队列Q2。例如,在图7的下方图表中,输出启动命令A1、启动命令A0及写入与预充电命令WP1,并记录启动命令A1、启动命令A0及写入与预充电命令WP1,以及启动命令A1、启动命令A0及写入与预充电命令WP1的输出时间于已输出命令队列Q2。
然后,在步骤S290中,若已输出命令队列Q2所存储的命令已超过相依时间间隔,则队列管理单元120删除已输出命令队列Q2的部分内容,以缩减已输出命令队列Q2。
接着,在步骤S291中,判断欲执行命令队列Q1是否没有任何命令。若欲执行命令队列Q1没有任何命令,则进入步骤S210;若欲执行命令队列Q1存在至少一命令,则进入步骤S220。
根据上述流程图,步骤S260并未针对所有的存储区更新所有的命令输出时间表,而只有更新部分的命令输出时间表。在步骤S220判断出有需要时,未更新的命令输出时间表可以在步骤S230根据已输出命令队列来进行回溯更新。如此一来,可以大幅增进存储器事务层级模型模拟方法的效率。
请参照图10,其绘示依据另一实施例的以请求事件为更新基础的存储器事务层级模型模拟方法的示意图。相较于图7的实施例,图10的实施例是以命令来驱动同步动作(Command Driven)。在命令来驱动同步动作的实施例中,一次仅排定一个命令的预计输出时间。如图10的上方图表,依据第21周期收到的读取请求事件R0’,启动命令A0排定的预计输出时间为第33周期。
如图10的下方图表,在第22周期进一步收到写入请求事件W1’。由于第22周期的时间早于上方图表原定的预计输出时间(即第33周期),故发生了冲突。因此,在图10的下方图表中,需要重新排列预计输出时间,而将预计输出时间晚于第22周期的部分进行调整。经过调整后,启动命令A1的预计输出时间排定为第29周期(读取与预充电命令RP0的预计输出时间则未排定)。
请参照图11,其绘示以请求事件为更新基础的存储器事务层级模型模拟方法的流程图。图11的实施例是以命令事件来驱动同步动作(Command Driven)。在步骤S310中,等待事件,事件可为新的请求事件或同步时间到达(例如时间已到达欲执行命令队列Q1中预计输出时间的最小值)。以图10为例,在第22周期收到了写入请求事件W1’。
当事件发生后,例如收到新的请求事件,队列管理单元120将对应于新的请求事件的命令加入欲执行命令队列Q1,以图10为例,例如收到在第22周期收到了写入请求事件W1’,队列管理单元120将启动命令A1及写入与预充电命令WP1加入欲执行命令队列Q1,在步骤S320中,回溯更新判断单元140判断维持不变的命令输出时间表的其中之一是否需回溯更新。
若有维持不变的命令输出时间表需要回溯更新,则进入步骤S330。在步骤S330中,回溯单元150根据已输出命令队列Q2回溯更新此命令输出时间表。
若没有维持不变的命令输出时间表需要回溯更新,则直接进入步骤S340。在步骤S340中,冲突侦测单元270依据此请求事件,判断请求事件是否与命令的预计输出时间发生冲突。
若请求事件与命令的预计输出时间发生冲突,则进入步骤S350。在步骤S350中,将已排列的命令送回欲执行命令队列Q1。接续于图10的例子,由于第22周期的时间早于图10上方图表原订的预计输出时间(即第33周期),故发生了冲突。因此,将已排列的命令送回欲执行命令队列Q1(未绘示)。
若请求事件与命令的预计输出时间没有发生冲突,则进入步骤S351。在步骤S351中,调度单元280排列欲执行命令队列的一个命令。
接着,在步骤S360中,判断是否接收到另一请求事件或时间已到达欲执行命令队列Q1中预计输出时间的最小值。
若接收到另一请求事件,则回至步骤S320。
若时间已到达欲执行命令队列Q1中预计输出时间的最小值,则进入步骤S370。在步骤S370中,输入与输出单元110输出对应于预计输出时间的最小值的命令至存储器,队列管理单元120记录此命令及其输出时间于已输出命令队列Q2。
然后,在步骤S380中,若已输出命令队列Q2所存储的命令已超过相依时间间隔,则队列管理单元120删除已输出命令队列Q2的部分内容,以缩减已输出命令队列Q2。
接着,在步骤S390中,部分更新单元130更新部分的命令输出时间表,其余的命令输出时间表维持不变。
接着,在步骤S391中,判断欲执行命令队列Q1是否没有任何命令。若欲执行命令队列Q1没有任何命令,则进入步骤S310;若欲执行命令队列Q1存在至少一命令,则进入步骤S320。
根据上述流程图,步骤S390并未针对所有的存储区更新所有的命令输出时间表,而只有更新部分的命令输出时间表。在步骤S320判断出有需要时,未更新的命令输出时间表可以在步骤S330根据已输出命令队列来进行回溯更新。如此一来,可以大幅增进存储器事务层级模型模拟方法的效率。
请参照图12,其绘示以窗口为更新基础(window based)的存储器事务层级模型模拟方法的流程图。图12的实施例是以固定的时间周期数来驱动同步动作。在步骤S410中,等待窗口时间到达的事件,在一实施例中,一个窗口例如是固定的周期数,一个窗口时间例如是固定的周期数的时间,例如一个窗口是20个周期数,则一个窗口时间为20个周期数的时间,窗口时间到达则是每20个周期数的时间到达,例如第20个周期、第40个周期等。在一实施例中,一个窗口是可以动态调整的固定周期数,例如,原先设定一个窗口是20个周期数,但经过一段时间后,可能为了增加精确度,而将一个窗口调小为10个周期数;而另一方面,也可能为了加快模拟速度,而将一个窗口调大为50个周期数。
当窗口时间到达,在步骤S420中,回溯更新判断单元140判断维持不变的命令输出时间表的其中之一是否需回溯更新。在一实施例中,当窗口时间到达,若是收到新的请求事件,可将对应于新的请求事件的命令加入欲执行命令队列Q1。
若有维持不变的命令输出时间表需要回溯更新,则进入步骤S430。在步骤S430中,回溯单元150根据已输出命令队列Q2回溯更新此命令输出时间表。
若没有维持不变的命令输出时间表需要回溯更新,则直接进入步骤S450。
在步骤S450中,调度单元280排列欲执行命令队列的命令。一个窗口时间可能排列一或多个命令,例如一个窗口是20个周期数,若是在第10个周期和第15个周期各可以输出一个命令,则将这两个命令调度在第20个周期。
接着,在步骤S460中,判断窗口时间是否到达。
若窗口时间未到达,则回至步骤S420。
若窗口时间到达,则进入步骤S470。在步骤S470中,输出所有调度在窗口时间的命令,队列管理单元120记录输出的命令及其输出时间于已输出命令队列Q2。
然后,在步骤S480中,若已输出命令队列Q2所存储的命令已超过相依时间间隔,则队列管理单元120删除已输出命令队列Q2的部分内容,以缩减已输出命令队列Q2。
接着,在步骤S490中,部分更新单元130更新部分的命令输出时间表,其余的命令输出时间表维持不变。
接着,在步骤S491中,判断欲执行命令队列Q1是否没有任何命令。若欲执行命令队列Q1没有任何命令,则进入步骤S410;若欲执行命令队列Q1存在至少一命令,则进入步骤S420。
根据上述流程图,步骤S490并未针对所有的存储区更新所有的命令输出时间表,而只有更新部分的命令输出时间表。在步骤S420判断出有需要时,未更新的命令输出时间表可以在步骤S430根据已输出命令队列来进行回溯更新。如此一来,可以大幅增进存储器事务层级模型模拟方法的效率。
综上所述,虽然本发明已以各种实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更改与修饰。因此,本发明的保护范围当视权利要求所界定者为准。
Claims (30)
1.一种存储器事务层级模型模拟方法,其特征在于,用以模拟输出至少一命令至存储器,该存储器包括多个存储区,各该存储区对应于命令输出时间表,该存储器事务层级模型模拟方法包括:
等待事件;
判断该些命令输出时间表的其中之一是否需回溯更新;
若该些命令输出时间表的其中之一需回溯更新,则根据已输出命令队列回溯更新该些命令输出时间表的其中之一;
依据欲执行命令队列输出该至少一命令至该存储器并记录该至少一命令于该已输出命令队列;以及
更新部分的该些命令输出时间表,其余的该些命令输出时间表维持不变。
2.根据权利要求1所述的存储器事务层级模型模拟方法,其中该至少一命令及该至少一命令的输出时间记录于该已输出命令队列。
3.根据权利要求2所述的存储器事务层级模型模拟方法,其中根据该已输出命令队列回溯更新该些命令输出时间表的其中之一的步骤是按照已输出命令队列的该至少一命令及该至少一命令的该至少一输出时间依序更新需回溯更新的该些命令输出时间表的其中之一。
4.根据权利要求1所述的存储器事务层级模型模拟方法,其中在更新部分的该些命令输出时间表的步骤中,对应于该欲执行命令队列及目前输出的该至少一命令的部分的该些命令输出时间表被更新。
5.根据权利要求1所述的存储器事务层级模型模拟方法,其特征在于,还包括:
缩减该已输出命令队列。
6.根据权利要求5所述的存储器事务层级模型模拟方法,其中在缩减该已输出命令队列的步骤中,是依据相依时间间隔删除该已输出命令队列的部分内容。
7.根据权利要求6所述的存储器事务层级模型模拟方法,其中在缩减该已输出命令队列的步骤中,删除输出时间与目前时间的间隔大于该相依时间间隔的该已输出命令队列的该至少一命令。
8.根据权利要求1所述的存储器事务层级模型模拟方法,其中各该至少一命令对应于预计输出时间,该存储器事务层级模型模拟方法还包括:
依据该事件,判断该事件与该至少一预计输出时间是否发生冲突;以及
若该事件与该至少一预计输出时间发生冲突,将该至少一命令送回该欲执行命令队列,并排列该欲执行命令队列中的该至少一命令的该预计输出时间,直到排到该欲执行命令队列中第一个完整排完命令的请求事件的最后一个命令为止。
9.根据权利要求8所述的存储器事务层级模型模拟方法,还包括:
判断时间是否已到达该欲执行命令队列中的该至少一预计输出时间的最小值;以及
若时间已到达该欲执行命令队列的该至少一预计输出时间的最小值,则输出该至少一命令直到该欲执行命令队列中第一个完整排完命令的该请求事件的最后一个命令输出为止。
10.根据权利要求1所述的存储器事务层级模型模拟方法,其中各该至少一命令对应于预计输出时间,该存储器事务层级模型模拟方法还包括:
依据该事件,判断该事件与该至少一预计输出时间是否发生冲突;以及
若该事件与该至少一预计输出时间发生冲突,将该至少一命令送回该欲执行命令队列,并排列该至少一命令的该预计输出时间。
11.根据权利要求10所述的存储器事务层级模型模拟方法,其特征在于,还包括:
判断时间是否已到达该欲执行命令队列中的该至少一预计输出时间的最小值;以及
若时间已到达欲执行命令队列的该至少一预计输出时间的最小值,则输出该至少一命令。
12.根据权利要求1所述的存储器事务层级模型模拟方法,其中各该至少一命令对应于预计输出时间,该存储器事务层级模型模拟方法还包括:
判断时间是否已到达窗口时间;以及
若时间已到达该窗口时间,则输出调度在该窗口时间的所有该至少一命令。
13.根据权利要求1所述的存储器事务层级模型模拟方法,其中判断该些命令输出时间表的其中之一是否需回溯更新的步骤中,对应于该欲执行命令队列且维持不变的该些命令输出时间表的其中之一需回溯更新。
14.根据权利要求1所述的存储器事务层级模型模拟方法,其中判断该些命令输出时间表的其中之一是否需回溯更新的步骤中,对应于输出的该至少一命令且维持不变的该些命令输出时间表的其中之一需回溯更新。
15.根据权利要求1所述的存储器事务层级模型模拟方法,其中该存储器事务层级模型模拟方法为以周期为更新基础的存储器事务层级模型模拟方法、以窗口为更新基础的存储器事务层级模型模拟方法、或以请求事件为更新基础的存储器事务层级模型模拟方法。
16.根据权利要求1所述的存储器事务层级模型模拟方法,其中该欲执行命令队列存储待执行的该至少一命令。
17.一种存储器事务层级模型模拟系统,用以模拟输出至少一命令至存储器,该存储器包括多个存储区,各该存储区对应于命令输出时间表,该存储器事务层级模型模拟系统包括:
回溯更新判断单元,用以判断该些命令输出时间表的其中之一是否需回溯更新;
回溯单元,若该些命令输出时间表的其中之一需回溯更新,则该回溯单元根据已输出命令队列回溯更新该些命令输出时间表的其中之一;
输入与输出单元,依据欲执行命令队列输出该至少一命令至该存储器;
队列管理单元,用以记录该至少一命令于该已输出命令队列;以及
部分更新单元,更新部分的该些命令输出时间表,其余的该些命令输出时间表维持不变。
18.根据权利要求17所述的存储器事务层级模型模拟系统,其中该队列管理单元记录该至少一命令及该至少一命令的输出时间于该已输出命令队列。
19.根据权利要求18所述的存储器事务层级模型模拟系统,其中该回溯单元按照已输出命令队列的该至少一命令及该至少一命令的该至少一输出时间依序更新需回溯更新的该些命令输出时间表的其中之一。
20.根据权利要求17所述的存储器事务层级模型模拟系统,其中该部分更新单元更新对应于该欲执行命令队列及目前输出的该至少一命令的部分的该些命令输出时间表。
21.根据权利要求17所述的存储器事务层级模型模拟系统,其中该队列管理单元还用以缩减该已输出命令队列。
22.根据权利要求21所述的存储器事务层级模型模拟系统,其中该队列管理单元是依据相依时间间隔删除该已输出命令队列的部分内容。
23.根据权利要求22所述的存储器事务层级模型模拟系统,其中该队列管理单元删除输出时间与目前时间的间隔大于该相依时间间隔的该已输出命令队列的该至少一命令。
24.根据权利要求17所述的存储器事务层级模型模拟系统,其中该输入与输出单元还等待事件,各该至少一命令对应于预计输出时间,该存储器事务层级模型模拟系统还包括:
冲突侦测单元,依据该事件,判断该事件与该至少一预计输出时间是否发生冲突;以及
排程单元,若该事件与该至少一预计输出时间发生冲突,将该至少一命令送回该欲执行命令队列,并排列该欲执行命令队列中的该至少一命令的该预计输出时间,直到排到该欲执行命令队列中第一个完整排完命令的请求事件的最后一个命令为止。
25.根据权利要求24所述的存储器事务层级模型模拟系统,其中若时间已到达欲执行命令队列的该至少一预计输出时间的最小值,则该输入与输出单元输出该至少一命令直到该欲执行命令队列中第一个完整排完命令的该请求事件的最后一个命令输出为止。
26.根据权利要求17所述的存储器事务层级模型模拟系统,其中该输入与输出单元还等待事件,各该至少一命令对应于预计输出时间,该存储器事务层级模型模拟系统还包括:
冲突侦测单元,依据该事件,判断该事件与该至少一预计输出时间是否发生冲突;以及
排程单元,若该事件与该至少一预计输出时间发生冲突,将该至少一命令送回该欲执行命令队列,并排列该至少一命令的该预计输出时间。
27.根据权利要求26所述的存储器事务层级模型模拟系统,其中若时间已到达欲执行命令队列的该至少一预计输出时间的最小值,则该输入与输出单元输出该至少一命令。
28.根据权利要求17所述的存储器事务层级模型模拟系统,其中若时间已到达窗口时间,则该输入与输出单元输出调度在该窗口时间的所有该至少一命令。
29.根据权利要求17所述的存储器事务层级模型模拟系统,其中该回溯更新判断单元判定对应于该欲执行命令队列且维持不变的该些命令输出时间表的其中之一需回溯更新。
30.根据权利要求17所述的存储器事务层级模型模拟系统,其中该回溯更新判断单元判定对应于输出的该至少一命令且维持不变的该些命令输出时间表的其中之一需回溯更新。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105129513 | 2016-09-10 | ||
TW105129513A TWI587218B (zh) | 2016-09-10 | 2016-09-10 | 記憶體事務層級模型模擬方法及系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107818192A true CN107818192A (zh) | 2018-03-20 |
CN107818192B CN107818192B (zh) | 2022-01-21 |
Family
ID=59688285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611107634.2A Active CN107818192B (zh) | 2016-09-10 | 2016-12-06 | 存储器事务层级模型模拟方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10365829B2 (zh) |
CN (1) | CN107818192B (zh) |
TW (1) | TWI587218B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102485411B1 (ko) * | 2018-03-02 | 2023-01-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11341063B2 (en) * | 2019-01-31 | 2022-05-24 | Dell Products L.P. | Systems and methods for safely detecting indeterminate states of ranges in a self-encrypting storage resource |
US11775197B2 (en) * | 2021-03-25 | 2023-10-03 | Kyocera Document Solutions Inc. | Single command for reading then clearing dynamic random access memory |
WO2023000212A1 (en) * | 2021-07-21 | 2023-01-26 | Micron Technology, Inc. | Memory command aggregation to improve sequential memory command performance |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0327852A3 (en) * | 1988-02-10 | 1992-03-18 | International Business Machines Corporation | Information handling system |
CN1138205C (zh) * | 1998-08-11 | 2004-02-11 | 英特尔公司 | 以不同等待时间调度指令 |
US7130990B2 (en) * | 2002-12-31 | 2006-10-31 | Intel Corporation | Efficient instruction scheduling with lossy tracking of scheduling information |
CN101685427B (zh) * | 2009-09-02 | 2011-11-02 | 龙芯中科技术有限公司 | 一种根据应用的时间裕量对动态内存调度的装置及方法 |
CN103377695A (zh) * | 2012-04-24 | 2013-10-30 | 三星电子株式会社 | 存储系统、存储器件、存储控制器及操作其的方法 |
CN103810123A (zh) * | 2014-02-18 | 2014-05-21 | 龙芯中科技术有限公司 | 内存控制装置及方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6053948A (en) | 1995-06-07 | 2000-04-25 | Synopsys, Inc. | Method and apparatus using a memory model |
US6970852B1 (en) * | 1999-04-28 | 2005-11-29 | Imx Solutions, Inc. | Methods and apparatus for conducting secure, online monetary transactions |
US20050188275A1 (en) | 2004-02-03 | 2005-08-25 | Maly John W. | Systems and methods for error tracking and recovery in an expectation-based memory agent checker |
US7788078B1 (en) | 2004-02-27 | 2010-08-31 | Synopsys, Inc. | Processor/memory co-exploration at multiple abstraction levels |
US7609567B2 (en) | 2005-06-24 | 2009-10-27 | Metaram, Inc. | System and method for simulating an aspect of a memory circuit |
US8275597B1 (en) | 2008-01-28 | 2012-09-25 | Cadence Design Systems, Inc. | High speed memory simulation |
US8627014B2 (en) | 2008-12-30 | 2014-01-07 | Intel Corporation | Memory model for hardware attributes within a transactional memory system |
US20110307847A1 (en) | 2010-06-10 | 2011-12-15 | Global Unichip Corporation | Hybrid system combining TLM simulators and HW accelerators |
US9015649B2 (en) | 2010-07-19 | 2015-04-21 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method and apparatus for electronic system model generation |
TW201216163A (en) | 2010-10-12 | 2012-04-16 | Ind Tech Res Inst | Memory modeling method and model generator |
TW201220195A (en) | 2010-11-02 | 2012-05-16 | Global Unichip Corp | A method for synchronizing and synthesizing bus transaction traces record in un-timed environment |
TW201224748A (en) * | 2010-12-06 | 2012-06-16 | Ind Tech Res Inst | Transaction level system power estimation method and system |
CN103093016B (zh) | 2011-11-04 | 2016-06-08 | 上海华虹宏力半导体制造有限公司 | 简化存储器后仿网表来实现大容量存储器仿真的方法 |
US8793628B1 (en) | 2013-03-11 | 2014-07-29 | Cadence Design Systems, Inc. | Method and apparatus of maintaining coherency in the memory subsystem of an electronic system modeled in dual abstractions |
US8943449B1 (en) | 2013-07-15 | 2015-01-27 | Cadence Design Systems, Inc. | Method and apparatus of enabling direct memory access into a target system memory modeled in dual abstractions while ensuring coherency |
US9471726B2 (en) | 2013-07-25 | 2016-10-18 | Netspeed Systems | System level simulation in network on chip architecture |
CN103778970A (zh) | 2014-01-24 | 2014-05-07 | 华为技术有限公司 | 闪存存储器工作性能仿真方法和装置 |
TWI614686B (zh) * | 2015-12-15 | 2018-02-11 | 財團法人工業技術研究院 | 系統模擬方法 |
-
2016
- 2016-09-10 TW TW105129513A patent/TWI587218B/zh active
- 2016-12-06 CN CN201611107634.2A patent/CN107818192B/zh active Active
- 2016-12-27 US US15/391,082 patent/US10365829B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0327852A3 (en) * | 1988-02-10 | 1992-03-18 | International Business Machines Corporation | Information handling system |
CN1138205C (zh) * | 1998-08-11 | 2004-02-11 | 英特尔公司 | 以不同等待时间调度指令 |
US7130990B2 (en) * | 2002-12-31 | 2006-10-31 | Intel Corporation | Efficient instruction scheduling with lossy tracking of scheduling information |
CN101685427B (zh) * | 2009-09-02 | 2011-11-02 | 龙芯中科技术有限公司 | 一种根据应用的时间裕量对动态内存调度的装置及方法 |
CN103377695A (zh) * | 2012-04-24 | 2013-10-30 | 三星电子株式会社 | 存储系统、存储器件、存储控制器及操作其的方法 |
CN103810123A (zh) * | 2014-02-18 | 2014-05-21 | 龙芯中科技术有限公司 | 内存控制装置及方法 |
Non-Patent Citations (2)
Title |
---|
MICHAEL THOMPSON 等: "Using simulation-based finite capacity planning and scheduling software to improve cycle time in front end operations", 《PROCEEDINGS OF SEMI ADVANCED SEMICONDUCTOR MANUFACTURING CONFERENCE AND WORKSHOP》 * |
杜学亮: "NAND flash的并行调度算法", 《小型微型计算机系统》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107818192B (zh) | 2022-01-21 |
US10365829B2 (en) | 2019-07-30 |
TWI587218B (zh) | 2017-06-11 |
US20180074702A1 (en) | 2018-03-15 |
TW201810033A (zh) | 2018-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818192A (zh) | 存储器事务层级模型模拟方法及系统 | |
US7827167B2 (en) | Database management system and method including a query executor for generating multiple tasks | |
CN102339343B (zh) | 产生系统模型的方法与在此系统模型中传输数据的方法 | |
US9141740B2 (en) | Methods, systems, and articles of manufacture for implementing full-chip optimization with reduced physical design data | |
US6026219A (en) | Behavioral synthesis links to logic synthesis | |
Zhang et al. | Simulation-based optimization for dynamic resource allocation | |
KR20130101504A (ko) | 스레드-당 및 태그-당 메모리 액세스를 동시에 수행하기 위한 장치 및 방법 | |
JP2007528080A (ja) | タスク実行制御 | |
CN105243033A (zh) | 数据处理方法及电子设备 | |
CN103597460A (zh) | 用于利用存储命令的系统和方法 | |
EP3076309A1 (en) | Programmable logic controller, data collection apparatus, database access method, and database access program | |
CN106133709B (zh) | 用于防止存储器中的存储体冲突的方法和装置 | |
US9804903B2 (en) | Data processing apparatus for pipeline execution acceleration and method thereof | |
JP2012137870A (ja) | アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法 | |
CN103631831B (zh) | 一种数据备份方法及装置 | |
CN109656868A (zh) | 一种cpu与gpu之间的内存数据转移方法 | |
CN103713944B (zh) | 一种内核中线程的处理方法、装置和系统 | |
JPWO2005106713A1 (ja) | 情報処理方法及び情報処理システム | |
CN104142802A (zh) | 存储器控制设备和方法 | |
TW201227295A (en) | Flash memory device and data writing method thereof | |
CN107688634A (zh) | 数据写入方法及装置、电子设备 | |
CN105760317B (zh) | 数据写系统和用于核心处理器的数据写方法 | |
CN107741963A (zh) | 跨集群数据合并方法及装置、电子设备、计算机存储介质 | |
CN107562529A (zh) | 一种业务系统中定时任务的实现方法及装置 | |
JP2006251855A (ja) | スケジュール作成装置、方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |