CN115480706A - 一种执行指令的方法及介质接口控制器 - Google Patents
一种执行指令的方法及介质接口控制器 Download PDFInfo
- Publication number
- CN115480706A CN115480706A CN202211191595.4A CN202211191595A CN115480706A CN 115480706 A CN115480706 A CN 115480706A CN 202211191595 A CN202211191595 A CN 202211191595A CN 115480706 A CN115480706 A CN 115480706A
- Authority
- CN
- China
- Prior art keywords
- instruction
- interface controller
- media interface
- timing
- execution unit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 7
- 229940044442 onfi Drugs 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 108010076504 Protein Sorting Signals Proteins 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0658—Controller construction arrangements
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请提供了一种执行指令的方法及介质接口控制器,该介质接口控制包括处理器核、译码器、至少一个指令执行单元以及单位定时器;处理器核将其无法执行的指令提供给译码器;译码器,对指令译码,根据译码结果选择第一指令执行单元基于第一指令的第一操作数从第一操作数指定的寄存器获得的单位计时时长信息设置单位定时器的单位计时时长。和/或选择第二指令执行单根据二指令的第一操作数从第一操作数指定的寄存器获取被第二指令操作的介质接口控制器的一个或多个外部引脚,根据第二指令的第二操作数从第二操作数指定的寄存器获取得计时参数控制从当前时间开始指定计时时长内,设置介质接口控制器的一个或多个输出信号的信号值保持不变。
Description
技术领域
本申请涉及存储技术,特别地,涉及介质接口控制器以及介质接口控制器执行指令的方法。
背景技术
图1A展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
图1B展示了存储设备的控制部件的详细的框图。
主机以遵循存储协议的IO命令访问存储设备。控制部件根据来自主机的IO命令,生成一个或多个存储命令并提供给介质接口控制器。介质接口控制器根据存储命令生遵循NVM芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。控制部件还跟踪从一个IO命令生成的所有存储命令都被执行完成,并向主机指示IO命令的处理结果。
参看图1B,控制部件包括例如主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器(或称闪存接口控制器闪存通道控制器)与存储介质管理单元。主机接口获取主机提供的IO命令,并生成存储命令提供给存储命令处理单元。存储命令例如访问相同大小的存储空间,例如4KB。将NVM芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4KB,则一个物理页能存储4个数据帧。
存储介质管理单元为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元包括FTL表。对于读命令,存储介质管理单元输出存储命令所访问的逻辑地址对应的物理地址,对于写命令,存储介质管理单元为其分配可用的物理地址,并记录其访问的逻辑地址与分配的物理地址的映射关系。存储介质管理单元还维护诸如垃圾回收、磨损均衡等管理NVM芯片所需的功能。
存储命令处理单元根据存储介质管理单元提供的物理地址,操作介质接口控制器向NVM芯片发出存储介质访问命令。为了清楚的目的,将存储命令处理单元发送给介质接口控制器的命令称为介质接口命令,而将介质接口控制器发送给NVM芯片的命令称为存储介质访问命令。存储介质访问命令遵循NVM芯片的接口协议。
图1C展示了介质接口控制器。
介质接口控制器包括微指令存储器、微指令执行单元(或称微控制器、处理器核)与驱动器。介质接口控制器还耦合NVM芯片,并以遵循NVM芯片的接口协议的方式向NVM芯片发出命令,以操作NVM芯片,并接收从NVM芯片输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。介质接口控制器向NVM芯片提供存储介质访问命令并获取存储介质访问命令的处理结果。微指令存储器存储了微指令序列。
介质接口控制器接收存储命令处理单元提供的介质接口命令(图1C中展示为CMD)。微指令序列同介质接口命令对应,介质接口控制器根据收到的介质接口命令获取对应的微指令序列提供给微指令执行单元。微指令执行单元执行微指令序列,根据微指令序列指示的信号驱动驱动器,在介质接口同NVM芯片耦合的引线上产生指定的信号。并通过执行微指令序列,产生符合NVM芯片接口协议的信号序列。驱动器还从引线采集信号,例如从根据ONFI协议的DQ引线采集从NVM芯片读出的数据。
介质接口控制器通过通道(channel)耦合NVM芯片。为提高存储密度并且平衡控制部件(例如,图1A、图1B的控制部件104)芯片的引脚数量,通常在单个通道耦合例如2个或更多NVM芯片(或者以LUN或Target为单位耦合到通道)。耦合到相同通道的多个Target共享总线(包括控制总线与数据总线),以减少用于将NVM芯片耦合到介质接口控制器所使用的引脚数量。通道为耦合到该通道的各Target提供其专用的芯片使能(CE)信号,以在任意时刻,在相同通道内避免向多于一个Target传输信号。
耦合到相同通道的各NVM芯片通常具有相同类型,从而介质接口控制器用相同方式得以操作所有NVM芯片。
发明内容
诸如闪存芯片的NVM芯片的种类具有多样性,且其升级与换代也是迅速的。不同种类的NVM芯片可能需要通过不同的协议访问(例如ONFI或Toggle),即使一些芯片遵循相同的协议,在实现细节上(例如可选功能、信号保持时间等)也存在差异。从而,需要控制部件能够灵活地适配访问多种NVM芯片的芯片。一方面,需要控制部件能够针对不同的NVM芯片以及其不同的功能,产生对应的信号序列来访问这些NVM芯片;另一方面,也需要控制部件能够快速地从适配一款NVM芯片而改变为适配另一款芯片,这期间,可以无需等待重新开发新的控制部件。
一些应用系统需要利用不同类型的NVM芯片满足多样化的性能需求。例如,CDN(内容分发网络,Content Delivery Network)需要更好的读性能,而企业级应用需要更高的数据可靠性。在存储设备内部,也逐渐产生了对多样化NVM芯片类型的需求。例如,对于存储设备的关键元数据,需要能被低延迟的访问(读和/或写);对于有能力区分冷/热数据的存储设备,希望冷数据的存储介质有更好的保持能力(retention)而热数据的存储介质有更好的耐久力(Endurance)和/或访问延迟。因而,产生了对在存储设备内的同一控制部件上耦合不同类型的NVM芯片的需求。进一步地,希望在同一通道上耦合不同类型的NVM芯片。然而,同一通道上的NVM芯片共享总线,在这些NVM芯片的类型不同时,驱动一种NVM芯片的方式很可能无法有效驱动另一种NVM芯片。
再者,诸如中国专利CN106293623B中提供了用于介质接口控制器的自定义微指令。然而,完全使用自定义微指令开发的微指令执行单元无法有效利用产业界已经存在的多种CPU核技术,也会增加开发成本与开发周期。诸如ARM、RISC-V等是产业界中成熟的CPU核,具有较好的处理性能,但这些处理器核所支持的指令集是面向一般的通用计算任务,而无法用于控制诸如ONFI协议的各电信号的产生与时序。这为介质接口控制器带来挑战。
根据本申请的实施例,在介质接口控制器引入自定义指令集时,希望介质接口控制器不仅能利用既有的或商业成熟的CPU核对标准指令集进行处理,还能够对专用于产生介质接口信号的自定义的一些指令进行处理,以提高介质接口控制器的处理性能。
根据本申请的第一方面,提供了根据本申请第一方面的第一介质接口控制器,该介质接口控制器,包括处理器核、译码器、至少一个指令执行单元以及单位定时器;其中,所述处理器核将其无法执行的指令提供给所述译码器;所述译码器,对指令译码,根据译码结果选择所述至少一个指令执行单元之一来执行所述指令;所述至少一个指令执行单元,执行由所述指令指定的操作;其中,所述至少一个指令执行单元包括第一指令执行单元,响应于所述译码器对第一指令译码,所述第一指令执行单元基于所述第一指令的第一操作数从第一操作数指定的寄存器获取单位计时时长信息,并基于所述单位计时时长信息设置所述单位定时器的单位计时时长。
根据本申请的第一方面的第一介质接口控制器,提供了根据本申请第一方面的第二介质接口控制器,所述至少一个指令执行单元包括第二指令执行单元;其中,所述第二指令执行单元与所述单位定时器耦合;响应于所述译码器对第二指令译码,所述第二指令执行单元,根据所述第二指令的第一操作数从第一操作数指定的寄存器获取被所述第二指令操作的所述介质接口控制器的一个或多个外部引脚,根据所述第二指令的第二操作数从第二操作数指定的寄存器获取计时参数;所述第二指令执行单元,基于所述计时参数控制从当前时间开始指定计时时长内,所述第二指令执行单元设置所述介质接口控制器的一个或多个输出信号的信号值保持不变。
根据本申请的第一方面的第二介质接口控制器,提供了根据本申请第一方面的第三介质接口控制器,所述第二指令执行单元执行所述第二指令时,根据接收的所述单位定时器所提供的计时信号确定当前计时时长,其中,所述单位定时器每经过所述单位计时时长向所述第二指令执行单元提供一次计时信号,所述计时参数代表单位计时时长的次数;所述第二指令执行单元将接收到所述单位定时器所提供的计时信号的次数与所述计时参数进行对比,判断当前计时时长是否达到所述指定计时时长;若未达到,则所述第二指令执行单元设置所述介质接口控制器的所述一个或多个输出信号的信号值保持不变。
根据本申请的第一方面的第三介质接口控制器,提供了根据本申请第一方面的第四介质接口控制器,其中,响应于当前计时时长达到所述指定计时时长,所述第二指令执行单元设置所述介质接口控制器的所述一个或多个输出信号的信号值可被改变。
根据本申请的第一方面的第四介质接口控制器,提供了根据本申请第一方面的第五介质接口控制器,若当前计时时长达到所述指定计时时长,所述译码器未对第三指令译码,所述介质接口控制器的所述一个或多个输出信号的信号值保持不变,其中,所述第三指令与所述第二指令不同。
根据本申请的第一方面的第五介质接口控制器,提供了根据本申请第一方面的第六介质接口控制器,若当前计时时长达到所述指定计时时长前,所述译码器对所述第三指令译码,且第三指令指示要修改所述第二指令所指示的外部引脚的信号,则由所述至少一个指令执行单元中的第三指令执行单元暂缓对第三指令的执行;等计时时长达到所述指定计时时长后,再执行第三指令。
根据本申请的第一方面的第六介质接口控制器,提供了根据本申请第一方面的第七介质接口控制器,若所述第三指令要修改的外部引脚同所述第二指令无关,则第三指令执行单元立即执行所述第三指令。
根据本申请的第一方面的第二至第七任一项介质接口控制器,提供了根据本申请第一方面的第八介质接口控制器,所述第二指令执行单元包括计时器以及驱动器控制电路;所述介质接口控制器包括多个驱动器,所述介质接口控制器利用所述驱动器驱动所述介质接口控制器的外部引脚;所述计时器与所述单位定时器耦合,用于接收所述单位定时器所提供的计时信号,并根据所提供的计时信号次数进行计时;所述驱动器控制电路用于控制各驱动器驱动所述介质接口控制器的外部引脚。
根据本申请的第一方面的第八介质接口控制器,提供了根据本申请第一方面的第九介质接口控制器,所述第二指令执行单元还包括驱动器选择电路;所述驱动器选择电路根据所述第二指令的第一操作数从第一操作数指定的寄存器的值,选择所述介质接口控制器的一个或多个外部引脚各自对应的驱动器;所述驱动器控制电路根据所述第二指令的第二操作数从第二操作数指定的寄存器的值,控制所选择的驱动器驱动所述介质接口控制器的一个或多个外部引脚的输出信号的信号值保持不变或可被改变。
根据本申请的第一方面的第九介质接口控制器,提供了根据本申请第一方面的第十介质接口控制器,其中,响应于所述第二指令执行单元开始执行由所述第二指令指定的操作,启动所述第二指令执行单元中的计时器。
根据本申请的第一方面的第十介质接口控制器,提供了根据本申请第一方面的第十一介质接口控制器,其中,响应于所述计时器的计时达到所述指定计时时长,所述驱动器控制电路控制所选择的驱动器驱动所述介质接口控制器的一个或多个外部引脚的输出信号的信号值可被改变。
根据本申请的第一方面的第十一介质接口控制器,提供了根据本申请第一方面的第十二介质接口控制器,其中,响应于所述计时器的计时未达到所述指定计时时长,所述驱动器控制电路控制所选择的驱动器驱动所述介质接口控制器的一个或多个外部引脚的输出信号的信号值保持不变。
根据本申请的第一方面的第十介质接口控制器,提供了根据本申请第一方面的第十三介质接口控制器,其中,响应于所述计时器的计时达到所述指定计时时长前,所述译码器对所述第三指令译码,且第三指令指示要修改所述第二指令所指示的外部引脚的信号,则所述驱动器控制模块暂缓根据所述第三指令控制改变所述介质接口控制的一个或多个外部引脚的输出信号的信号值;等计时时长达到所述指定计时时长后,再根据所述第三指令控制改变所述介质接口控制的一个或多个外部引脚的输出信号的信号值。
根据本申请的第一方面的第十三介质接口控制器,提供了根据本申请第一方面的第十四介质接口控制器,若所述第三指令要修改的外部引脚同所述第二指令无关,所述驱动器选择电路根据所述第三指令所对应的信号信息选择对应驱动器;所述驱动器控制模块控制根据所述第三指令所选择的驱动器驱动所述介质接口控制器的一个或多个外部引脚的输出信号的信号值。
根据本申请的第一方面的第十四介质接口控制器,提供了根据本申请第一方面的第十五介质接口控制器,若当前计时时长达到所述指定计时时长,所述译码器未对第三指令译码,所述驱动器控制模块继续控制所选择的驱动器驱动所述介质接口控制器的一个或多个外部引脚的输出信号的信号值保持不变。
根据本申请的第一方面的第二至第十五任一项介质接口控制器,提供了根据本申请第一方面的第十六介质接口控制器,所述第一指令执行单元与所述第二指令执行单元为或为不同指令执行单元。
根据本申请的第一方面的第二至第十六任一项介质接口控制器,提供了根据本申请第一方面的第十七介质接口控制器,所述介质接口控制器的一个或多个外部引脚包括分别对应NVM芯片的CE、CLE、ALE、WE、RE、DQS和/或DQ信号的外部引脚。
根据本申请的第一方面的第二至第十七任一项介质接口控制器,提供了根据本申请第一方面的第十八介质接口控制器,所述至少一个指令执行单元耦合所述处理器核;所述指令的操作数指定的寄存器是所述处理器核的指令集架构寄存器。
根据本申请的第二方面,提供了根据本申请第二方面的第一介质接口控制器,该介质接口控制器包括处理器核、译码器、至少一个指令执行单元以及单位定时器;其中,所述处理器核将其无法执行的第二指令提供给所述译码器;所述译码器,对第二指令译码,根据译码结果选择所述第二指令对应的第二指令执行单元来执行所述第二指令;所述第二指令执行单元,根据所述第二指令的第一操作数从第一操作数指定的寄存器获取被所述第二指令操作的所述介质接口控制器的一个或多个外部引脚,根据所述第二指令的第二操作数从第二操作数指定的寄存器获取计时参数;以及基于所述计时参数控制从当前时间开始指定计时时长内,所述第二指令执行单元设置所述介质接口控制器的一个或多个输出信号的信号值保持不变。
根据本申请的第二方面的第一介质接口控制,提供了根据本申请第二方面的第二介质接口控制器,所述第二指令执行单元执行所述第二指令时,根据接收的所述单位定时器所提供的计时信号确定当前计时时长,其中,所述单位定时器每经过所述单位计时时长向所述第二指令执行单元提供一次计时信号,所述计时参数代表单位计时时长的次数;所述第二指令执行单元将接收到所述单位定时器所提供的计时信号的次数与所述计时参数进行对比,判断当前计时时长是否达到所述指定计时时长;若未达到,则所述第二指令执行单元设置所述介质接口控制器的所述一个或多个输出信号的信号值保持不变。
根据本申请的第二方面的第二介质接口控制,提供了根据本申请第二方面的第三介质接口控制器,其中,响应于当前计时时长达到所述指定计时时长,所述第二指令执行单元设置所述介质接口控制器的所述一个或多个输出信号的信号值可被改变。
根据本申请的第二方面的第三介质接口控制,提供了根据本申请第二方面的第四介质接口控制器,若当前计时时长达到所述指定计时时长,所述译码器未对第三指令译码,所述介质接口控制器的所述一个或多个输出信号的信号值保持不变,其中,所述第三指令与所述第二指令不同。
根据本申请的第二方面的第四介质接口控制,提供了根据本申请第二方面的第五介质接口控制器,若当前计时时长达到所述指定计时时长前,所述译码器对所述第三指令译码,且第三指令指示要修改所述第二指令所指示的外部引脚的信号,则由所述至少一个指令执行单元中的第三指令执行单元暂缓对第三指令的执行;等计时时长达到所述指定计时时长后,再执行第三指令。
根据本申请的第二方面的第五介质接口控制,提供了根据本申请第二方面的第六介质接口控制器,若所述第三指令要修改的外部引脚同所述第二指令无关,则第三指令执行单元立即执行所述第三指令。
根据本申请的第三方面,提供了根据本申请第三方面的第一执行指令的方法,该方法包括:由译码器对第一指令译码;响应于所述译码器对第一指令译码,由第一指令执行单元基于所述第一指令的第一操作数从第一操作数指定的寄存器获取单位计时时长信息,并基于所述单位计时时长信息设置所述单位定时器的单位计时时长。
根据本申请的第四方面,提供了根据本申请第四方面的第一执行指令的方法,该方法包括:由译码器对第二指令译码;响应于所述译码器对第二指令译码,由第二指令执行单元执行所述第二指令指定的操作;其中,所述执行包括:由第二指令执行单元根据所述第二指令的第一操作数从第一操作数指定的寄存器获取被所述第二指令操作的所述介质接口控制器的一个或多个外部引脚,根据所述第二指令的第二操作数从第二操作数指定的寄存器获取计时参数;以及基于所述计时参数控制从当前时间开始指定计时时长内,设置所述介质接口控制器的一个或多个输出信号的信号值保持不变。
根据本申请的第四方面的第一执行指令的方法,提供了根据本申请第四方面的第二执行指令的方法,其中,根据所述单位定时器所提供的计时信号确定当前计时时长,其中,所述单位定时器每经过所述单位计时时长向所述第二指令执行单元提供一次计时信号,所述计时参数代表单位计时时长的次数;以及将接收到所述单位定时器所提供的计时信号的次数与所述计时参数进行对比,判断当前计时时长是否达到所述指定计时时长;若当前计时时长未达到所述指定计时时长,则设置所述介质接口控制器的所述一个或多个输出信号的信号值保持不变。
根据本申请的第四方面的第二执行指令的方法,提供了根据本申请第四方面的第三执行指令的方法,其中,响应于当前计时时长达到所述指定计时时长,设置所述介质接口控制器的所述一个或多个输出信号的信号值可被改变。
根据本申请的第四方面的第三执行指令的方法,提供了根据本申请第四方面的第四执行指令的方法,若当前计时时长达到所述指定计时时长,所述译码器未对第三指令译码,继续设置所述介质接口控制器的所述一个或多个输出信号的信号值保持不变,其中,所述第三指令与所述第二指令不同。
根据本申请的第四方面的第四执行指令的方法,提供了根据本申请第四方面的第五执行指令的方法,若当前计时时长达到所述指定计时时长前,所述译码器对所述第三指令译码,且第三指令指示要修改所述第二指令所指示的外部引脚的信号,则暂缓对第三指令的执行;等计时时长达到所述指定计时时长后,再执行第三指令。
根据本申请的第四方面的第五执行指令的方法,提供了根据本申请第四方面的第六执行指令的方法,若所述第三指令要修改的外部引脚同所述第二指令无关,则立即执行所述第三指令。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A为现有技术中的存储设备的框图;
图1B为现有技术中的存储设备的控制部件的框图;
图1C为现有技术中的介质接口控制器;
图2A展示了本申请实施例提供的一种介质接口控制器的结构示意图;
图2B展示了介质接口控制器与NVM芯片之间传输的信号示意图;
图2C展示了本申请实施例所提供的一种执行NTM指令的示意图;
图2D展示了本申请实施例所提供的一种执行NWAIT指令的示意图;
图3A展示了本申请实施所提供的一种NWAIT指令执行单元的结构示意图;
图3B展示了本申请实施例所提供的一种执行NWAIT指令所生成的信号示意图;
图4展示了本申请实施例所提供的一种介质接口控制器执行指令的方法流程示意图;
图5展示了本申请实施例所提供的另一种介质接口控制器执行指令的方法流程示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2A展示了本申请实施例提供的一种介质接口控制器的结构示意图。
作为举例,在图2A中,介质接口控制器包括处理器核(相当于图1C中微指令执行单元)以及介质接口;其中,处理器核执行微指令,以实现微指令所指示的功能。介质接口与驱动器(图2A中未标注)耦合,用于驱动介质接口控制器的外部管脚,以在同NVM芯片耦合的引线上生成指定信号,例如,指定信号包括根据ONFI协议的CE、CLE、ALE、WE、RE、DQS和/或DQ信号。处理器核可以为业界成熟的CPU核,在执行微指令时可以对一部分微指令(下文将处理器核能执行的指令称为标准指令)进行处理,而对另一部分微指令无法处理(下文将处理器核不能执行的指令称为自定义指令),例如,自定义指令用于控制例如ONFI协议的CE、CLE、ALE、WE、RE、DQS和/或DQ信号的产生与时序。标准指令是例如ARM指令集、RISC-V指令集等提供的指令,相应地,处理器核是支持ARM指令集的ARM核,或者支持RISC-V指令集的RISC-V核。处理器核对于标准指令的处理为现有技术在此不做赘述,本申请所关注的是对处理器核无法处理的自定义指令的处理。
为了实现对于自定义指令的处理,在介质接口控制器的介质接口引入部分硬件结构来对自定义指令进行处理。又作为举例,介质接口包括译码器以及至少一个指令执行单元(210、220以及230)。需要说明的,在处理核内部,通常也包括指令译码器与指令执行单元,用于处理处理器核的标准指令;而图2A中所展示的译码器与各指令执行单元位于处理器核外部,其不同于处理器内部的用于执行标准指令的指令译码器与指令执行单元。
介质接口控制器在访问NVM芯片时,处理器核执行微指令序列,将其无法执行的自定义指令发给后续的介质接口来处理,由介质接口中译码器对处理器核发送的自定义指令进行译码,然后从至少一个指令执行单元中选择该自定义指令对应的指令执行单元来执行,以实现该自定义指令所指示的操作。由于要处理的指令可能有多种,而每种指令可能指示的操作不同,故在介质接口中设置一个或者多个指令执行单元。例如,指令执行单元210、指令执行单元220以及指令执行单元230分别用于执行三种不同的指令,自定义指令与指令执行单元之间可选地一一对应。另外,指令执行单元210、指令执行单元220以及指令执行单元230与处理器核耦合,为了使得至少一个指令执行单元中的指定指令执行单元对指定自定义指令进行处理,在处理器核中还设置有指令集架构寄存器,该指令集架构寄存器例如包括指令的操作数指定的寄存器,不同寄存器中存储着执行指令所需的参数。指令集架构寄存器由处理器核所支持的指令集所定义,从而标准指令与自定义指令都可使用指令集架构寄存器。例如,处理器核指定指令集架构寄存器包括32个寄存器r0~r31。
可选地,标准指令使用处理器核内部的指令集架构寄存器,而自定义指令使用不同于前述指令集架构寄存器的寄存器文件(称为扩展寄存器文件)。自定义指令中的源寄存器和/或目的寄存器可寻址指令集架构寄存器。可选地寻址扩展寄存器文件。在存在扩展寄存器文件中,处理器核还支持在指令集架构寄存器文件与扩展寄存器文件中搬移数据的微指令。
同图1C中的微指令执行单元功能类似,在图2A中,指令执行单元210、指令执行单元220以及指令执行单元230用于执行译码后的自定义指令,并根据例如自定义指令指示的信号驱动驱动器,在介质接口同NVM芯片耦合的引线上产生指定的信号,以基于这些信号来控制NVM芯片执行相关操作。
图2B展示了本申请实施例所提供的一种介质接口控制器与NVM芯片之间传输的信号示意图。
作为举例,图2B中展示为符合NVM芯片接口协议(如ONFI协议)的信号波形图。介质接口控制器与NVM芯片之间传输的信号例如包括CE、CLE、ALE、WE、RE、DQS以及DQ。本申请中,介质接口控制器执行自定义指令的结果在于产生发送给NVM芯片的与图2B类似的一个或多个信号。可以理解地,执行自定义指令的结果也包括在引线上采集信号。由于不同指令所执行的操作不同和/或与指令有关的信号不同,执行不同指令所生成的一组信号状态可能不同(如部分或全部信号的波形图不同)。介质接口控制器执行指令在介质接口同NVM芯片耦合的引线上产生的指定信号,介质接口控制器执行自定义指令所生成的一组信号的过程由特定的自定义指令所决定的。信号的状态还与时间有关,例如维持指定信号在高电平/低电平的持续时间。为了使得能够产生指定状态的一组信号,一条或多条自定义指令还需要利用具有计时功能的器件进行计时。例如,计时来确定各指定信号处于指定电平的开始的时间或者处于某一状态所持续的时间等。
又作为举例,为了实现对自定义指令的处理,在介质接口中设置有单位定时器(如图2A所示),该单位定时器用于与至少一个指令执行单元进行配合来对自定义指令进行处理以在介质接口同NVM芯片耦合的引线上产生指定信号的可变持续时间。单位定时器在实现计时功能之前,根据本申请实施例,还通过专门的自定义指令设置其单位计时时长。而该单位定时器是配合至少一个指令执行单元来对自定义指令进行处理。设置该单位定时器的单位计时时长的指令为自定义指令由至少一个指令执行单元中指定指令执行单元来执行,下文将设置单位定时器的单位计时时长的指令称为NTM(NANDTimer)指令。
图2C展示了本申请实施例所提供的一种执行NTM指令的示意图。
作为举例,NTM指令是一种自定义指令。NTM指令包括操作码与操作数rs1。操作码用于标记其为NTM指令,而操作数rs1所索引的寄存器中记录了要用于设置单位计时器的单位计时时长。单位定时器每经历单位计时时长的时间长度,输出一次计时脉冲。单位计时器输出的计时脉冲可作为其他计数器的输入时钟。
在图2C中,介质接口控制器中的处理器核将其无法处理的NTM指令发送给译码器。译码器对NTM指令进行译码,并从至少一个指令执行单元中选择出一指令执行单元(下文称为NTM指令执行单元)来执行NTM指令。该NTM指令执行单元响应于译码器对NTM指令译码,基于NTM指令的操作数rs1从操作数rs1指定的寄存器A1获取单位计时时长信息,并基于单位计时时长信息设置单位定时器的单位计时时长。可以理解地,为应用NTM指令,介质接口控制器在执行NTM指令前,由开发人员将单位计时时长记录在寄存器A1中。单位计时时长的值由开发人员确定。例如,根据图2B中CE信号要保持为低电平的持续时间来确定单位计时时长。
上述已经说过,介质接口控制器中可处理的自定义指令可能不止一种,可通过不同的指令执行单元来对不同的自定义指令进行处理以实现相应的操作。作为举例,NWAIT指令是又一种自定义指令。NWAIT指令包括操作码、操作数rs1以及操作数rs2。操作码用于标记其为NWAIT指令,rs1与rs2分别索引了寄存器文件中的寄存器(分别记为寄存器A1与寄存器A2)。操作数rs1索引的寄存器A1的值指示NWAIT指令所控制的引线。例如,被索引的寄存器A1包括32比特,第0比特的值指示CE信号是否要被控制,第1比特指示CLE信号是否要被控制,以此类推。操作数rs2索引的寄存器A2的值指示NWAIT指令所控制的引线上信号值(或状态)维持不变的时间。例如,该时间可通过单位定时器计时时长的次数来表征,如操作数rs2索引的寄存器A2的值指示了单位定时器单位计时时长的次数。可以理解地,为应用NWAIT指令,开发人员在通过介质接口控制器执行NWAIT指令之前,将要控制的引线信息记录在寄存器A1中。控制哪些引线由开发人员确定。例如,要通过NWAIT指令控制图2B中CE信号、CLE信号以及ALE信号持续保持一定时长的低电平。另外,在执行NWAIT指令之前,还将所控制的引线上信号值(或状态)维持不变的时间,记录在寄存器A2中。各信号维持时间多长由开发人员确定。还应理解,寄存器A2中所记录的维持时间同时作用于寄存器A1所记录的所有信号;寄存器A1所记录的所有信号具体为何值(如高电平或低电平),与NWAIT指令无关。NWAIT指令只用于控制寄存器A1所记录的所有信号的值在寄存器A2中所记录的维持时间内保持不变或者在NWAIT指令执行完成到接收下一自定义指令(如该自定义指令会指示修改与NWAIT指令所控制的引线信号值)之前继续保持不变。
图2D展示了本申请实施例所提供的执行NWAIT指令的示意图。
作为举例,在图2D中,介质接口控制器中的处理器核将其无法处理的NWAIT指令发送给译码器。译码器对NWAIT指令进行译码,并从至少一个指令执行单元中选择出一指令执行单元(下文称为NWAIT指令执行单元)用来执行NWAIT指令。NWAIT指令用于指示在达到指定时长之前,介质接口控制器的一个或多个外部引脚同NVM芯片耦合的引线上(如CE、CLE、ALE、WE)信号值保持不变。例如,NWAIT指令执行单元自己不会控制改变介质接口控制器一个或多个外部引脚同NVM芯片耦合的引线上的信号值,也不允许其他指令执行单元执行自定义指令来改变与NWAIT指令有关的一个或多个外部引脚同NVM芯片耦合的引线上的信号值。
又作为举例,NWAIT指令执行单元通过执行NWAIT指令来控制CE、CLE和ALE信号值在指定时间段内维持不变。介质接口控制器在执行NWAIT指令期间可能还会接收到其他自定义指令。例如,在执行NWAIT指令期间,译码器对自定义指令1进行译码;其中,自定义指令1不同于NWAIT指令,且其执行可能会改变CE、CLE、ALE以及WE信号的信号值。为了保证在指定时间内维持CE、CLE、ALE以及WE信号的信号值保持不变,在执行NWAIT指令期间,将会阻止指令执行单元B1(图中未标注)执行自定义指令1,等待计时时长达到指定时长后指令执行单元B1才开始执行自定义指令1。例如,指令执行单元B1与NWAIT指令执行单元是不同的指令执行单元。又作为举例,在计时时长达到指定时长后,执行单元B1执行自定义指令1来改变CE、CLE和ALE信号的信号值。即本申请所涉及的NWAIT指令只在其指定时长内维持与其有关的介质接口控制器一个或多个外部引脚的输出信号的信号值保持不变,在达到指定时长后NWAIT指令将不再阻止其他自定义指令对于该一个或多个外部引脚的输出信号的信号值的改变。
又作为举例,在达到指定时长之后,可根据译码器译码的实际情况来设置与NWAIT指令有关的一个或多个外部引脚同NVM芯片耦合的引线上的信号值。例如,在达到指定时长之前,译码器未对其他指令进行译码(例如,由于未收到后续要译码的指令),继续维持与NWAIT指令有关的一个或多个外部引脚同NVM芯片耦合的引线上的信号值保持不变,即介质接口控制器与NWAIT指令有关的一个或多个输出信号的信号值不变。又例如,在达到指定时长之前,译码器对自定义指令2进行译码,自定义指令2要修改的介质接口控制器的外部引脚与NWAIT指令无关,自定义指令2与NWAIT指令不同。由介质接口控制器的至少一个指令执行单元中指令执行单元B2(图中未标注)立即执行自定义指令2。
作为举例,NWAIT指令执行与NTM指令执行之间是相互独立的,NTM指令执行与否不会影响NWAIT指令的执行。在执行NWAIT指令之前可以通过NTM指令来设置单位定时器的单位计时时长,也可以另外地方式设置单位定时器的单位定时时长。
又作为举例,在图2D中,为了使得在达到NWAIT指令所指定的指定时长之前,介质接口控制器的一个或多个外部引脚同NVM芯片耦合的引线上信号值保持不变,需要对NWAIT指令的执行时长进行计时以判断其是否达到指定时长。又作为举例,NWAIT指令指示了两个操作数,例如分别为操作数rs1与rs2,其分别索引了寄存器A1与寄存器A2。寄存器A1所指示的寄存器中存储了与NWAIT指令有关的介质接口控制器的一个或多个外部引脚信息,操作数A2所指示的寄存器中存储了与计时参数(如指定时长)有关的信息。NWAIT指令执行单元在执行NWAIT指令时,NWAIT指令执行单元可根据NWAIT指令的操作数rs1从操作数A1指定的寄存器获取被NWAIT指令操作的介质接口控制器的一个或多个外部引脚,根据NWAIT指令的操作数rs2从操作数A2指定的寄存器获取计时参数;基于计时参数控制从当前时间开始指定计时时长内,介质接口控制器上同NWAIT指令有关的一个或多个外部引脚的输出信号的信号值保持不变。计时参数指示了例如单位计数器所计时的单位时长的次数,例如单位时长为5us,计时参数为2,则需要信号值保持不变的时间长度为10us(5*2)。
图3A展示了本申请实施所提供的一种NWAIT指令执行单元的结构示意图。
作为举例,在图3A中,执行NWAIT指令的NWAIT指令执行单元包括计时器以及驱动器控制电路。介质接口控制器包括多个驱动器,介质接口控制器利用驱动器驱动介质接口控制器的外部引脚。计时器与单位定时器耦合,用于接收单位定时器所提供的计时信号,并根据所提供的计时信号次数进行计时。驱动器控制电路用于控制各驱动器驱动介质接口控制器的外部引脚。例如,NWAIT指令执行单元执行NWAIT指令时,从处理器核的指令集架构寄存器中操作数rs1指定的寄存器(如上述A1)获取被NWAIT指令操作的介质接口控制器的一个或多个外部引脚,驱动器控制电路驱动被NWAIT指令操作的介质接口控制器的一个或多个外部引脚。
又作为举例,响应于NWAIT指令执行单元开始执行NWAIT指令,启动计时器。响应于启动计时器,计时器基于单位定时器所提供计时信号次数来计时。
又作为举例,NWAIT指令执行单元执行NWAIT指令时,单位定时器每经过单位计时时长就向NWAIT指令执行单元中计时器提供一次计时信号(如脉冲信号),计时器根据接收的单位定时器所提供的计时信号的次数与从处理器核的指令集架构寄存器中操作数rs2指定的寄存器(如上述A2)获得的计时参数进行对比,判断当前计时时长是否达到所述指定计时时长,例如,计时参数为代表需要获取的单位计时时长的次数。若当前计时时长未达到指定时长,则驱动器控制电路设置介质接口控制器上同NWAIT指令有关的一个或多个外部引脚的输出信号的信号值保持不变。
又作为举例,NWAIT指令执行单元执行NWAIT指令时,与NWAIT指令执行单元中计时器耦合的单位定时器的单位计时时长在执行NWAIT指令之前,可以通过执行NTM指令来设置单位计时时长。通过执行NTM指令来设置单位定时器的单位计时时长,单位计时时长的数值可以根据执行NWAIT指令所要生成的信号来确定。
图3B展示了本申请实施例所提供的另一种介质接口控制器与NVM芯片之间传输的信号示意图。
作为举例,在图3B中,要通过NWAIT指令来控制介质接口控制器外部引脚同NVM芯片耦合的指定引线上的信号值在指定时间段内维持不变(如CE、CLE、ALE、WE)。在处理NWAIT指令之前,可以基于NWAIT指令要保持的各信号值的指定时长来设置单位定时器的单位定时时长。如图3B所示,CE信号、CLE信号和ALE信号、WE信号之间维持信号值保持不变的起始时间点以及维持时长不尽相同,而每个NWAIT指令所操作的一个或多个信号的维持时间是相同的。故为了实现图3B所示的信号状态,需要多个NWAIT指令与其他自定义指令结合来实现。可选地利用多个计时器来分别对不同信号进行计时。
例如,若执行NWAIT指令的指令执行单元有两个计时器(计时器1以及计时器2),计时器1对CE信号进行计时,计时器2对CLE和ALE信号计时。对于CE信号,在T1时间点通过执行其他自定义指令(不同于NWAIT指令)来设置CE信号为低电平,再执行NWAIT指令1让CE信号在tCS+tCH时间段内保持低电平不变,计时器1计时的时长为tCS+tCH。对于CLE和ALE信号,在T2时间点之前先通过其他自定义指令来设置CLE为低电平以及设置ALE信号为高电平,再执行NWAIT指令2让CLE和ALE信号在tCALS+tCALH时间段内保持不变,计时器2计时的时长为tCALS+tCALH。若tCS+tCH时间段的时长为15ns,tCALS+tCALH的时长为10ns,则单位定时器的单位定时时长为5ns是有利的,相应地,NWAIT指令1的A2寄存器值为3,而NWAIT指令2的A3寄存器值为2。相应地,计时器1在接收到3次单位定时器发送的计时信号时间段内(5ns*3)CE信号保持低电平不变,计时器2在接收到2次单位定时器发送的计时信号时间段内(5ns*2)CLE和ALE信号保持不变。
又例如,若执行NWAIT指令的指令执行单元只有一个计时器3,即通过计时器3来同时对CE信号、CLE信号和ALE信号进行计时。通过NWAIT指令1让CE信号在T1~T2时间段内保持低电平不变,通过执行NWAIT指令2让CE信号、CLE信号和ALE信号在tCALS+tCALH时间段内保持不变,计时器3对于NWAIT指令1的计时时长为T1~T2时间段,对于NWAIT指令2的计时时长为tCALS+tCALH时间段。例如,若T1~T2时间段的时长为8ns,tCALS+tCALH为10ns,则单位定时器的单位定时时长2ns,计时器3在接收到4次单位定时器发送的计时信号时间段内(2ns*4)CE信号保持低电平不变,计时器3对NWAIT指令1计时完成后,在接收到5次单位定时器发送的计时信号时间段内(2ns*5)CE信号、CLE和ALE信号保持不变。
作为又一个实施例,NWAIT指令执行单元为介质接口控制器的每个外部引脚提供其专用的计时器。在执行NWAIT指令时,根据其rs1操作数所描述的外部引脚来设置同引脚对应的计时器来记录其要保持不变的时间。
继续回到图3A,NWAIT指令执行单元还包括驱动器选择电路。驱动器选择电路根据NWAIT指令的操作数rs1从操作数rs1指示的寄存器A1中获取NWAIT指令所控制的引线信息,选择介质接口控制器的一个或多个外部引脚各自对应的驱动器。驱动器控制电路根据NWAIT指令的操作数rs2从操作数rs2指示的寄存器A2中获取单位定时器单位计时时长的次数,控制所选择的驱动器驱动介质接口控制器的一个或多个外部引脚的输出信号的信号值保持不变的时间长度。在该时间长度之后,对应引脚的信号值可被改变。作为举例,驱动器选择电路可以位于NWAIT指令执行单元的内部,也可以位于NWAIT指令执行单元之外由介质接口控制器中至少一个指令执行单元所共享,在此不做限定。
又作为举例,响应于计时器的计时达到所述指定计时时长,驱动器控制电路控制所控制的驱动器驱动所述介质接口控制器的一个或多个外部引脚的输出信号的信号值可被改变。
又作为举例,响应于计时器的计时未达到所述指定计时时长,驱动器控制电路控制所控制的驱动器驱动介质接口控制器的一个或多个外部引脚的输出信号的信号值保持不变。
图4展示了本申请实施例所提供的一种介质接口控制器执行指令的方法流程示意图。应用于图2C所示的介质接口控制器执行NTM指令,具体步骤如下所示:
步骤401,由译码器对当前指令译码;
步骤402,响应于译码器对当前指令译码识别出当前指令是NTM指令,由NTM指令执行单元基于NTM指令的操作数rs1从操作数rs1指定的寄存器A1获取单位计时时长信息,并基于单位计时时长信息设置单位定时器的单位计时时长。
图5展示了本申请实施例所提供的一种介质接口控制器执行指令的方法流程示意图。应用于图2D所示的介质接口控制器执行NWAIT指令,具体步骤如下所示:
步骤501,由译码器对当前指令译码;
步骤502,响应于译码器对当前指令译码识别出当前指令是NWAIT指令译码,由NWAIT指令执行单元执行NWAIT指令指定的操作;其中,执行包括:
由NWAIT指令执行单元根据NWAIT指令的操作数rs1从操作数rs1指定的寄存器A1获取被NWAIT指令操作的所述介质接口控制器的一个或多个外部引脚,根据NWAIT指令的操作数rs2从操作数rs2指定的寄存器A2获取计时参数;以及基于计时参数控制从当前时间开始指定计时时长内,设置介质接口控制器的一个或多个输出信号的信号值保持不变。
作为举例,NWAIT指令执行单元根据单位定时器所提供的计时信号确定当前计时时长,其中,单位定时器每经过所述单位计时时长向NWAIT指令执行单元提供一次计时信号,计时参数代表单位计时时长的次数;以及将接收到单位定时器所提供的计时信号的次数与计时参数进行对比,判断当前计时时长是否达到指定计时时长;若当前计时时长未达到指定计时时长,则设置介质接口控制器的一个或多个输出信号的信号值保持不变。
又作为举例,NWAIT指令执行单元响应于当前计时时长达到指定计时时长,设置介质接口控制器的一个或多个输出信号的信号值可被改变。
又作为举例,若当前计时时长达到指定计时时长,译码器未对不同于NWAIT指令的其他自定义指令译码,继续设置介质接口控制器的一个或多个输出信号的信号值保持不变,其中,所述第三指令与所述第二指令不同。
又作为举例,若当前计时时长达到指定计时时长前,译码器对不同于NWAIT指令的其他自定义指令译码,且该其他自定义指令指示要修改NWAIT指令所指示的外部引脚的信号,则暂缓对该其他自定义指令的执行;等计时时长达到指定计时时长后,再执行该其他自定义指令。
又作为举例,若不同于NWAIT指令的其他自定义指令要修改的外部引脚同NWAIT指令无关,则立即执行该其他自定义指令。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种介质接口控制器,其特征在于,包括处理器核、译码器、至少一个指令执行单元以及单位定时器;其中,
所述处理器核将其无法执行的指令提供给所述译码器;
所述译码器,对指令译码,根据译码结果选择所述至少一个指令执行单元之一来执行所述指令;
所述至少一个指令执行单元,执行由所述指令指定的操作;其中,所述至少一个指令执行单元包括第一指令执行单元,响应于所述译码器对第一指令译码,所述第一指令执行单元基于所述第一指令的第一操作数从第一操作数指定的寄存器获取单位计时时长信息,并基于所述单位计时时长信息设置所述单位定时器的单位计时时长。
2.如权利要求1所述的介质接口控制器,其特征在于,所述至少一个指令执行单元包括第二指令执行单元;其中,所述第二指令执行单元与所述单位定时器耦合;
响应于所述译码器对第二指令译码,所述第二指令执行单元,根据所述第二指令的第一操作数从第一操作数指定的寄存器获取被所述第二指令操作的所述介质接口控制器的一个或多个外部引脚,根据所述第二指令的第二操作数从第二操作数指定的寄存器获取计时参数;
所述第二指令执行单元,基于所述计时参数控制从当前时间开始指定计时时长内,所述第二指令执行单元设置所述介质接口控制器的一个或多个输出信号的信号值保持不变。
3.一种介质接口控制器,其特征在于,包括处理器核、译码器、至少一个指令执行单元以及单位定时器;其中,
所述处理器核将其无法执行的第二指令提供给所述译码器;
所述译码器,对第二指令译码,根据译码结果选择所述第二指令对应的第二指令执行单元来执行所述第二指令;
所述第二指令执行单元,根据所述第二指令的第一操作数从第一操作数指定的寄存器获取被所述第二指令操作的所述介质接口控制器的一个或多个外部引脚,根据所述第二指令的第二操作数从第二操作数指定的寄存器获取计时参数;以及基于所述计时参数控制从当前时间开始指定计时时长内,所述第二指令执行单元设置所述介质接口控制器的一个或多个输出信号的信号值保持不变。
4.如权利要求3所述的介质接口控制器,其特征在于,所述第二指令执行单元执行所述第二指令时,根据接收的所述单位定时器所提供的计时信号确定当前计时时长,其中,所述单位定时器每经过所述单位计时时长向所述第二指令执行单元提供一次计时信号,所述计时参数代表单位计时时长的次数;
所述第二指令执行单元将接收到所述单位定时器所提供的计时信号的次数与所述计时参数进行对比,判断当前计时时长是否达到所述指定计时时长;
若未达到,则所述第二指令执行单元设置所述介质接口控制器的所述一个或多个输出信号的信号值保持不变。
5.如权利要求4所述的介质接口控制器,其特征在于,其中,响应于当前计时时长达到所述指定计时时长,所述第二指令执行单元设置所述介质接口控制器的所述一个或多个输出信号的信号值可被改变。
6.如权利要求4或5所述的介质接口控制器,其特征在于,若当前计时时长达到所述指定计时时长,所述译码器未对第三指令译码,所述介质接口控制器的所述一个或多个输出信号的信号值保持不变,其中,所述第三指令与所述第二指令不同。
7.如权利要求6所述的介质接口控制器,其特征在于,若当前计时时长达到所述指定计时时长前,所述译码器对所述第三指令译码,且第三指令指示要修改所述第二指令所指示的外部引脚的信号,则由所述至少一个指令执行单元中的第三指令执行单元暂缓对第三指令的执行;等计时时长达到所述指定计时时长后,再执行第三指令。
8.如权利要求7所述的介质接口控制器,其特征在于,若所述第三指令要修改的外部引脚同所述第二指令无关,则第三指令执行单元立即执行所述第三指令。
9.一种执行指令的方法,其特征在于,包括:
由译码器对第一指令译码;
响应于所述译码器对第一指令译码,由第一指令执行单元基于所述第一指令的第一操作数从第一操作数指定的寄存器获取单位计时时长信息,并基于所述单位计时时长信息设置所述单位定时器的单位计时时长。
10.一种执行指令的方法,其特征在于,包括:
由译码器对第二指令译码;
响应于所述译码器对第二指令译码,由第二指令执行单元执行所述第二指令指定的操作;其中,所述执行包括:
由第二指令执行单元根据所述第二指令的第一操作数从第一操作数指定的寄存器获取被所述第二指令操作的所述介质接口控制器的一个或多个外部引脚,根据所述第二指令的第二操作数从第二操作数指定的寄存器获取计时参数;以及基于所述计时参数控制从当前时间开始指定计时时长内,设置所述介质接口控制器的一个或多个输出信号的信号值保持不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211191595.4A CN115480706A (zh) | 2022-09-28 | 2022-09-28 | 一种执行指令的方法及介质接口控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211191595.4A CN115480706A (zh) | 2022-09-28 | 2022-09-28 | 一种执行指令的方法及介质接口控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115480706A true CN115480706A (zh) | 2022-12-16 |
Family
ID=84393711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211191595.4A Pending CN115480706A (zh) | 2022-09-28 | 2022-09-28 | 一种执行指令的方法及介质接口控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115480706A (zh) |
-
2022
- 2022-09-28 CN CN202211191595.4A patent/CN115480706A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494122B2 (en) | Command queuing | |
US9563367B2 (en) | Latency command processing for solid state drive interface protocol | |
JP6341642B2 (ja) | ホスト、不揮発性メモリ装置、及び不揮発性メモリカードシステム | |
EP2339478A2 (en) | Flash memory-interface | |
US20130318285A1 (en) | Flash memory controller | |
US9411521B2 (en) | Method and apparatus for improving sequential memory read preformance | |
CN114253461A (zh) | 混合通道存储设备 | |
US7404026B2 (en) | Multi media card with high storage capacity | |
CN114253462A (zh) | 提供混合通道存储设备的方法 | |
CN107783917B (zh) | 生成nvm芯片接口命令的方法与装置 | |
KR20170073266A (ko) | 시리얼 인터페이스를 사용하는 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법 | |
CN115480706A (zh) | 一种执行指令的方法及介质接口控制器 | |
KR20170141468A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN213338708U (zh) | 一种控制部件及存储设备 | |
CN118277304A (zh) | 一种介质接口控制器 | |
CN118276764A (zh) | 操作nvm芯片执行相关操作的方法及介质接口控制器 | |
CN118277303A (zh) | 一种介质接口控制器 | |
CN118363660A (zh) | 通过微指令序列从nand闪存读取数据 | |
CN118276934A (zh) | 介质接口控制器 | |
CN113454720A (zh) | 存储设备及其控制方法 | |
CN108536475B (zh) | 完整编程命令处理方法与装置 | |
CN114328304B (zh) | 存储介质的操作方法和装置 | |
CN118276935A (zh) | 执行产生数据周期的微指令的介质接口控制器 | |
CN109086003B (zh) | 降低集成电路功耗的方法及其介质接口控制器 | |
CN117850873A (zh) | 一种管理存储器的方法及控制部件 |
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 |