CN118277304A - 一种介质接口控制器 - Google Patents

一种介质接口控制器 Download PDF

Info

Publication number
CN118277304A
CN118277304A CN202211733215.5A CN202211733215A CN118277304A CN 118277304 A CN118277304 A CN 118277304A CN 202211733215 A CN202211733215 A CN 202211733215A CN 118277304 A CN118277304 A CN 118277304A
Authority
CN
China
Prior art keywords
micro instruction
execution unit
micro
microinstruction
data
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
Application number
CN202211733215.5A
Other languages
English (en)
Inventor
高百通
朱旭涛
薛立成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Yixin Electronic Technology Co ltd
Original Assignee
Hefei Yixin Electronic Technology Co ltd
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 Hefei Yixin Electronic Technology Co ltd filed Critical Hefei Yixin Electronic Technology Co ltd
Priority to CN202211733215.5A priority Critical patent/CN118277304A/zh
Publication of CN118277304A publication Critical patent/CN118277304A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Microcomputers (AREA)

Abstract

本申请提供了一种介质接口控制器,该介质接口控制器包括处理器核以及介质接口;其中,处理器核用于执行第一类微指令以及将其无法执行的第二类微指令发给介质接口;介质接口执行所述第二类微指令来实现所述第二类微指令所指示的操作。

Description

