CN113032301A - 存储控制器及其片上系统以及电子设备 - Google Patents

存储控制器及其片上系统以及电子设备 Download PDF

Info

Publication number
CN113032301A
CN113032301A CN202110309314.XA CN202110309314A CN113032301A CN 113032301 A CN113032301 A CN 113032301A CN 202110309314 A CN202110309314 A CN 202110309314A CN 113032301 A CN113032301 A CN 113032301A
Authority
CN
China
Prior art keywords
mode
memory
access mode
spi
processor
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
Application number
CN202110309314.XA
Other languages
English (en)
Other versions
CN113032301B (zh
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.)
ARM Technology China Co Ltd
Original Assignee
ARM Technology China 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 ARM Technology China Co Ltd filed Critical ARM Technology China Co Ltd
Priority to CN202110309314.XA priority Critical patent/CN113032301B/zh
Publication of CN113032301A publication Critical patent/CN113032301A/zh
Application granted granted Critical
Publication of CN113032301B publication Critical patent/CN113032301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access
    • G06F2213/1602Memory access type

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请涉及一种存储控制器,应用于片上系统以及电子设备。该存储控制器分别连接处理器和存储器,并且存储控制器用于从处理器接收访问转换参数,并在确定处理器执行完第一指令后,根据接收到的访问转换参数将处理器与存储器之间的传输方式从第一传输方式转换为第二传输方式。通过本申请的存储控制器,在处理器执行待执行指令之前,可以使用暂存的访问转换参数切换自身的输速率以及传输方式,电子设备的处理器无需执行查询存储控制器与存储器之间的总线的操作,提高存储器与存储器之间的传输效率。

Description