一种介质接口控制器
技术领域
本申请涉及存储技术,特别地,涉及介质接口控制器。
背景技术
图1A展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial Attach edSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExp ress,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random Access Me mory,阻变存储器)、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,并可访问DRAM110的数据。在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芯片接口协议包括“To ggle”、“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芯片的命令内容,以及操作介质接口生成ONFI协议所对应的一个命令周期的信号序列。
根据本申请的第一方面的第七介质接口控制器,提供了根据本申请第一方面的第八介质接口控制器,所述第三微指令执行单元操作介质接口将所述命令内容输出到耦合NVM芯片的DQ信号线;所述第三微指令执行单元操作介质接口在耦合NVM芯片的CLE与WE信号线上生成ONFI协议所对应的一个命令周期的信号序列。
根据本申请的第一方面的第二至第八任一介质接口控制器,提供了根据本申请第一方面的第九介质接口控制器,所述译码器接收所述第二类微指令中的第四微指令,并对所述第四微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第四微指令执行单元来执行所述第四微指令;
所述第四微指令执行单元根据所述第四微指令的第一操作数从第一操作数指定的寄存器获取介质接口要访问NVM芯片的地址,以及操作介质接口生成ONFI协议所对应的一个地址周期的闪存接口信号。
根据本申请的第一方面的第九介质接口控制器,提供了根据本申请第一方面的第十介质接口控制器,所述第四微指令执行单元操作介质接口将所述要访问NVM芯片的地址输出到耦合NVM芯片的DQ信号线;所述第四微指令执行单元操作介质接口在耦合NVM芯片的ALE与WE信号线上生成ONFI协议所对应的一个地址周期的信号序列。
根据本申请的第一方面的第二至第十任一介质接口控制器,提供了根据本申请第一方面的第十一介质接口控制器,所述译码器接收所述第二类微指令中的第五微指令,并对所述第五微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第五微指令执行单元来执行所述第五微指令;
所述第五微指令执行单元根据所述第五微指令的第一操作数从第一操作数指定的寄存器获取要传输给NVM芯片的数据长度,根据所述第五微指令的第二操作数从第二操作数指定的寄存器获取源地址;基于所述数据长度以及源地址操作所述介质接口将要传输给NVM芯片的数据发送给NVM芯片。
根据本申请的第一方面的第十一介质接口控制器,提供了根据本申请第一方面的第十二介质接口控制器,所述第五微指令执行单元操作介质接口将所述要传输给NVM芯片的数据输出到耦合NVM芯片的DQ信号线;所述第五微指令执行单元操作介质接口在耦合NVM芯片的DQS信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要传输给NVM芯片的数据长度。
根据本申请的第一方面的第二至十二任一介质接口控制器,提供了根据本申请第一方面的第十三介质接口控制器,所述译码器接收所述第二类微指令中的第六微指令,并对所述第六微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第六微指令执行单元来执行所述第六微指令;
所述第六微指令执行单元根据所述第六微指令的第一操作数从第一操作数指定的寄存器获取要读取的数据长度,根据所述第六微指令的第三操作数指定的寄存器获取目的地址,基于所述数据长度以及所述目的地址将从NVM芯片获取的数据搬移到所述目的地址。
根据本申请的第一方面的第十三介质接口控制器,提供了根据本申请第一方面的第十四介质接口控制器,所述第六微指令执行单元操作介质接口从耦合NVM芯片的DQ信号线获取所述从NVM芯片获取的数据;所述第六微指令执行单元操作介质接口在耦合NVM芯片的DQS与RE信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要读取的数据长度。
根据本申请的第一方面的第一至第十四任一介质接口控制器,提供了根据本申请第一方面的第十五介质接口控制器,包括:DMA单元以及缓存;其中,所述DMA单元与所述处理器核、所述介质接口耦合。
根据本申请的第一方面的第十五介质接口控制器,提供了根据本申请第一方面的第十六介质接口控制器,所述译码器接收所述第二类微指令中的第七微指令,并对所述第七微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第七微指令执行单元来执行所述第七微指令;
所述第七微指令执行单元根据所述第七微指令的第一操作数从第一操作数指定的寄存器获取要要传输给NVM芯片的数据长度,根据数据长度从所述DMA单元获取要传输给NVM芯片的数据,并将要传输给NVM芯片的数据发送给NVM芯片。
根据本申请的第一方面的第十六介质接口控制器,提供了根据本申请第一方面的第十七介质接口控制器,所述第七微指令执行单元操作介质接口将所述要传输给NVM芯片的数据输出到耦合NVM芯片的DQ信号线;所述第七微指令执行单元操作介质接口在耦合NVM芯片的DQS信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要传输给NVM芯片的数据长度。
根据本申请的第一方面的第十五介质接口控制器,提供了根据本申请第一方面的第十八介质接口控制器,所述译码器接收所述第二类微指令中的第八微指令,并对所述第八微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第八微指令执行单元来执行所述第八微指令;
所述第八微指令执行单元根据所述第八微指令的第一操作数从第一操作数指定的寄存器获取要读取的数据长度,根据数据长度从NVM芯片获取所述数据长度的数据,并将该数据提供给所述DMA单元。
根据本申请的第一方面的第十八介质接口控制器,提供了根据本申请第一方面的第十九介质接口控制器,所述第八微指令执行单元操作介质接口从耦合NVM芯片的DQ信号线获取所述从NVM芯片获取的数据;所述第八微指令执行单元操作介质接口在耦合NVM芯片的DQS与RE信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要读取的数据长度。
根据本申请的第一方面的第十九介质接口控制器,提供了根据本申请第一方面的第二十介质接口控制器,所述译码器接收或者处理所述第二微指令、第三微指令、第四微指令、第五微指令、第六微指令、第七微指令或者第八微指令之前,所述译码器接收所述第一微指令,并对所述第一微指令译码;
所述第一微指令执行单元基于所述第一微指令来设置所述单位定时器的单位计时时长;其中,所述译码器接收或者处理所述第二微指令、第三微指令、第四微指令、第五微指令、第六微指令、第七微指令或者第八微指令之前所设置的单位定时器的单位计时时长部分或全部不同。
根据本申请的第一方面的第二十介质接口控制器,提供了根据本申请第一方面的第二十一介质接口控制器,第一微指令执行单元、第二微指令执行单元、第三微指令执行单元、第四微指令执行单元、第五微指令执行单元、第六微指令执行单元、第七微指令执行单元以及第八微指令执行单元为不同的微指令执行单元;或者为同一微指令执行单元;或者部分为同一微指令执行单元。
根据本申请的第二方面,提供了根据本申请第二方面的控制部件,该控制部件包括:第一方面任一项所述的介质接口控制器。
根据本申请的第三方面,提供了根据本申请第三方面的存储设备,该存储设备包括:第二方面所述的控制部件。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A为现有技术中的存储设备的框图;
图1B为现有技术中的存储设备的控制部件的框图;
图1C为现有技术中的介质接口控制器;
图2A展示了本申请实施例提供的一种介质接口控制器的结构示意图;
图2B展示了介质接口控制器与NVM芯片之间传输的信号示意图;
图2C展示了本申请实施例所提供的一种执行NTM微指令的示意图;
图2D展示了本申请实施例所提供的一种执行NWAIT微指令的示意图;
图3A展示了本申请实施所提供的一种NWAIT微指令执行单元的结构示意图;
图3B展示了本申请实施例所提供的一种执行NWAIT微指令所生成的信号示意图;
图4展示了本申请实施例提供的ONFI协议所定义的一个存储介质访问命令的信号组示意图;
图5A展示了本申请实施例所提供的一种执行NCMD微指令的示意图;
图5B展示了ONFI协议的命令周期(CMD Cycle)的波形图;
图6展示了本申请实施例所提供的一种执行NADDR微指令的示意图;
图7展示了本申请实施例所提供的一种执行NWR微指令的示意图;
图8展示了本申请实施例所提供的一种执行NRR微指令的示意图;
图9展示了本申请实施例提供的又一种介质接口控制器的结构示意图;
图10展示了本申请实施例所提供的一种执行NWD微指令的示意图;
图11展示了本申请实施例所提供的一种执行NRD微指令的示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2A展示了本申请实施例提供的一种介质接口控制器的结构示意图。
作为举例,在图2A中,介质接口控制器包括处理器核以及介质接口;其中,处理器核执行微指令,以实现微指令所指示的功能。介质接口还包括驱动器(图2A中未标注),用于驱动介质接口控制器的外部管脚,以在同NVM芯片耦合的引线上生成指定信号,例如,指定信号包括根据ONFI协议的CE、CLE、ALE、WE、RE、DQS和/或DQ信号。本申请实施例中,处理器核可以为业界成熟的CPU核,诸如ARM、RISC-V等,在执行微指令时可以对一部分微指令(下文将处理器核能执行的微指令称为标准微指令)进行处理,而对另一部分微指令无法处理(下文将处理器核不能执行的微指令称为自定义微指令)。例如,自定义微指令用于控制例如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。
可选地,标准微指令使用处理器核内部的指令集架构寄存器,而自定义微指令使用不同于前述指令集架构寄存器的寄存器(称为扩展寄存器)。扩展寄存器也包括多个寄存器。自定义微指令中的源寄存器和/或目的寄存器可寻址指令集架构寄存器,可选地寻址扩展寄存器。在存在扩展寄存器的实施例中,处理器核还支持在指令集架构寄存器与扩展寄存器之间搬移数据的微指令。
在图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微指令。
图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,等待计时时长达到该NWAIT微指令所指示的指定时长后微指令执行单元B1才开始执行自定义微指令1。例如,微指令执行单元B1与NWAIT微指令执行单元是不同的微指令执行单元。又作为举例,在计时时长达到指定时长后,执行单元B1执行自定义微指令1来改变CE、CLE、ALE以及WE信号的信号值。即本申请所涉及的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微指令执行单元之外由介质接口控制器中至少一个微指令执行单元所共享,在此不做限定。
又作为举例,响应于计时器的计时达到所述指定计时时长,驱动器控制电路控制所控制的驱动器驱动所述介质接口控制器的一个或多个外部引脚的输出信号的信号值可被改变。
又作为举例,响应于计时器的计时未达到所述指定计时时长,驱动器控制电路控制所控制的驱动器驱动介质接口控制器的一个或多个外部引脚的输出信号的信号值保持不变。
通过提供NWAIT微指令,为顺序执行微指令的介质接口控制器同时操作耦合NVM芯片的多个信号提供了可能。例如,也参看图3B,执行NWAIT微指令让CE信号在T1时间点开始的tCS+tCH时长内保持不变(为低电平),而在这段时间内,通过执行其他微指令来在WE信号上产生在twp时间段的“高-低-高”波形。
由于NWAIT微指令所描述的指定时长到时后,被其他微指令改变状态之前,引脚输出信号保持不变,因而NWAIT微指令所设置的指定时长不必同例如波形图所示的时间(例如,tCS+tCH)相同。
介质接口控制器通过一个或多个闪存通道耦合NVM芯片。一个闪存通道耦合例如两个NVM芯片。闪存通道包括一组信号线,用以传输符合NVM芯片的接口协议的信号。闪存通道上以周期(Cycle)为单位传输信号。各周期所传输的信号具有不同的含义,用周期类型(Cycle Type)指示各周期所传输信号的含义。周期类型包括例如命令周期(CMD Cycle)、地址周期(ADDR Cycle)、数据输入周期(Data In Cycle)与数据输出周期(Data Out Cycle)等。
图4展示了本申请实施例提供的ONFI协议所定义的一个存储介质访问命令的信号组示意图。
作为举例,如图4所示,ONFI协议所定义的一个存储介质访问命令的信号组,由DQ信号所代表的各周期为“CMD-ADDR-ADDR-ADDR-ADDR-ADDR-CMD”,其中“CMD”代表命令周期,例如,00h和30h,而“ADDR”代表地址周期,例如,C1、C2、R1、R2、R3。NVM芯片接收介质接口控制器发送的一组DQ信号,基于周期类型序列“CMD-ADDR-ADDR-ADDR-ADDR-ADDR-CMD”中00h和30h识别出这是一条命令的类型,以及提取出要访问的地址为C1、C2、R1、R2、R3,这些地址拼接起来即是要访问的存储介质的物理地址。
介质接口控制器基于自定义微指令控制例如ONFI协议的CE、CLE、ALE、WE、RE、DQS和/或DQ信号的产生与时序时,除了上述设置单位定时器的单位计时时长的NTM微指令和指示引线上信号值(或状态)维持不变的时间的NWAIT微指令之外,还包括控制生成“CMD”命令周期的微指令(称为NCMD微指令)以及控制生成“ADDR”地址周期的微指令(称为NADDR微指令)。
图5A展示了本申请实施例所提供的一种执行NCMD微指令的示意图。
作为举例,NCMD微指令包括操作码、操作数rs1。操作码用于标记其为NCMD微指令,而操作数rs1所索引的寄存器中记录了介质接口发送给NVM芯片的命令内容。即“CMD”命令周期的内容,例如,图4所示的00h或30h。
在图5A中,介质接口控制器中的处理器核将其无法处理的NCMD微指令发送给译码器。译码器对NCMD微指令进行译码,并从至少一个微指令执行单元中选择出一微指令执行单元(下文称为NCMD微指令执行单元)来执行NCMD微指令。该NCMD微指令执行单元响应于译码器对NCMD微指令译码,基于NCMD微指令的操作数rs1从操作数rs1指定的寄存器A1获取介质接口发送给NVM芯片的命令内容,NCMD微指令执行单元操作介质接口将命令内容输出到耦合NVM芯片的DQ信号线;以及操作介质接口在耦合NVM芯片的ALE、CLE与WE信号线上生成ONFI协议所对应的一个命令周期的信号序列。可选地,NCMD微指令执行单元基于单位计时器(图中未标注)的来计时信息来确定一个命令周期的时长。
图5B展示了ONFI协议的命令周期(CMD Cycle)的波形图。
在命令周期(CMD Cycle),DQ信号线上出现命令内容,而同时,CLE信号为高、ALE信号为低以及WE信号有效。因而,NCMD微指令执行单元产生的一个命令周期的信号序列包括在tCALS+tCALH时长内保持为高的CLE信号与保持为低的ALE信号,在CLE为高而ALE为低的时间段内产生“高-低-高”变化的WE信号,以及与WE信号为低同时出现的DQ信号,DQ信号的内容来自操作数rs1指定的寄存器A1。可选地,NCMD微指令的执行不影响例如CE、RE、DQS等信号。在又一种实施方式中,NCMD微指令执行单元产生的一个命令周期的信号序列包括“高-低-高”变化的WE信号,以及与WE信号为低同时出现的DQ信号,而不影响ALE信号与CLE信号。以及通过执行其他自定义微指令来设置一个命令周期中的ALE与CLE信号。
在依然可选的实施方式中,例如对于不同的时序模式(SDR模式、NV-DDR模式、NV-DDR2模式等),命令周期具有不同的信号序列,相应地NCMD微指令执行单元处理NCMD微指令时产生的信号序列也不同,而是同对应的时序模式所需的信号序列一致。
图6展示了本申请实施例所提供的一种执行NADDR微指令的示意图。
作为举例,NADDR微指令包括操作码、操作数rs1。操作码用于标记其为NADDR微指令,而操作数rs1所索引的寄存器中记录了介质接口要访问NVM芯片的地址。即“ADDR”地址周期的内容,例如,图4所示的C1、C2、R1、R2与R3,其代表5个地址周期。
在图6中,介质接口控制器中的处理器核将其无法处理的NADDR微指令发送给译码器。译码器对NADDR微指令进行译码,并从至少一个微指令执行单元中选择出一微指令执行单元(下文称为NADDR微指令执行单元)来执行NADDR微指令。该NADDR微指令执行单元响应于译码器对NADDR微指令译码,基于NADDR微指令的操作数rs1从操作数rs1指定的寄存器A1获取介质接口要访问NVM芯片的地址,NADDR微指令执行单元操作介质接口将要访问NVM芯片的地址输出到耦合NVM芯片的DQ信号线;以及操作介质接口在耦合NVM芯片的ALE与WE信号线上生成ONFI协议所对应的一个地址周期的信号序列。可选地,NADDR微指令执行单元基于单位计时器(图中未标注)的来计时信息来确定一个地址周期的时长。
返回参看图3B,其展示了ONFI协议的地址周期(ADDR Cycle)的波形图。
在地址周期(ADDR Cycle),DQ信号线上出现地址内容,而同时,CLE信号为低、ALE信号为高以及WE信号有效。因而,NADDR微指令执行单元产生的一个地址周期的信号序列包括在tCALS+tCALH时长内保持为低的CLE信号与保持为高的ALE信号,在CLE为低而ALE为高的时间段内产生“高-低-高”变化的WE信号,以及与WE信号为低同时出现的DQ信号,DQ信号的内容来自操作数rs1指定的寄存器A1。可选地,NADDR微指令的执行不影响例如CE、RE、DQS等信号。
在又一种实施方式中,NADDR微指令执行单元产生的一个命令周期的信号序列包括“高-低-高”变化的WE信号,以及与WE信号为低同时出现的DQ信号,而不影响ALE信号与CLE信号。以及通过执行其他自定义微指令来设置一个命令周期中的ALE与CLE信号。
在依然可选的实施方式中,例如对于不同的时序模式,地址周期具有不同的信号序列,相应地NADDR微指令执行单元处理NADDR微指令时产生的信号序列也不同,而是同对应的时序模式所需的信号序列一致。
进一步,介质接口控制器向NVM芯片发送的存储介质访问命令时所对应的一组信号的周期类型除了包括命令周期(CMD Cycle)和地址周期(ADDR Cycle)还包括数据周期(Data Cycle),如数据输入周期(Data In Cycle)与数据输出周期(Data Out Cycle)。当介质接口控制器控制向NVM芯片写入数据或者编程时,介质接口控制器向NVM芯片发送的存储介质访问命令时所对应的一组信号包括数据输入周期(Data In Cycle)。当介质接口控制器控制从NVM芯片读取数据时,介质接口控制器向NVM芯片发送的存储介质访问命令时所对应的一组信号包括数据输出周期(Data Out Cycle)。作为举例,自定义微指令还包括控制生成数据输入周期(Data In Cycle)的微指令(NWR微指令)以及控制生成数据输出周期(Data Out Cycle)的微指令(NRR微指令)。
图7展示了本申请实施例所提供的一种执行NWR微指令的示意图。
作为举例,NWR微指令包括操作码、操作数rs1以及操作数rs2。操作码用于标记其为NWR微指令,而操作数rs1所索引的寄存器中记录了要传输给NVM芯片的数据长度。操作数rs2所索引的寄存器中记录了要传输给NVM芯片的数据。
在图7中,介质接口控制器中的处理器核将其无法处理的NWR微指令发送给译码器。译码器对NWR微指令进行译码,并从至少一个微指令执行单元中选择出一微指令执行单元(下文称为NWR微指令执行单元)来执行NWR微指令。该NWR微指令执行单元响应于译码器对NWR微指令译码,基于NWR微指令的操作数rs1从操作数rs1指定的寄存器A1获取要传输给NVM芯片的数据长度,以及从操作数rs2所索引的寄存器A2中获取要传输给NVM芯片的数据。寄存器A1描述的数据长度用于确定寄存器A2中的哪些数据要传输给NVM芯片。NWR微指令执行单元操作介质接口将要传输给NVM芯片的数据输出到耦合NVM芯片的DQ信号线;以及在耦合NVM芯片的DQS信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期(数据输入周期)的数量等于所述要传输给NVM芯片的数据长度。可选地,NWR微指令执行单元基于单位计时器(图中未标注)的来计时信息来确定一个数据周期的时长。
在数据输入周期(Data In Cycle),DQ信号线上出现要传输给NVM芯片的例如8比特数据,而同时,CLE信号为低、ALE信号为低以及在DQ信号线上出现数据的同时DQS信号发生翻转。因而,NWR微指令执行单元产生的数据输入周期的信号序列包括设置CLE信号与ALE信号均为低,并保持指定时间,CLE信号与ALE信号保持为低的时间依赖于寄存器A1描述的数据长度(数据输入周期的个数)。可以理解地,NWR微指令执行单元执行单条NWR微指令所产生的数据输入周期的数量依赖于寄存器A1描述的数据长度。
NWR微指令执行单元产生的数据输入周期的信号序列还包括,在每个数据输入周期,设置DQS信号发生翻转,以及同时将传输给NVM芯片的数据输出到DQ信号线。
可选地,NWR微指令的执行不影响例如CE、RE、WE等信号。
在又一种实施方式中,NWR微指令执行单元产生的数据输入周期的信号序列包括在每个数据输入周期,设置DQS信号发生翻转,以及同时将传输给NVM芯片的数据输出到DQ信号线,而不影响ALE信号与CLE信号。以及通过执行其他自定义微指令来设置一个或多个数据输入周期所需的ALE与CLE信号。
在依然可选的实施方式中,例如对于不同的时序模式,数据输入周期具有不同的信号序列,相应地NWR微指令执行单元处理NWR微指令时产生的信号序列也不同,而是同对应的时序模式所需的信号序列一致。
图8展示了本申请实施例所提供的一种执行NRR微指令的示意图。
作为举例,NRR微指令包括操作码、操作数rs1以及操作数rs3。操作码用于标记其为NRR微指令,而操作数rs1所索引的寄存器中记录了要从NVM芯片中读取的数据长度。操作数rs3所索引的寄存器用于存储从NVM芯片读出的数据。
在图8中,介质接口控制器中的处理器核将其无法处理的NRR微指令发送给译码器。译码器对NRR微指令进行译码,并从至少一个微指令执行单元中选择出一微指令执行单元(下文称为NRR微指令执行单元)来执行NRR微指令。该NRR微指令执行单元响应于译码器对NRR微指令译码,基于NRR微指令的操作数rs1从操作数rs1指定的寄存器A1获取要从NVM芯片中读取的数据长度。
NRR微指令执行单元操作介质接口从耦合NVM芯片的DQ信号线接收从NVM芯片获取的数据,并记录在操作数rs3指定的寄存器中。。在每个数据输出周期,从DQ信号线接收例如8比特数据,操作数rs1指定的寄存器A1描述的数据输出周期的数量等于要读取的数据长度。要读取的数据长度也用于确定将数据存储在操作数rs3所指定的寄存器中的位置。可选地,NRR微指令执行单元基于单位计时器(图中未标注)的来计时信息来确定一个数据周期的时长。
在数据输出周期(Data Out Cycle),NVM芯片输出DQS信号与DQ信号。在每个数据输出周期,DQ信号是输出的例如8比特数据,而DQS信号的翻转与DQ信号的边沿对齐。因而,NRR微指令执行单元处理NRR微指令时,在每个数据输出周期,响应于在DQS信号线上捕捉到信号翻转,在延迟一段时间后(延迟时间为DQ信号从边沿到中心的时间)采样DQ信号线,将采样到的数据值存储在操作数rs3指定的寄存器中。NRR微指令执行单元依据从操作数rs1指定的寄存器A1获取的数据长度确定要处理的数据输出周期个数。NRR微指令执行单元执行单条NRR微指令所产生的数据输出周期的数量依赖于寄存器A1描述的数据长度。
可选地,在数据输出周期,NRR微指令执行单元还驱动CLE信号为低以及ALE信号为低。以及在每个数据输出周期之前,NRR微指令执行单元还驱动RE信号翻转。
可选地,NRR微指令的执行不影响例如CE、WE等信号。
在又一种实施方式中,NRR微指令执行单元不影响ALE信号与CLE信号。以及通过执行其他自定义微指令来设置一个或多个数据输出周期所需的ALE与CLE信号。
在依然可选的实施方式中,例如对于不同的时序模式,数据输出周期具有不同的信号序列,相应地NRR微指令执行单元处理NRR微指令时产生的信号序列也不同,而是同对应的时序模式所需的信号序列一致。
图9展示了本申请实施例提供的又一种介质接口控制器的结构示意图。
作为举例,如图9所示,介质接口控制器还包括DMA单元,DMA单元与处理器核以及介质接口耦合。处理器核执行标准微指令或者介质接口执行自定义微指令除了可以用上述由处理器核所支持的指令集所定义的指令集架构寄存器来存储执行微指令所需的参数之外,还可以用DMA单元搬移微指令所对应的数据。例如,DMA单元和介质接口中微指令执行单元之间通过缓存(如读缓存或者写缓存)来传输要写入到NVM芯片的数据或者从NVM芯片读出的数据,相应地,操作DMA单元的自定义微指令所描述的数据搬移的源或目的是读缓存或写缓存(数据搬移的另一端是NVM芯片)。
作为举例,自定义微指令还包括不同于上述NWR微指令的另外一种控制生成数据输入周期(Data In Cycle)的微指令(NWD微指令)以及控制生成数据输出周期(Data OutCycle)的微指令(NRD微指令)。
图10展示了本申请实施例所提供的一种执行NWD微指令的示意图。
作为举例,NWD微指令包括操作码、操作数rs1。操作码用于标记其为NWD微指令,而操作数rs1所索引的寄存器中记录了要传输给NVM芯片的数据长度。NWD微指令指示通过数据输入周期从DMA单元向NVM芯片搬移数据,需要生成的数据输入周期数量依赖于操作数rs1所索引的寄存器中记录的数据长度。NWD微指令未显式地包括要传输给NVM芯片的数据的源地址的信息,而是暗示数据来自DMA单元。可从例如写缓存或DMA单元获取要搬移的数据。作为比较,NWD微指令与NWR微指令的区别在于所操作数据的来源不同,这种不同也暗示了其各自操作的数据量不同。对于NWR微指令,其数据来源是寄存器,寄存器通常具有指定的大小,例如32比特或64比特;对于NWD微指令,其数据来源是DMA单元,DMA单元所能连续传输的数据量可以很大,从而单条NWD微指令所要搬移的数据的大小可以不受限制(例如,可以搬移几十KB、上百KB数据)。因而,通过单条NWD微指令,能完成例如对整个物理页进行编程操作时所要传输的数据。
在图10中,介质接口控制器中的处理器核将其无法处理的NWD微指令发送给译码器。译码器对NWD微指令进行译码,并从至少一个微指令执行单元中选择出一微指令执行单元(下文称为NWD微指令执行单元)来执行NWD微指令。该NWD微指令执行单元响应于译码器对NWD微指令译码,基于NWD微指令的操作数rs1从操作数rs1指定的寄存器A1获取要传输给NVM芯片的数据长度,以及根据数据长度从DMA单元获取要传输给NVM芯片的数据。NWD微指令执行单元操作介质接口将所述要传输给NVM芯片的数据输出到耦合NVM芯片的DQ信号线;以及在耦合NVM芯片的DQS信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要传输给NVM芯片的数据长度。可选地,NWD微指令执行单元基于单位计时器(图中未标注)的来计时信息来确定一个数据周期的时长。
NWD微指令执行单元产生的数据输入周期的信号序列包括设置CLE信号与ALE信号均为低,并保持指定时间,CLE信号与ALE信号保持为低的时间依赖于寄存器A1描述的数据长度(数据输出周期的个数)。NWR微指令执行单元执行单条NWR微指令所产生的数据输出周期的数量依赖于寄存器A1描述的数据长度。
NWD微指令执行单元产生的数据输出周期的信号序列还包括,在每个数据输出周期,设置DQS信号发生翻转,以及同时将传输给NVM芯片的数据输出到DQ信号线。
可选地,NWD微指令的执行不影响例如CE、RE、WE等信号。
在又一种实施方式中,NWD微指令执行单元产生的数据输出周期的信号序列包括在每个数据输出周期,设置DQS信号发生翻转,以及同时将传输给NVM芯片的数据输出到DQ信号线,而不影响ALE信号与CLE信号。以及通过执行其他自定义微指令来设置一个或多个数据输出周期所需的ALE与CLE信号。
在依然可选的实施方式中,例如对于不同的时序模式,数据输出周期具有不同的信号序列,相应地NWD微指令执行单元处理NWD微指令时产生的信号序列也不同,而是同对应的时序模式所需的信号序列一致。
图11展示了本申请实施例所提供的一种执行NRD微指令的示意图。
作为举例,NRD微指令包括操作码、操作数rs1。操作码用于标记其为NRD微指令,而操作数rs1所索引的寄存器中记录了要从NVM芯片中读取的数据长度。NRD微指令指示通过数据输入周期从NVM芯片向DMA单元搬移数据,需要生成的数据输入周期数量依赖于操作数rs1所索引的寄存器中记录的数据长度。NRD微指令未显式地包括要传输给DMA单元的数据的目的地址的信息,而是暗示目的地是DMA单元。例如将数据传输给写缓存或DMA单元。作为比较,NRD微指令与NRR微指令的区别在于所操作数据的来源不同,这种不同也暗示了其各自操作的数据量不同。对于NRR微指令,其搬移数据的目的地是寄存器,寄存器通常具有指定的大小,例如32比特或64比特;对于NRD微指令,其数据目的地是DMA单元,DMA单元所能连续传输的数据量可以很大,从而单条NRD微指令所要搬移的数据的大小可以不受限制(例如,可以搬移几十KB、上百KB数据)。
在图11中,介质接口控制器中的处理器核将其无法处理的NRD微指令发送给译码器。译码器对NRD微指令进行译码,并从至少一个微指令执行单元中选择出一微指令执行单元(下文称为NRD微指令执行单元)来执行NRD微指令。该NRD微指令执行单元响应于译码器对NRD微指令译码,基于NRD微指令的操作数rs1从操作数rs1指定的寄存器A1获取要从NVM芯片中读取的数据长度,以及根据数据长度从NVM芯片获取所述数据长度的数据,并传输给DMA单元。NRD微指令执行单元操作介质接口在每个数据输入周期,从耦合NVM芯片的DQ信号线获取例如8比特数据,操作数rs1指定的寄存器A1描述的要读取的数据长度代表了数据输入周期的数量。可选地,NRD微指令执行单元基于单位计时器(图中未标注)的来计时信息来确定一个数据周期的时长。
在数据输出周期(Data Out Cycle),NVM芯片输出DQS信号与DQ信号。在每个数据输出周期,DQ信号是输出的例如8比特数据,而DQS信号的翻转与DQ信号的边沿对齐。因而,NRD微指令执行单元处理NRD微指令时,在每个数据输出周期,响应于在DQS信号线上捕捉到信号翻转,在延迟一段时间后(延迟时间为DQ信号从边沿到中心的时间)采样DQ信号线,将采样到的数据值提供给DMA单元(例如,搬移到读缓存,也参看图9)。NRD微指令执行单元依据从操作数rs1指定的寄存器A1获取的数据长度确定要处理的数据输出周期个数。NRD微指令执行单元执行单条NRD微指令所产生的数据输出周期的数量依赖于寄存器A1描述的数据长度。
可选地,在数据输出周期,NRD微指令执行单元还驱动CLE信号为低以及ALE信号为低。以及在每个数据输出周期之前,NRR微指令执行单元还驱动RE信号翻转。
可选地,NRD微指令的执行不影响例如CE、WE等信号。
在又一种实施方式中,NRD微指令执行单元不影响ALE信号与CLE信号。以及通过执行其他自定义微指令来设置一个或多个数据输出周期所需的ALE与CLE信号。
在依然可选的实施方式中,例如对于不同的时序模式,数据输出周期具有不同的信号序列,相应地NRD微指令执行单元处理NRD微指令时产生的信号序列也不同,而是同对应的时序模式所需的信号序列一致。
可选地,本申请实施例中,译码器接收或者处理NWAIT微指令、NCMD微指令、NADDR微指令、NRR微指令、NWR微指令、NRD微指令或者NWD微指令之前,译码器接收NTM微指令,并对NTM微指令译码;NTM微指令执行单元基于NTM微指令来设置单位定时器的单位计时时长;其中,NWAIT微指令、NCMD微指令、NADDR微指令、NRR微指令、NWR微指令、NRD微指令或者NWD微指令所对应的单位定时器的单位计时时长部分或全部不同。
可选地,在本申请实施例所提供的方案中,NTM微指令执行单元、NWAIT微指令执行单元、NCMD微指令执行单元、NADDR微指令执行单元、NRR微指令执行单元、NWR微指令执行单元、NRD微指令执行单元以及NWD微指令执行单元为不同的微指令执行单元;或者为同一微指令执行单元;或者部分为同一微指令执行单元。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种介质接口控制器,其特征在于,包括:处理器核以及介质接口;其中,处理器核用于执行第一类微指令以及将其无法执行的第二类微指令发给介质接口;介质接口执行所述第二类微指令来实现所述第二类微指令所指示的操作。
2.如权利要求1所述的介质接口控制器,其特征在于,所述介质接口包括译码器以及至少一个微指令执行单元;其中,
所述译码器,接收所述第二类微指令,并对所述第二类微指令译码,根据译码结果选择所述至少一个微指令执行单元之一来执行所述第二类微指令;
所述微指令执行单元,执行由所述第二类微指令指定的操作。
3.如权利要求2所述的介质接口控制器,其特征在于,所述介质接口还包括单位定时器;
所述译码器接收所述第二类微指令中的第一微指令,并对所述第一微指令译码,根据译码结果从所述至少一个微指令执行单元中选择出第一微指令执行单元;
所述第一微指令执行单元,基于所述第一微指令的第一操作数从第一操作数指定的寄存器获取单位计时时长信息,并基于所述单位计时时长信息设置所述单位定时器的单位计时时长。
4.如权利要求2或3所述的介质接口控制器,其特征在于,其中,
所述至少一个微指令执行单元包括第二微指令执行单元;其中,所述第二微指令执行单元与所述单位定时器耦合;
响应于所述译码器对所述第二类微指令中的第二微指令译码,所述第二微指令执行单元,根据所述第二微指令的第一操作数从第一操作数指定的寄存器获取被所述第二微指令操作的所述介质接口控制器的一个或多个输出信号的信号值,根据所述第二微指令的第二操作数从第二操作数指定的寄存器获取计时参数;
所述第二微指令执行单元,基于所述计时参数控制从当前时间开始指定计时时长内,所述第二微指令执行单元设置所述介质接口控制器的一个或多个输出信号的信号值保持不变。
5.如权利要求2-4任一项所述的介质接口控制器,其特征在于,其中,
所述译码器接收所述第二类微指令中的第三微指令,并对所述第三微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第三微指令执行单元来执行所述第三微指令;
所述第三微指令执行单元操作介质接口将所述命令内容输出到耦合NVM芯片的DQ信号线;所述第三微指令执行单元操作介质接口在耦合NVM芯片的CLE与WE信号线上生成ONFI协议所对应的一个命令周期的信号序列。
6.如权利要求2-5任一项所述的介质接口控制器,其特征在于,其中,
所述译码器接收所述第二类微指令中的第四微指令,并对所述第四微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第四微指令执行单元来执行所述第四微指令;
所述第四微指令执行单元操作介质接口将所述要访问NVM芯片的地址输出到耦合NVM芯片的DQ信号线;所述第四微指令执行单元操作介质接口在耦合NVM芯片的ALE与WE信号线上生成ONFI协议所对应的一个地址周期的信号序列。
7.如权利要求2-6任一项所述的介质接口控制器,其特征在于,
所述译码器接收所述第二类微指令中的第五微指令,并对所述第五微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第五微指令执行单元来执行所述第五微指令;
所述第五微指令执行单元操作介质接口将所述要传输给NVM芯片的数据输出到耦合NVM芯片的DQ信号线;所述第五微指令执行单元操作介质接口在耦合NVM芯片的DQS信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要传输给NVM芯片的数据长度。
8.如权利要求2-7任一项所述的介质接口控制器,其特征在于,
所述译码器接收所述第二类微指令中的第六微指令,并对所述第六微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第六微指令执行单元来执行所述第六微指令;
所述第六微指令执行单元操作介质接口从耦合NVM芯片的DQ信号线获取所述从NVM芯片获取的数据;所述第六微指令执行单元操作介质接口在耦合NVM芯片的DQS与RE信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要读取的数据长度。
9.如权利要求2-8任一项所述的介质接口控制器,其特征在于,包括:DMA单元;其中,所述DMA单元与所述处理器核、所述介质接口耦合。
所述译码器接收所述第二类微指令中的第七微指令,并对所述第七微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第七微指令执行单元来执行所述第七微指令;
所述第七微指令执行单元操作介质接口将所述要传输给NVM芯片的数据输出到耦合NVM芯片的DQ信号线;所述第七微指令执行单元操作介质接口在耦合NVM芯片的DQS信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要传输给NVM芯片的数据长度。
10.如权利要求2-9任一项所述的介质接口控制器,其特征在于,其中,
所述译码器接收所述第二类微指令中的第八微指令,并对所述第八微指令译码;根据译码结果从所述至少一个微指令执行单元中选择第八微指令执行单元来执行所述第八微指令;
所述第八微指令执行单元操作介质接口从耦合NVM芯片的DQ信号线获取所述从NVM芯片获取的数据;所述第八微指令执行单元操作介质接口在耦合NVM芯片的DQS与RE信号线上生成ONFI协议所对应的一个或多个数据周期的信号序列,其中数据周期的数量等于所述要读取的数据长度。
CN202211733215.5A 2022-12-30 2022-12-30 一种介质接口控制器 Pending CN118277304A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211733215.5A CN118277304A (zh) 2022-12-30 2022-12-30 一种介质接口控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211733215.5A CN118277304A (zh) 2022-12-30 2022-12-30 一种介质接口控制器