存储控制器及其片上系统以及电子设备
技术领域
本申请涉及计算机硬件与架构技术领域,特别涉及一种存储控制器及其片上系统以及电子设备。
背景技术
在片上系统(System-on-a-chip,SoC)中,中央处理器(Central ProcessingUnit,CPU)可以通过串行外设接口(Serial parallel Interface,SPI)闪存控制器(以下称为SPI闪存控制器)访问串行存储器(FLASH,以下称为闪存)。这里的SPI闪存控制器通过SPI总线与闪存连接。
CPU与闪存之间的通讯包括读/写/擦除闪存的数据等传统的操作,也可以配置闪存的工作状态以及读取闪存的状态信息。对于上述CPU与闪存之间的访问,SPI闪存控制器设置有至少三种CPU与闪存之间的访问模式:直接访问模式、间接访问模式和禁能模式,在每一种访问模式下,CPU与闪存之间只能执行与该访问模式对应的操作。例如,在直接访问模式下,CPU可以通过发送地址直接读取闪存内部的数据、执行指令。在间接访问模式下,CPU可以从闪存读取数据或者向闪存写入数据,以及配置闪存。在禁能模式下,CPU无法访问闪存,使得CPU与与闪存之间的访问中断,SPI总线处于静默状态。并且,直接访问模式和间接访问模式还各自对应至少一种配置参数,配置参数用于配置直接访问模式或者间接访问模式下,SPI闪存控制器与闪存之间的数据的传输效率。例如,这里的传输效率可以是SPI闪存控制器与闪存之间传输数据的速度以及传输数据的方式。
通常,SPI闪存控制器进行访问模式切换的方法可以如图1所示,S101:CPU从闪存读取并执行完第一指令后,CPU需要设置闪存的访问模式来执行第二指令,这时,S102:CPU需要查询SPI总线是否处于静默状态,如果是,CPU才能对SPI闪存控制器设置访问模式,并从闪存读取并执行第二指令,如果不是,则CPU需要在等待一段时间后,再次查询SPI总线是否处于静默状态,直至SPI总线处于静默状态后,S103:CPU再对SPI闪存控制器设置访问模式,再执行S104:从闪存读取并执行第二指令。因此,在CPU需要对SPI闪存控制器设置访问模式的情况下,CPU需要额外地查询SPI总线或者是通过其他方式来确认SPI总线上已经没有进行数据传输,降低了片上系统的效率。
发明内容
本申请的目的在于提供一种存储控制器,应用于片上系统以及电子设备,通过本申请的存储控制器,电子设备的处理器可以通过访问转换参数包含的传输速率以及传输方式从存储器读取\写入数据。存储控制器可以暂存访问转换参数;在处理器执行完当前指令至后,接着执行下一条指令之前,使用暂存的访问转换参数切换自身的输速率以及传输方式,而无需处理器执行查询存储控制器与存储器之间的总线的操作。本申请提供的存储控制器和存储器紧密耦合在一起,以提高存储器与存储器之间的传输效率。
本申请的第一方面提供了一种存储控制器,存储控制器分别连接处理器和存储器,并且
存储控制器用于从处理器接收访问转换参数,并在确定处理器执行完第一指令后,根据接收到的访问转换参数将处理器与存储器之间的传输方式从第一传输方式转换为第二传输方式。
即在本申请的实施例中,处理器、存储控制器以及存储器可以分别是CPU、SPI闪存控制器与闪存。SPI闪存控制器与闪存之间通过SPI总线连接。第一传输方式可以是默认的直接访问模式以及默认的配置参数,单线SPI模式。第一指令可以是CPU从闪存读取数据1的指令,访问转换参数中可以包括:第二传输方式也就是间接访问模式以及配置参数,双线SPI模式;在SPI闪存控制器确定SPI闪存控制器与闪存之间的SPI总线上没有数据传输后,即确定CPU执行完第一指令之后,SPI闪存控制器切换至间接访问模式以及双线SPI模式。同时,SPI闪存控制器中还可以存储有第一传输方式对应的访问转换参数。
在上述第一方面的一种可能的实现中,在处理器与存储器之间的传输方式从第一传输方式转换为第二传输方式之后,存储控制器接收处理器发出的第二指令。
即在本申请的实施例中,第二指令可以是CPU向闪存写入数据2的指令。在SPI闪存控制器处于间接访问模式下,数据2通过双线SPI模式写入闪存。
在上述第一方面的一种可能的实现中,还包括:
存储控制器在确定处理器执行完第二指令后,将处理器与存储器之间的传输方式从第二传输方式转换回第一传输方式。
即在本申请的实施例中,在CPU向闪存写入数据2后,SPI闪存控制器可以再次获取第一传输方式对应的访问转换参数,即,直接访问模式和单线SPI模式。
在上述第一方面的一种可能的实现中,包括访问方式寄存器,第一控制单元和第二控制单元,其中,
访问方式寄存器用于存储访问转换参数;
第一控制单元用于确定处理器是否执行完第一指令;
第二控制单元用于将处理器与存储器之间的传输方式从第一传输方式转换为第二传输方式。
在上述第一方面的一种可能的实现中,第二控制单元用于将处理器与存储器之间的传输方式从第二传输方式转换回第一传输方式。
即在本申请的实施例中,第一控制器可以是输入输出控制模块,输入输出控制模块通过判断SPI闪存控制器与闪存之间的SPI总线上是否有数据传输来确定第一指令是否执行完毕。第二控制器可以是运行模式导入单元,运行模式导入单元可以获取暂存的访问转换参数来设置SPI闪存控制器的传输方式。这里的访问方式寄存器可以是配置寄存器组。
在上述第一方面的一种可能的实现中,访问转换参数包括表示处理器访问存储器中数据的方式的参数、以及表示存储控制器与存储器之间数据的传输速率的参数中的至少一种,并且
处理器访问存储器中数据的方式包括处理器能够向存储器写入或者从存储器读取数据、处理器仅能够从存储器读取数据、处理器不能访问存储器。
即在本申请的实施例中,处理器能够向存储器写入或者从存储器读取数据、处理器仅能够从存储器读取数据、处理器不能访问存储器分别是直接访问模式、间接访问模式以及禁能模式;存储控制器与存储器之间数据的传输速率的参数可以是单线SPI模式、双线SPI模式以及四线SPI模式中的一种。
在上述第一方面的一种可能的实现中,存储控制器通过先进高性能总线或先进外围总线与处理器连接。
在上述第一方面的一种可能的实现中,存储控制器通过串行外设接口与存储器连接。
本申请的第二方面提供了一种电子设备,包括:处理器;存储器;以及上述第一方面的存储控制器。
本申请的第三方面提供了一种片上系统,包括:处理器;以及上述第一方面的存储控制器。
本申请的第四方面提供了一种电子设备,包括:上述第三方面的的片上系统;以及存储器。
附图说明
图1是根据本申请实施例示出的一种SPI闪存控制器的访问模式切换的示意图;
图2是根据本申请实施例示出的一种具有SPI闪存控制器的控制系统;
图3是根据本申请实施例示出的一种SPI闪存控制器的访问模式切换的示意图;
图4是根据本申请实施例示出的一种SPI闪存控制器从直接访问模式切换为另一种直接访问模式的示意图;
图5是根据本申请实施例示出的一种SPI闪存控制器从直接访问模式切换为间接访问模式的示意图;
图6根据本申请实施例示出的一种SPI闪存控制器从间接访问模式自动切换为直接访问模式的示意图;
图7是根据本申请实施例示出的一种SPI闪存控制器从直接访问模式切换为禁能模式的示意图;
图8是根据本申请实施例示出的一种SPI闪存控制器从禁能模式切换为间接访问模式的示意图;
图9是根据本申请实施例示出的一种SPI闪存控制器从间接访问模式自动切换为禁能模式的示意图;
图10是根据本申请实施例示出的一种包括SOC和闪存的结构框图;
图11是根据本申请实施例示出的另一种包括SOC和闪存的结构框图;
图12是根据本申请实施例示出的一种包含SPI闪存控制器的CPU的结构框图。
具体实施例
本申请的实施例包括但不限于一种存储控制器,该存储控制器应用于片上系统以及电子设备。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式做进一步地详细描述。
为了解决在CPU控制SPI闪存控制器切换访问模式或者设置SPI闪存控制器与闪存之间的数据的传输效率的配置参数的情况下,CPU需要查询SPI总线的问题,本申请提出了一种SPI闪存控制器的控制方法,在该方法中,CPU从闪存读取并执行指令,该指令的内容可以是CPU与闪存之间进行读写数据。在CPU执行从闪存读取数据的待执行指令之前,CPU可以预先获取该指令对应的访问模式以及配置参数,并发送给SPI闪存控制器;SPI闪存控制器可以暂存该访问模式以及配置参数;在CPU执行完当前指令后,SPI闪存控制器使用暂存的访问模式对自身进行设置,同时获取暂存的访问模式对应的配置参数;在SPI闪存控制器完成访问模式的设置后,CPU可以通过配置参数对应的传输效率通过SPI闪存控制器从闪存读取数据。通过本申请的方法,SPI闪存控制器可以暂存访问模式以及配置参数;在CPU执行完当前指令至后,接着执行待执行指令之前,使用暂存的访问模式切换自身的访问模式,再使用暂存的配置参数完成待执行指令的执行,而无需CPU执行查询SPI总线的操作。本申请提供的方法,通过将闪存控制器和CPU紧密耦合在一起,以提高CPU与闪存之间的传输效率。
图2示出了本申请的实施例中一种包含CPU110、SPI闪存控制器120、内存170以及闪存200的系统,其中,CPU110通过AHB接口322和APB接口312与SPI闪存控制器120连接。闪存200通过SPI接口323与SPI闪存控制器120连接。
内存170用于暂存CPU110从闪存200读取的指令,CPU110可以先将闪存200中的多条指令加载至内存170中暂存,然后CPU110按照指令的执行顺序再从内存170中获取并执行指令。
SPI闪存控制器120包含用于切换访问模式以及设置配置参数的控制寄存器121以及输入输出控制模块125。
输入输出控制模块125用于记录CPU110是否完成与闪存200之间的当前访问。例如,在CPU110通过执行读取数据的执行通过SPI闪存控制器120从闪存200读取数据时,输入输出控制模块125通过记录1表示完成该指令执行完成,也就是SPI闪存控制器120与闪存200之间的SPI总线上没有数据传输,0表示未完成,在本申请的另一实施例中,输入输出控制模块125还可以被称为状态机。
控制寄存器121包括FIFO(First Input First Output,先进先出存储器)410、模式选择寄存器420、配置寄存器组A430、配置寄存器组B440、运行模式导入单元450、选择器460、运行控制单元470。
FIFO410用于存储间接访问模式下需要发送给闪存200的数据以及从闪存200读取的数据。
模式选择寄存器420用于暂存控制访问模式参数。CPU110可以根据配置SPI闪存控制器120的访问模式的指令,将该指令中的控制访问模式参数写入模式选择寄存器420后,该控制访问模式参数可以暂存在模式选择寄存器420中。
这里的控制访问模式参数的数值可以与SPI闪存控制器120支持的访问模式的类型一一对应。例如,直接访问模式对应的控制访问模式参数可以为01、间接访问模式对应的控制访问模式参数可以为02。SPI闪存控制器120还可以支持禁能模式,在禁能模式下,SPI闪存控制器120可以拒绝CPU110通过SPI闪存控制器120向闪存200发送数据的请求。禁能模式对应的控制访问模式参数可以为03。同时,模式选择寄存器420中还可以设置有控制访问模式参数变化的历史纪录,这里的历史纪录用于记录前一次的控制访问模式参数。可以理解,在本申请的一个实施例中,模式选择寄存器420中的配置值还可以是例如:1/2(间接模式)或者0/1(直接模式)。
配置寄存器组A430和配置寄存器组B440分别为直接访问模式和间接访问模式对应的寄存器组,分别用于暂存直接访问模式和间接访问模式下,SPI闪存控制器120与闪存200之间的传输效率对应的配置参数。例如,直接访问模式下,配置寄存器组A430中暂存的配置参数可以配置为A1、A2。间接访问模式下,配置寄存器组B440中暂存的配置参数可以配置为B1。这里的A1、A2和B1可以对应于单线SPI模式,双线SPI模式,四线SPI模式等中的一种。单线SPI模式,双线SPI模式以及四线SPI模式之间的一个区别可以是,单线SPI模式表示SPI闪存控制器120与闪存200之间读取、写入数据都是通过两条方向相反的数据线来实现的;双线SPI模式表示SPI闪存控制器120与闪存200之间可以通过两条SPI数据线同时读取数据或者同时写入数据;四线SPI模式表示SPI闪存控制器120与闪存200之间可以通过四条SPI数据线同时读取数据或者同时写入数据。可以理解,除了上述传输数据的数据线的数目不同,上述三种模式的区别还可以包括传输的方式的配置值等。
运行模式导入单元450用于在每一次有控制访问模式参数写入模式选择寄存器420后,运行模式导入单元450通过输入输出控制模块125确定CPU110完成与闪存200之间的当前访问后,控制运行模式导入单元450将模式选择寄存器420中的控制访问模式参数发送给选择器460。
选择器460根据运行模式导入单元450发送的控制访问模式参数,选择与控制访问模式参数对应的配置寄存器组A430或配置寄存器组B440的配置参数并发送给运行控制单元470。也就是说,在上述运行模式导入单元450将模式选择寄存器420中的控制访问模式参数发送给选择器460的同一个周期内,选择与控制访问模式参数对应的配置寄存器组A430或配置寄存器组B440的配置参数并发送给运行控制单元470。例如,在控制访问模式参数对应于直接访问模式的情况下,选择器460可以获取配置寄存器组A430的配置参数;在控制访问模式参数对应于间接访问模式的情况下,选择器460可以获取配置寄存器组B440的配置参数。
运行控制单元470用于确定SPI闪存控制器120的访问模式,同时,在CPU110执行指令通过SPI闪存控制器120向闪存200写入数据或者从闪存200读取数据的同时,运行控制单元470还使用配置参数来配置SPI闪存控制器120与闪存200之间的数据的传输效率。
在本申请的实施例中,CPU110从闪存200获取了读取数据的待执行指令,在CPU110执行该待执行指令之前,CPU110可以通过APB接口312向配置寄存器组A430和配置寄存器组B440发送当前指令之后的待执行指令对应的传输效率的配置参数,以及向模式选择寄存器420发送待执行指令的控制访问模式参数;在运行模式导入单元450确定SPI闪存控制器120与闪存200之间的SPI总线上没有数据传输后,也就是当前指令执行完毕后,运行模式导入单元450将暂存的控制访问模式参数发送选择器460,选择器460获取与控制访问模式参数对应的配置寄存器组A430或配置寄存器组B440的配置参数后,发送给运行控制单元470,实现访问模式的切换;最后,CPU110通过SPI闪存控制器120与闪存200之间使用待执行指令对应的配置参数执行该待执行指令。
在本申请的另一实施例中,在从非间接访问模式(直接访问模式或是禁能模式)切换到间接访问模式的情况下,在CPU110执行完待执行指令后,也就是,SPI闪存控制器120与闪存200之间没有数据传输后,SPI闪存控制器120可以将访问模式切换回前一次的访问模式,以实现SPI闪存控制器120访问模式的自动切换。例如,在SPI闪存控制器120经过从直接访问模式切换为间接访问模式后,模式选择寄存器420会自动将控制访问模式参数值切换回直接访问模式的控制访问模式参数值,运行模式导入单元450将切换回的控制访问模式参数发送选择器460,选择器460获取与控制访问模式参数对应的配置寄存器组A430的配置参数后,发送给运行控制单元470,实现访问模式的切换。
图3是根据本申请实施例示出的一种SPI闪存控制器120的访问模式切换的示意图。
如图3所示。SPI闪存控制器120可以支持三种访问模式:直接访问模式、间接访问模式和禁能模式。
在直接访问模式下,SPI闪存控制器120支持CPU110从闪存200读取指令,以及执行指令从闪存200读取数据,例如,读取闪存200存储的数据。在本申请的实施例中,直接访问模式可以是SPI闪存控制器120的默认模式,也就是在SPI闪存控制器120上电后,SPI闪存控制器120进入直接访问模式。
在间接访问模式下,SPI闪存控制器120支持CPU110与闪存200之间的所有操作,例如,与闪存200之间读写数据;擦除闪存200中存储的数据;设置闪存200的运行参数;读取闪存200的状态。
在禁能模式下,CPU不能通过SPI闪存控制器120向闪存200发送或是从闪存200获取数据,或是控制闪存的状态。
图4是根据本申请实施例示出的一种SPI闪存控制器120在直接访问模式下,根据不同的传输效率对应的配置参数,对SPI闪存控制器120进行配置,以实现CPU110通过SPI闪存控制器120访问闪存200的示意图。
下面结合表1,以CPU110通过SPI闪存控制器120从闪存200读取指令并执行为例,对图4中的流程进行详细描述。表1中记载了闪存200中存储的第一指令至第三指令,CPU110按1至3的顺序执行待执行指令。在图4示出的示意图中,在CPU110从闪存200获取指令之前,SPI闪存控制器120的默认访问模式为直接访问模式,SPI闪存控制器120的配置参数为默认的配置参数,例如,可以是A1。
Figure BDA0002989130360000061
Figure BDA0002989130360000071
表1
这里的第一指令是,CPU110从闪存200读取数据1的指令。CPU110和SPI闪存控制器120可以通过执行如下步骤S401a至S401b来完成第一指令的获取和执行。
S401a:CPU110从闪存200获取了读取数据1的第一指令。
这里,如表1所示,CPU110可以通过SPI闪存控制器120从闪存200获取并执行读取数据1的第一指令。这里的,数据1可以存储在闪存中,获取了读取数据1的第一指令的同时,还可以获取数据1在闪存200中的地址。
S401b:CPU110执行从闪存200读取数据1的第一指令。
CPU110获取了第一指令后,确定了第一指令的内容,也就是从闪存读取数据1。之后,CPU110执行该第一指令,也就是从闪存200读取数据1。这时,SPI闪存控制器120的默认的访问模式为直接访问模式,并使用配置参数A1配置了SPI闪存控制器120与闪存200之间的数据的传输效率。CPU110可以在直接访问模式下,通过SPI闪存控制器120使用A1对应的传输效率从闪存200读取数据1。数据1也可以从闪存200传输至SPI闪存控制器120,再传输至CPU110。这里的A1可以是闪存200上电后默认的配置参数。
在CPU110读取并执行了第一指令后,CPU110依次读取并执行第二指令。
这里的第二指令是,CPU110设置SPI闪存控制器120为直接访问模式,以及SPI闪存控制器120与闪存200之间的数据的传输效率为A2的指令。CPU110和SPI闪存控制器120可以通过执行如下步骤S402a至S402g来完成第二指令的获取和执行。
S402a:CPU110从闪存200获取设置SPI闪存控制器120的控制访问模式参数和配置参数的第二指令。
例如,CPU110获取了第二指令后,确定第二指令的内容,该内容可以是将第二指令中包含配置参数A2以及控制访问模式参数01分别写入SPI闪存控制器120。这里的控制访问模式参数01对应一种SPI闪存控制器120的访问模式,例如,直接访问模式。这里的使用配置参数A2对应一种SPI闪存控制器120与闪存200之间的数据的传输效率,例如,A2对应双线SPI模式。
S402b:CPU110向SPI闪存控制器120的配置寄存器组A430写入配置参数。
例如,在CPU110从第二指令中获取了配置参数A2后,CPU110将CPU110将配置参数A2写入配置寄存器A430,使得配置寄存器A430中的数值更改为配置参数A2。这里,第二指令中可以包含配置参数A2以及用于存储配置参数A2的配置寄存器A430的地址,CPU110可以根据配置寄存器A430的地址将配置参数A2写入配置寄存器A430。
S402c:CPU110向SPI闪存控制器120的模式选择寄存器420写入控制访问模式参数。
例如,这里的S402c与上述S402b类似,在第二指令中可以包含控制访问模式参数01以及用于存储控制访问模式参数01的模式选择寄存器420的地址,CPU110可以根据模式选择寄存器420的地址将控制访问模式参数01写入模式选择寄存器420。
在CPU110将控制访问模式参数以及配置参数分别写入SPI闪存控制器120的模式选择寄存器420和配置寄存器A430后,进入S402d。
S402d:运行模式导入单元450确定第一指令是否执行完毕。在第一指令执行完毕的情况下,执行S402e。如果没有执行完,则运行模式导入单元450等待第一指令执行完毕。
这里,运行模式导入单元450可以通过输入输出控制模块125记录的第一指令的标志位来确定第一指令是否执行完毕,在输入输出控制模块125的标志位为1的情况下,表示完成,0表示未完成。第一指令执行完毕,也就是CPU110完成从闪存200读取数据1,这时,SPI闪存控制器120与闪存200之间的SPI总线上没有数据传输。
S402e:运行模式导入单元450将模式选择寄存器420的控制访问模式参数发送给选择器460。
这里,在运行模式导入单元450确定了第一指令执行完毕后,运行模式导入单元450从模式选择寄存器420中获取存储的控制访问模式参数01,将控制访问模式参数01发送给选择器460。
S402f:选择器460从与控制访问模式参数对应的配置寄存器组A430中获取配置参数,并将控制访问模式参数以及配置参数发送给运行控制单元470。
例如,选择器460设置为从与控制访问模式参数对应的配置寄存器组中获取配置参数,并将获取的配置参数和控制访问模式参数发送给运行控制单元470。在选择器460获取的控制访问模式参数为01的情况下,选择器460可以从配置寄存器组A430中选择与01对应的配置参数A2。
S402g:运行控制单元470使用配置参数和控制访问模式参数来设置SPI闪存控制器120。
例如,在运行控制单元470收到控制访问模式参数01以及配置参数A2后,运行控制单元470将SPI闪存控制器120的访问模式切换至与控制访问模式参数01对应的直接访问模式,同时,运行控制单元470使用来配置参数A2设置SPI闪存控制器120与闪存200之间的数据的传输效率,例如,A2可以对应SPI双线模式。可以理解,这里的第二指令中包含的控制访问模式参数01对应的访问模式与SPI闪存控制器120的默认的访问模式相同,都是直接访问模式,运行控制单元470可以不改变SPI闪存控制器120的访问模式。
在CPU110执行完设置SPI闪存控制器120的访问模式和配置参数的第二指令后,CPU110读取并执行第三指令。下面的S403a至S403b与上述的S401a至S401b类似,不同之处在于,SPI闪存控制器120重新设置了与闪存200之间的数据的传输效率。
S403a:CPU110从闪存200获取了读取数据2的第三指令。
这里,如表1所示,CPU110可以通过SPI闪存控制器120从闪存200获取读取数据2的第三指令,获取了读取数据2的第三指令的同时,还可以获取数据2在闪存200中的地址。
S403b:CPU110执行从闪存200读取数据2的第三指令。
这时,SPI闪存控制器120的默认的访问模式为直接访问模式,并使用配置参数A2配置了SPI闪存控制器120与闪存200之间的数据的传输效率。CPU110可以在直接访问模式下,通过A2对应的传输效率从闪存200读取数据2。例如,A2可以对应双线SPI模式,双线SPI模式表示CPU110可以通过两条SPI数据线同时从闪存200读取数据2。
上述图4提供了SPI闪存控制器120在同一访问模式下,SPI闪存控制器120通过切换与闪存200之间的数据的传输效率,以实现CPU110执行指令从闪存200读取数据的过程。下面将介绍一种SPI闪存控制器120切换自身的访问模式的过程。
图5是根据本申请实施例示出的一种SPI闪存控制器120从直接访问模式切换为间接访问模式,以实现CPU110执行指令通过SPI闪存控制器120从闪存200读取数据的示意图。
下面结合表2,以CPU110通过SPI闪存控制器120从闪存200读取指令并执行为例,对图5中的流程进行详细描述。表2中记载了闪存200中存储的第一指令至第三指令,CPU110按1至3的顺序执行待执行指令。这里,在CPU110从闪存200获取指令之前,SPI闪存控制器120的默认访问模式为与待执行指令对应的直接访问模式,SPI闪存控制器120的配置参数为A1。
Figure BDA0002989130360000091
表2
这里的第一指令是,CPU110从闪存200读取数据1的指令。CPU110和SPI闪存控制器120可以通过执行如下步骤S501a至S501b来完成第一指令的获取和执行。S501a至S501b与图4中的S401a至S401b相同。
S501a:CPU110从闪存200获取了读取数据1的第一指令。
这里,如表2所示,CPU110可以通过SPI闪存控制器120从闪存200获取并执行读取数据1的第一指令。这里的,数据1可以存储在闪存中,获取了读取数据1的第一指令的同时,还可以获取数据1在闪存200中的地址。
S501b:CPU110执行从闪存200读取数据1的第一指令。
CPU110获取了第一指令后,确定了第一指令的内容,也就是从闪存读取数据1。之后,CPU110执行该第一指令,也就是从闪存200读取数据1。这时,SPI闪存控制器120的默认的访问模式为直接访问模式,并使用配置参数A1配置了SPI闪存控制器120与闪存200之间的数据的传输效率。CPU110可以在直接访问模式下,通过A1对应的传输效率从闪存200读取数据1。数据1也可以从闪存200传输至SPI闪存控制器120,再传输至CPU110。
在CPU110读取并执行了第一指令后,CPU110依次读取并执行第二指令。
这里的第二指令是,CPU110设置SPI闪存控制器120为间接访问模式,以及SPI闪存控制器120与闪存200之间的数据的传输效率为B1的指令。CPU110和SPI闪存控制器120可以通过执行如下步骤S502a至S502g来完成第二指令的获取和执行。S502a至S502g与图4中的S402a至S402g相似,不同之处在于通过执行S502a至S502g后,SPI闪存控制器120的访问模式切换为间接访问模式,SPI闪存控制器120与闪存200之间的数据的传输效率为B1对应的传输效率。
S502a:CPU110从闪存200获取设置SPI闪存控制器120的控制访问模式参数和配置参数的第二指令。
例如,CPU110获取了第二指令后,确定第二指令的内容是将配置参数B1以及控制访问模式参数02分别写入SPI闪存控制器120。这里的控制访问模式参数02可以对应间接访问模式。这里的使用配置参数B1对应一种SPI闪存控制器120与闪存200之间的数据的传输效率,例如DDR模式。
S502b:CPU110向SPI闪存控制器120的配置寄存器组B440写入配置参数。
例如,CPU110可以根据第二指令中包含配置参数B1以及用于存储配置参数B1的配置寄存器B440的地址,将配置参数B1写入配置寄存器B440。
S502c:CPU110向SPI闪存控制器120的模式选择寄存器420写入控制访问模式参数。
例如,这里的S502c与上述S502b类似,CPU110可以根据在第二指令中的模式选择寄存器420的地址将控制访问模式参数02写入模式选择寄存器420。
在CPU110将控制访问模式参数以及配置参数分别写入SPI闪存控制器120的模式选择寄存器420和配置寄存器B440后,进入S502d。
S502d:运行模式导入单元450确定第一指令是否执行完毕。在第一指令执行完毕的情况下,执行S402e。如果没有执行完,则运行模式导入单元450等待第一指令执行完毕。
这里,S502d与图4中的S402d相同,运行模式导入单元450可以在输入输出控制模块125的标志位为1的情况下,也就是第一指令执行完毕的情况下,执行S502e。第一指令执行完毕,也就是CPU110完成从闪存200读取数据1,这时,SPI闪存控制器120与闪存200之间的SPI总线上没有数据传输。
S502e:运行模式导入单元450将模式选择寄存器420的控制访问模式参数发送给选择器460。
这里,S502e与图4中的S402e相同,运行模式导入单元450从模式选择寄存器420中获取存储的控制访问模式参数02,将控制访问模式参数02发送给选择器460。
S502f:选择器460从与控制访问模式参数对应的配置寄存器组B440中获取配置参数,并将控制访问模式参数以及配置参数发送给运行控制单元470。
这里,S502f与图4中的S402f相同,例如,在选择器460获取的控制访问模式参数为02的情况下,选择器460可以从配置寄存器组B440中选择与02对应的配置参数B1,将控制访问模式参数为02和配置参数B1发送给运行控制单元470。
S502g:运行控制单元470使用配置参数和控制访问模式参数来设置SPI闪存控制器120。
这里,S502g与图4中的S402g相似,不同之处在于,运行控制单元470将SPI闪存控制器120的访问模式切换至与控制访问模式参数02对应的间接访问模式,同时,运行控制单元470使用来配置参数B1设置SPI闪存控制器120与闪存200之间的数据的传输效率,例如,B1可以对应DDR模式。
在CPU110执行完设置SPI闪存控制器120的访问模式和配置参数的第二指令后,CPU110获取并执行第三指令。
S503a:CPU110从闪存200获取了写入数据2的第三指令。
这里,如表2所示,CPU110可以通过SPI闪存控制器120从闪存200获取写入数据2的第三指令,写入数据2的第三指令中还可以包含数据2将要在闪存200中存储的地址。
S503b:CPU110执行从闪存200写入数据2的第三指令。
这时,SPI闪存控制器120的访问模式为间接访问模式,并使用配置参数B1配置了SPI闪存控制器120与闪存200之间的数据的传输效率。CPU110可以在间接访问模式下,通过B1对应的传输效率从将数据2写入闪存200。
经过图5中所示的过程,SPI闪存控制器120从直接访问模式切换至间接访问模式,并且CPU110在SPI闪存控制器120处于间接访问模式下,通过配置参数B1对应的传输效率执行完第三指令。
在上述图4和图5所示的过程中,SPI闪存控制器120在最初处于直接访问模式,在SPI闪存控制器120从直接访问模式切换至间接访问模式后,在间接访问模式下,CPU110通过SPI闪存控制器120向闪存200发送完指令的情况下,SPI闪存控制器120可以切换回直接访问模式,也就是说,在SPI闪存控制器处于间接访问模式的情况下,可以自动切换回前一次的访问模式。
图6根据本申请实施例示出的一种SPI闪存控制器120从间接访问模式切换回直接访问模式的示意图。下面对图6中的流程进行详细描述。这里,图6中示出的流程可以是紧接在图5中示出的流程之后,也就是说,在SPI闪存控制器120处于间接访问模式下,CPU110通过SPI闪存控制器120执行完表2中的第三指令后,SPI闪存控制器120将切换回直接访问模式,且SPI闪存控制器120使用来配置参数A1设置SPI闪存控制器120与闪存200之间的数据的传输效率。
S601:运行模式导入单元450确定第三指令是否执行完毕。在第三指令执行完毕的情况下,则执行S602,运行模式导入单元450获取前一次的控制访问模式参数。如果没有执行完,则运行模式导入单元450等待第三指令执行完毕。
继续参考图6,在CPU110执行完表2的第三指令后,输入输出控制模块125记录的第三指令的标志为1,在运行模式导入单元450确定输入输出控制模块125的标志位为1,运行模式导入单元450执行S602。这里的输入输出控制模块125实现的功能与图4中的相同,在输入输出控制模块125的标志位为1的情况下,表示第三指令执行完成,0表示未完成。
S602:运行模式导入单元450从模式选择寄存器420获取前一次的控制访问模式参数发送给选择器460。
这里,模式选择寄存器420可以存储有控制访问模式参数变化的历史纪录,运行模式导入单元450可以根据该历史纪录获取前一次的控制访问模式参数。模式选择寄存器420可以通过控制访问模式参数变化的顺序依次记录控制访问模式参数变化的历史纪录。例如,01;01;02表示控制访问模式参数经过3次变化,当前的控制访问模式参数为02,因此,运行模式导入单元450可以基于当前的控制访问模式参数获取前一次的控制访问模式参数。
S603:选择器460从与控制访问模式参数对应的配置寄存器组A430中获取配置参数,并将控制访问模式参数以及配置参数发送给运行控制单元470。
这里,S603与图4中的S402f相同,例如,在选择器460获取的控制访问模式参数为01的情况下,选择器460可以从配置寄存器组A430中选择与01对应的配置参数A1,并将控制访问模式参数为01和配置参数A1发送给运行控制单元470。可以理解,图6中的过程是紧接在图5的过程之后,也就是说,配置寄存器组A430中的仍旧存储有默认模式,也就是直接访问模式对应的配置参数A1。
S604:运行控制单元470使用配置参数和控制访问模式参数来设置SPI闪存控制器120。
这里,S604与图4中的S402g相似,不同之处在于,运行控制单元470将SPI闪存控制器120的访问模式切换至与控制访问模式参数01对应的直接访问模式,同时,运行控制单元470使用来配置参数A1设置SPI闪存控制器120与闪存200之间的数据的传输效率。
在图5和图6中示出的SPI闪存控制器120,从直接访问模式切换为间接访问模式再返回为直接访问模式的过程中,SPI闪存控制器120中SPI闪存控制器120与闪存200之间的数据的传输效率也相应地从A1设置为B1再设置为A1。在图6中的过程中,CPU110不需要通过获取执行指令的方式向SPI闪存控制器120写入访问模式的控制访问模式参数以及SPI闪存控制器120与闪存200之间的数据的传输效率对应的配置参数来设置SPI闪存控制器120。
在本申请的一些实施例中,在SPI闪存控制器120从直接访问模式切换为间接访问模式之前,SPI闪存控制器120还可以从直接访问模式切换为禁能模式,在SPI闪存控制器120处于禁能模式下,CPU110不能通过SPI总线访问闪存200,使得CPU110可以完成需要写入闪存200的数据的计算。在CPU110完成数据的计算后,SPI闪存控制器120从禁能模式切换为间接访问模式,将数据写入闪存200。例如,在CPU110需要较长的时间来计算写入闪存200的数据的情况下,如果在CPU110进行数据计算的过程中,SPI闪存控制器120仍处于直接访问模式下,当CPU110再次从闪存200读取数据时,该读取数据的指令会使CPU110读取到正在写入的数据,造成数据不一致。
图7是根据本申请实施例示出的一种SPI闪存控制器120从直接访问模式切换为禁能模式的示意图。图8是根据本申请实施例示出的一种SPI闪存控制器120从禁能模式切换为直接访问模式的流程图。下面结合表3,图7和图8,对SPI闪存控制器120从直接访问模式切换为禁能模式,再从禁能模式切换为间接访问模式的流程进行详细描述。在图7所示的过程中,表3中的第一指令至第四指令可以一次性从闪存200读取至CPU110后,由CPU110按表3中的序号顺序执行。
Figure BDA0002989130360000121
表3
这里,图7中,在CPU110从闪存200获取指令之前,SPI闪存控制器120的默认访问模式为与待执行指令对应的直接访问模式,SPI闪存控制器120的配置参数为A1。CPU110可以将表3中的第一指令至第四指令可以一次性从闪存200读取至CPU110,然后CPU110依次执行第一指令至第四指令。在本申请的实施例中,CPU110可以将表3中的第一指令至第四指令加载至如图2所示的内存170中,并按照表3中的顺序依次从内存170中读取第一指令至第四指令并执行。
S701:CPU110从内存170获取设置SPI闪存控制器120的控制访问模式参数的第一指令。
例如,CPU110获取了第一指令后,确定第一指令的内容是将控制访问模式参数03写入SPI闪存控制器120。这里的控制访问模式参数03可以对应禁能模式。
S702:CPU110向SPI闪存控制器120的模式选择寄存器420写入控制访问模式参数。
例如,CPU110可以根据在第一指令中的模式选择寄存器420的地址将控制访问模式参数03写入模式选择寄存器420。
S703:运行模式导入单元450确定是否有指令发送给闪存200。如果没有,执行S704。如果有,则运行模式导入单元450等待该指令执行完毕。
这里,由于CPU110在获取并执行表3中的第一指令前,没有其他执行指令,因此,运行模式导入单元450可以确定输入输出控制模块125的标志位为1,执行S704。
S704:运行模式导入单元450将模式选择寄存器420的控制访问模式参数发送给选择器460。
这里,运行模式导入单元450从模式选择寄存器420中获取存储的控制访问模式参数03,将控制访问模式参数03发送给选择器460。
S705:选择器460将控制访问模式参数发送给运行控制单元470。
这里,由于在禁能模式下,CPU110无法访问闪存200,因此,禁能模式没有对应的传输效率。选择器460直接将获取的控制访问模式参数03发送给运行控制单元470。
S706:运行控制单元470使用控制访问模式参数来设置SPI闪存控制器120。
这里,运行控制单元470将SPI闪存控制器120的访问模式切换至与控制访问模式参数03对应的禁能模式,由于在禁能模式下,CPU110无法访问闪存200,运行控制单元470无需配置SPI闪存控制器120与闪存200之间的数据的传输效率。
S707:CPU110从内存170获取计算数据1的第二指令。
这里,如表3所示,在CPU110获取的计算数据1的第二指令中可以包含数据1的计算过程。
S708:CPU110执行计算数据1的第二指令。
这时,SPI闪存控制器120的访问模式为禁能模式。CPU110可以在禁能模式下,完成对数据1的计算。例如,CPU110可以通过执行位运算,指数运算,对数运算等方法对对数据1进行计算。
在CPU110完成数据1的计算后,CPU110需要获取并执行表3中的第三指令,将SPI闪存控制器120的访问模式切换至间接访问模式,使得CPU110可以获取并执行表3中的第四指令,向闪存200写入数据1。
下面结合图8对SPI闪存控制器120从禁能模式切换为间接访问模式,以实现CPU110执行指令通过SPI闪存控制器120向闪存200写入数据进行详细描述。
S801a:CPU110从内存170获取设置SPI闪存控制器120的控制访问模式参数和配置参数的第三指令。
例如,CPU110获取了第三指令后,确定第三指令的内容是将配置参数B1以及控制访问模式参数02分别写入SPI闪存控制器120。
S801b:CPU110向SPI闪存控制器120的配置寄存器组B440写入配置参数。
例如,CPU110可以根据第三指令中包含配置参数B1以及用于存储配置参数B1的配置寄存器B440的地址,将配置参数B1写入配置寄存器B440。
S801c:CPU110向SPI闪存控制器120的模式选择寄存器420写入控制访问模式参数。
例如,CPU110可以根据在第三指令中的模式选择寄存器420的地址将控制访问模式参数01写入模式选择寄存器420。
S801d:运行模式导入单元450确定是否有指令发送给闪存200。如果没有,执行S801e。如果有,则运行模式导入单元450等待该指令执行完毕。
这里,由于CPU110执行表3中的第三指令时,该第三指令没有通过SPI闪存控制器120发送给闪存200,因此,运行模式导入单元450可以确定输入输出控制模块125的标志位为1,执行S801e。
S801e:运行模式导入单元450将模式选择寄存器420的控制访问模式参数发送给选择器460。
这里,运行模式导入单元450从模式选择寄存器420中获取存储的控制访问模式参数02,将控制访问模式参数02发送给选择器460。
S801f:选择器460从与控制访问模式参数对应的配置寄存器组B440中获取配置参数,并将控制访问模式参数以及配置参数发送给运行控制单元470。
这里,在选择器460获取的控制访问模式参数为02的情况下,选择器460可以从配置寄存器组B440中选择与02对应的配置参数B1,将控制访问模式参数为02和配置参数B1发送给运行控制单元470。
S801g:运行控制单元470使用配置参数和控制访问模式参数来设置SPI闪存控制器120。
这里,运行控制单元470将SPI闪存控制器120的访问模式切换至与控制访问模式参数02对应的间接访问模式,同时,运行控制单元470使用来配置参数B1设置SPI闪存控制器120与闪存200之间的数据的传输效率。
在CPU110执行完设置SPI闪存控制器120的访问模式和配置参数的第三指令后,CPU110获取并执行第三指令。
S802a:CPU110从内存170获取了写入数据1的第四指令。
这里,如表3所示,CPU110可以通过SPI闪存控制器120从闪存200获取写入数据1的第四指令,写入数据1的第四指令中还可以包含数据1将要在闪存200中存储的地址。
S802b:CPU110执行向闪存200写入数据1的第四指令。
这时,SPI闪存控制器120的访问模式为间接访问模式,并使用配置参数B1配置了SPI闪存控制器120与闪存200之间的数据的传输效率。CPU110可以在间接访问模式下,通过B1对应的传输效率从将数据1写入闪存200。
在本申请的一些实施例中,在CPU110通过图8中的过程将表3中的第一指令至第四指令执行完毕后,SPI闪存控制器120当前处于间接访问模式下,这时,SPI闪存控制器120还可以自动切换回上一个访问模式,也就是禁能模式。图9是根据本申请实施例示出的一种SPI闪存控制器120从间接访问模式切换为禁能模式的示意图。下面对图9中的流程进行详细描述。这里,图9中示出的流程可以是紧接在图8中示出的流程之后。
如图9所示,这里的S901至S904与图6中的S601至S604类似,不同之处在于在S901至S904的过程中,SPI闪存控制器120从间接访问模式切换为禁能模式。由于在禁能模式下,CPU110无法访问闪存200,因此没有SPI闪存控制器120与闪存200之间的数据的传输效率,也就是说,SPI闪存控制器120中无需设置禁能模式对应的配置参数。这里的步骤S901至S904与上述图6中的步骤S601至S604相似。
S901:运行模式导入单元450确定第四指令是否执行完毕。在第四指令执行完毕的情况下,则执行S902,运行模式导入单元450获取前一次的控制访问模式参数。如果没有执行完,则运行模式导入单元450等待第四指令执行完毕。
继续参考图9,在CPU110执行完表3的第四指令后,输入输出控制模块125记录的第四指令的标志为1,在运行模式导入单元450确定输入输出控制模块125的标志位为1,运行模式导入单元450执行S902。
S902:运行模式导入单元450从模式选择寄存器420获取前一次的控制访问模式参数发送给选择器460。
这里,模式选择寄存器420可以通过控制访问模式参数变化的顺序依次记录控制访问模式参数变化的历史纪录。例如,01;03;02表示控制访问模式参数经过3次变化,当前的控制访问模式参数为02,因此,运行模式导入单元450可以基于当前的控制访问模式参数获取前一次的控制访问模式参数03。
S903:选择器460将控制访问模式参数送给运行控制单元470。
这里,由于在禁能模式下,CPU110无法访问闪存200,因此,禁能模式没有对应的传输效率。选择器460直接将获取的控制访问模式参数03发送给运行控制单元470。
S904:运行控制单元470使用控制访问模式参数来设置SPI闪存控制器120。
这里,运行控制单元470将SPI闪存控制器120的访问模式切换至与控制访问模式参数03对应的禁能模式,由于在禁能模式下,CPU110无法访问闪存200,运行控制单元470无需配置SPI闪存控制器120与闪存200之间的数据的传输效率。
在图9所示的步骤S901至S904执行完毕后,SPI闪存控制器120处于禁能模式。在本申请的另一个实施例中,直接访问模式可以是SPI闪存控制器120的默认访问模式,配置参数A1对应的传输效率可以是CPU110与闪存200之间的默认传输效率。当SPI闪存控制器120处于禁能模式时,在经过一个等待时长后,CPU110未向SPI闪存控制器120执行设置SPI闪存控制器120的控制访问模式参数和配置参数的指令的情况下,运行控制单元470可以将SPI闪存控制器120从禁能模式切换为直接访问模式。例如,该等待时长可以设置为5s,也就是在进入禁能模式后经过5s,CPU110未向SPI闪存控制器120执行设置SPI闪存控制器120的控制访问模式参数和配置参数的指令,运行控制单元470将SPI闪存控制器120从禁能模式切换为直接访问模式。
图10是根据本申请实施例示出的一种包括SOC100和闪存200的系统框图。
如10图所示,闪存200通过SPI接口与SOC100连接。其中,SOC 100包括CPU110、SPI闪存控制器120、直接存储器访问(Direct Memory Access,DMA)单元130和静态随机存取存储器(Static Random-Access Memory,SRAM)单元140、总线150。
其中,SPI闪存控制器120通过CPU110的内部总线与CPU110连接,用于控制CPU110对闪存200的访问。
DMA单元130和SRAM单元140通过总线150互相连接。
DMA单元130,用于将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。例如,DMA单元130可以通过SPI闪存控制器120将闪存200中的数据进行搬运,并将数据存放到SRAM单元160。
SRAM单元140通电状态下储存数据,断电后SRAM160储存的数据会消失。
在本申请的实施例中,SPI闪存控制器120可以通过任意符合片上总线协议的总线与任意类型的CPU110连接,并进行信号传输,不限于本文中提到的示例性的总线协议。
总线150可以包括三种总线:AHB(先进高性能总线,Advanced High performanceBus)、APB(advanced peripheral bus,先进外围总线)和ASB(advanced system bus,先进系统总线)。
图11是根据本申请实施例示出的另一种包括SOC100和闪存200的系统框图。
图11与图10所示的系统框图的不同之处在于,在图11中SPI闪存控制器120连接在SOC100的系统总线上,位于CPU110的外部,与CPU110通过总线140连接;而图10中所示的SPI闪存控制器120位于CPU110内部,与CPU110的内部总线连接。
如图11所示,SPI闪存控制器120设置在CPU110外部,SPI闪存控制器120和CPU110可以通过总线150连接。其他的器件功能和连接参考图1,在此不再赘述。
在图10所示的系统框图中,SPI闪存控制器120作为CPU110的内设单元,使得SPI闪存控制器120与CPU110的信息传输线程短,速度更快;采用图11所示的将SPI闪存控制器120连接在SOC100的系统总线上,使得SOC100内的其他组件(例如,DMA单元130和SRAM单元140)可以通过SPI闪存控制器120访问闪存200。
图12是根据本申请实施例示出的一种包含SPI闪存控制器120的CPU110的结构框图。在图12中,SPI闪存控制器120设置在CPU110的内部。
如图12所示,CPU110包括存储模块111、总线互联模块112、控制模块113、运算模块114;SOC100的外设闪存200与SPI闪存控制器120连接。
其中,存储模块111,包括CPU 110片内缓存和寄存器组,临时保存待处理或已经处理过的数据。总线互联模块112用于连接CPU中各个器件。控制模块113,用于从存储器中获取指令,解析指令,然后按指令的时序,执行指令。运算模块114,用于执行算术运算。
SPI闪存控制器120通过CPU110内部的总线互联模块112与CPU110内的存储模块111、运算模块114和控制模块113连接。总线互联模块112中的总线可以是任意符合ARM片上总线协议AMBA的总线,例如,EPPB(External private peripheral bus,外部私有外设总线)和C-AHB(Code-AHB,先进高性能数据总线)。其中,上述EPPB接口311连接的总线属于APB总线,C-AHB接口321连接总线属于AHB总线。
在图12中,SPI闪存控制器120的APB接口312和AHB接口322分别与总线互联模块112的EPPB接口311和C-AHB接口321连接,其中,APB接口312和EPPB接口311通过APB总线连接,AHB接口322和C-AHB接口321通过AHB总线连接。SPI闪存控制器120和闪存200通过SPI接口323连接。
SPI闪存控制器120可以包括控制寄存器121、数据处理模块122、数据移位模块123、时钟管理模块124和输入输出控制模块125。
控制寄存器121用于切换访问模式以及设置配置参数。通过控制寄存器121可以配置SPI闪存控制器120访问模式以及访问模式对应的配置参数,可以实现CPU110向闪存200发送不同类型的指令的功能。
这里的访问模式对应的配置参数,可以是SPI闪存控制器120与闪存200之间的数据的传输效率,包括:单线SPI模式,双线SPI模式,四线SPI模式,SDR模式,DDR模式等。其中,单线SPI模式表示SPI闪存控制器120与闪存200之间读取、写入数据都是各自通过单独的一条SPI数据线完成的,如图12中所示的SPI接口323与闪存200之间的实线和其中的一条虚线;双线SPI模式表示SPI闪存控制器120与闪存200之间可以通过两条SPI数据线同时读取数据或者同时写入数据,如图12中所示的SPI接口323与闪存200之间的一条实线和一条虚线;四线SPI模式表示SPI闪存控制器120与闪存200之间可以通过四条SPI数据线同时读取数据或者同时写入数据,如图12中所示的SPI接口323与闪存200之间的一条实线和三条虚线。
数据处理模块122主要处理C-AHB 321和EPPB 311这两个总线接口上的数据的仲裁以及数据的传输。
数据移位模块123对SPI闪存控制器120发送数据时进行串并转换。
时钟管理模块124根据控制寄存器121的配置产生相应要求的串行时钟和串行数据的控制逻辑。
输入输出控制模块125根据控制寄存器121的配置来产生符合单线SPI模式/双线SPI模式/四线SPI模式(即QSPI模式)协议的SPI数据流和控制流,并且输入输出控制模块125还用于记录CPU110是否完成与闪存200之间的访问。例如,输入输出控制模块125通过记录1表示完成,0表示未完成。
本申请提供的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所提供的实施例可以以硬件、固件、软件或其任何组合来实现。所提供的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息,例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。

Claims (11)

1.一种存储控制器,其特征在于,所述存储控制器分别连接处理器和存储器,并且
所述存储控制器用于从所述处理器接收访问转换参数,并在确定所述处理器执行完第一指令后,根据接收到的访问转换参数将所述处理器与所述存储器之间的传输方式从第一传输方式转换为第二传输方式。
2.根据权利要求1所述的存储控制器,其特征在于,在所述处理器与所述存储器之间的传输方式从第一传输方式转换为第二传输方式之后,所述存储控制器接收所述处理器发出的第二指令。
3.根据权利要求2所述的存储控制器,其特征在于,还包括:
所述存储控制器在确定所述处理器执行完第二指令后,将所述处理器与所述存储器之间的传输方式从第二传输方式转换回所述第一传输方式。
4.根据权利要求1所述的存储控制器,其特征在于,包括访问方式寄存器,第一控制单元和第二控制单元,其中,
所述访问方式寄存器用于存储访问转换参数;
所述第一控制单元用于确定所述处理器是否执行完所述第一指令;
第二控制单元用于将所述处理器与所述存储器之间的传输方式从第一传输方式转换为第二传输方式。
5.根据权利要求4所述的存储控制器,其特征在于,所述第二控制单元用于将所述处理器与所述存储器之间的传输方式从第二传输方式转换回所述第一传输方式。
6.根据权利要求4所述的存储控制器,其特征在于,所述访问转换参数包括表示所述处理器访问所述存储器中数据的方式的参数、以及表示所述存储控制器与所述存储器之间数据的传输速率的参数中的至少一种,并且
所述处理器访问所述存储器中数据的方式包括所述处理器能够向所述存储器写入或者从所述存储器读取数据、所述处理器仅能够从所述存储器读取数据、所述处理器不能访问所述存储器。
7.根据权利要求1所述的存储控制器,其特征在于,所述存储控制器通过先进高性能总线或先进外围总线与所述处理器连接。
8.根据权利要求1所述的存储控制器,其特征在于,所述存储控制器通过串行外设接口与所述存储器连接。
9.一种电子设备,其特征在于,包括:
处理器;
存储器;以及
权利要求1至8所述的存储控制器。
10.一种片上系统,其特征在于,包括:
处理器;以及
权利要求1至8所述的存储控制器。
11.一种电子设备,其特征在于,包括:
权利要求10所述的片上系统;以及
存储器。
CN202110309314.XA 2021-03-23 2021-03-23 存储控制器及其片上系统以及电子设备 Active CN113032301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110309314.XA CN113032301B (zh) 2021-03-23 2021-03-23 存储控制器及其片上系统以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110309314.XA CN113032301B (zh) 2021-03-23 2021-03-23 存储控制器及其片上系统以及电子设备

Publications (2)

Publication Number Publication Date
CN113032301A true CN113032301A (zh) 2021-06-25
CN113032301B CN113032301B (zh) 2023-12-29

Family

ID=76472926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110309314.XA Active CN113032301B (zh) 2021-03-23 2021-03-23 存储控制器及其片上系统以及电子设备

Country Status (1)

Country Link
CN (1) CN113032301B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1065601A (en) * 1976-01-13 1979-11-06 George F. Nason (Iii) Training system for telephone switchboard operators using computer central processing unit
US5388231A (en) * 1989-09-08 1995-02-07 Auspex Systems, Inc. Enhanced VMEbus protocol utilizing pseudosynchronous handshaking and block mode data transfer
CN101276315A (zh) * 2007-03-30 2008-10-01 财团法人工业技术研究院 动态调整传输数据宽度的直接存储器存取控制器与方法
CN112463651A (zh) * 2020-12-07 2021-03-09 长沙景嘉微电子股份有限公司 Qspi控制器,图像处理器及闪存访问方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1065601A (en) * 1976-01-13 1979-11-06 George F. Nason (Iii) Training system for telephone switchboard operators using computer central processing unit
US5388231A (en) * 1989-09-08 1995-02-07 Auspex Systems, Inc. Enhanced VMEbus protocol utilizing pseudosynchronous handshaking and block mode data transfer
CN101276315A (zh) * 2007-03-30 2008-10-01 财团法人工业技术研究院 动态调整传输数据宽度的直接存储器存取控制器与方法
CN112463651A (zh) * 2020-12-07 2021-03-09 长沙景嘉微电子股份有限公司 Qspi控制器,图像处理器及闪存访问方法

Also Published As

Publication number Publication date
CN113032301B (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
KR101720134B1 (ko) 버스 브리지 장치
US8713233B2 (en) Interconnect, bus system with interconnect and bus system operating method
JPH04227557A (ja) 情報処理装置
JPH0916735A (ja) Pcカード
CN114265872B (zh) 一种用于总线的互联装置
CN113032300A (zh) 数据的传输控制方法
JP4902640B2 (ja) 集積回路、及び集積回路システム
KR100736902B1 (ko) 복수의 프로세서에 의한 메모리 공유 방법 및 장치
CN113032301B (zh) 存储控制器及其片上系统以及电子设备
US7254667B2 (en) Data transfer between an external data source and a memory associated with a data processor
US20050080966A1 (en) Communication steering for use in a multi-master shared resource system
KR20070000655A (ko) 복수 경로를 통한 메모리 공유 방법 및 장치
US20050080972A1 (en) Semiconductor integrated circuit
JP2000099452A (ja) Dma制御装置
EP1673698A2 (en) Communication steering for use in a multi-master shared resource system
CN116974963B (zh) 一种访问存储器的装置及其方法、芯片、存储介质
JPH087738B2 (ja) エンディアン変換方式
KR20060015917A (ko) 복수개의 기능블럭을 제어하는 제어시스템
JP2000244585A (ja) バスインタフェース回路
JP4854598B2 (ja) データ転送制御装置
JP5028817B2 (ja) バスシステム
JPH05189311A (ja) キャッシュメモリ・システム
CN114641763A (zh) 协议转换器模块系统和使用该协议转换器模块系统的方法
JPH0434187B2 (zh)
JPH04260903A (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