Publications (1)

Publication Number Publication Date
CN118277304A true CN118277304A (zh) 2024-07-02

Family

ID=91640903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211733215.5A Pending CN118277304A (zh) 2022-12-30 2022-12-30 一种介质接口控制器

Country Status (1)

Country Link
CN (1) CN118277304A (zh)

Similar Documents

Publication Publication Date Title
CN107305781B (zh) 存储器装置、存储器系统和控制存储器装置的方法
US8266369B2 (en) Flash memory interface
KR101105489B1 (ko) Nand 플래시 메모리의 커맨드 기반 제어
CN106716383B (zh) 存储器装置和控制存储器装置的方法、存储器系统
US20140082267A1 (en) EMBEDDED MULTIMEDIA CARD (eMMC), HOST CONTROLLING eMMC, AND METHOD OPERATING eMMC SYSTEM
JP2017513089A (ja) コマンドキューイング
US10733122B2 (en) System and method for direct memory access in a flash storage
CN114253461A (zh) 混合通道存储设备
CN114253462A (zh) 提供混合通道存储设备的方法
CN107783917B (zh) 生成nvm芯片接口命令的方法与装置
CN118277304A (zh) 一种介质接口控制器
CN118277303A (zh) 一种介质接口控制器
CN118276764A (zh) 操作nvm芯片执行相关操作的方法及介质接口控制器
CN213338708U (zh) 一种控制部件及存储设备
CN118363660A (zh) 通过微指令序列从nand闪存读取数据
CN108536475B (zh) 完整编程命令处理方法与装置
CN118276934A (zh) 介质接口控制器
CN115480706A (zh) 一种执行指令的方法及介质接口控制器
CN113454720A (zh) 存储设备及其控制方法
CN118276935A (zh) 执行产生数据周期的微指令的介质接口控制器
CN109086003B (zh) 降低集成电路功耗的方法及其介质接口控制器
CN114253464B (zh) 控制读取请求的方法和具有主机装置的存储器控制器
CN114328304B (zh) 存储介质的操作方法和装置
US11704258B2 (en) Latency reduction in SPI flash memory devices
CN113867614A (zh) 自适应nvm读取方法及其装置

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination