CN106557442B - 一种芯片系统 - Google Patents

一种芯片系统 Download PDF

Info

Publication number
CN106557442B
CN106557442B CN201510629545.3A CN201510629545A CN106557442B CN 106557442 B CN106557442 B CN 106557442B CN 201510629545 A CN201510629545 A CN 201510629545A CN 106557442 B CN106557442 B CN 106557442B
Authority
CN
China
Prior art keywords
flash
data
chip
memory
read
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.)
Active
Application number
CN201510629545.3A
Other languages
English (en)
Other versions
CN106557442A (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.)
Zhaoyi Innovation Technology Group Co ltd
Original Assignee
GigaDevice Semiconductor Beijing Inc
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 GigaDevice Semiconductor Beijing Inc filed Critical GigaDevice Semiconductor Beijing Inc
Priority to CN201510629545.3A priority Critical patent/CN106557442B/zh
Publication of CN106557442A publication Critical patent/CN106557442A/zh
Application granted granted Critical
Publication of CN106557442B publication Critical patent/CN106557442B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • G06F13/282Cycle stealing DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供了一种芯片系统,包括:中央处理器、程序数据总线、系统总线、闪存控制器、静态随机存储器、内存控制器、直接存储访问单元以及闪存芯片;其中,所述中央处理器通过所述程序数据总线与所述闪存控制器相连接;所述直接存储访问单元与所述中央处理器均通过所述系统总线,与所述闪存控制器和所述内存控制器相连接;所述闪存控制器分别与所述静态随机存储器和所述闪存芯片相连接。通过本发明实施例提供的芯片系统能够提升整个系统的运行效率。

Description

一种芯片系统
技术领域
本发明涉及芯片读写技术领域,特别是涉及一种芯片系统。
背景技术
在MCU(Micro Control Unit,微控制单元)芯片系统中,闪存的读写速度一直是制约芯片程序运行效率的主要瓶颈,单芯片嵌入式闪存读取速度更低,达不到实时性的要求。
以下为现有的两种提升闪存的读写速度的方案:
第一种解决方案:通过SRAM(Static Random Access Memory,静态随机存储器)对整个闪存芯片中的数据进行1:1复制。这样,在读写闪存时仅需读写SRAM中的数据即可,无需占用CPU(Central Processing Unit,中央处理器)资源访问闪存,节省了访问闪存的等待周期,因此,能够提升读取效率。
但该方案,当闪存芯片容量比较大时,SRAM的面积较大,MCU芯片系统无法承受该面积。例如:闪存芯片容量为128Kbytes,或256Kbytes时,SRAM的面积可能占整个芯片面积的一半或以上。当闪存芯片容量超过256Kbytes时,比如1Mbytes时,SRAM的面积将更大,相应地芯片的面积也要更大,芯片成本高。
第二种解决方案:将SRAM分为主SRAM与辅助SRAM,主SRAM为闪存部分内容1比1复制,而辅助SRAM对应闪存中其他数据部分。该方案无需大面积的SRAM,因此,可以解决现有的第一种解决方案中存在需要大面积的SRAM的问题。
但该方案具有如下缺陷:第一:通过辅助SRAM读取闪存时任然需要一定的读取闪存的等待周期,而读取闪存时需要占用CPU,因此,将降低系统的运行效率。第二:对于芯片系统中存在有编程闪存时会占用CPU,此时系统运行需要停滞等待编程完成后再运行。
发明内容
本发明提供了一种芯片系统,以解决现有提升闪存的读写速度方案中存在的读取闪存时需要占用CPU等待一定的周期,降低系统的运行效率的问题。
为了解决上述问题,本发明公开了一种芯片系统,包括:中央处理器、程序数据总线、系统总线、闪存控制器、静态随机存储器、内存控制器、直接存储访问单元以及闪存芯片;其中,所述中央处理器通过所述程序数据总线与所述闪存控制器相连接;所述直接存储访问单元与所述中央处理器均通过所述系统总线,与所述闪存控制器和所述内存控制器相连接;所述闪存控制器分别与所述静态随机存储器和所述闪存芯片相连接;所述中央处理器用于通过所述程序数据总线和所述闪存控制器,从所述静态随机存储器中读取数据;以及通过所述系统总线和所述内存控制器从外接设备中读取数据;所述直接存储访问单元用于在所述中央处理器运行过程中,通过所述系统总线和所述闪存控制器从所述闪存芯片中读取数据至所述静态随机存储器中;和/或,通过所述系统总线、所述闪存控制器从所述闪存芯片中读取数据,并通过所述内存控制器将读取的所述数据存储至外接设备中以供所述中央处理器读取。
优选地,所述闪存控制器包括:闪存程序数据总线接口、闪存系统总线接口、静态随机存储器控制单元、主控单元、闪存配置寄存器以及与所述闪存芯片相连接的闪存控制单元;其中,所述闪存程序数据总线接口分别与所述程序数据总线相连接、与所述静态随机存储器控制单元通过第一数据通道相连接、与所述主控单元通第一控制通路相连接、与所述存储控制单元通过第五数据通路相连接;所述闪存系统总线接口分别与所述系统总线相连接、与所述闪存配置寄存器通过第二数据通路相连接;所述闪存配置寄存器还分别通过第四数据通路与所述闪存控制单元相连接、通过第四控制通路与所述主控单元相连接;所述主控单元还分别与所述闪存控制单元通过第二控制通路相连接、与所述静态随机存储器控制单元通过第三控制通路相连接;所述静态随机存储器控制单元还分别与所述闪存控制单元通过第三数据通路相连接、与所述静态随机存储器相连接。
优选地,所述主控单元用于控制所述静态随机存储器控制单元以及所述闪存配置寄存器并行运行。
优选地,所述静态随机存储器控制单元用于通过所述第三数据通路对所述闪存控制单元配置,以获取所述闪存芯片中的程序数据;并通过所述第一数据通路、所述闪存程序数据总线接口以及所述程序数据总线将所述程序数据发送至所述中央处理器;所述闪存配置寄存器用于接收所述直接存储访问单元通过所述系统总线和所述第二数据通路发送的对所述闪存芯片进行操作的信息,并通过所述第四数据通路对所述闪存控制单元进行配置,以对所述闪存芯片中的程序数据进行读写操作。
优选地,所述闪存配置寄存器包括:闪存地址寄存器、闪存操作寄存器、闪存数据寄存器以及操作长度寄存器。
优选地,所述闪存地址寄存器用于接收所述中央处理器通过所述系统总线对读写操作的起始地址进行配置的信息;所述闪存操作寄存器用于接收所述中央处理器通过所述系统总线对当前对闪存操作为读操作或写操作进行配置的信息;所述闪存数据寄存器用于接收所述中央处理器或所述直接存储访问单元写入的待写入所述内存芯片中的数据;其中,所述中央处理器或所述直接存储访问单元通过所述系统总线和所述第二数据通路向所述闪存数据寄存器中写入数据;所述操作长度寄存器用于接收所述中央处理器通过所述系统总线配置的待读写闪存的长度大小。
优选地,所述主控单元包括:闪存操作仲裁器以及闪存操作翻译器。
优选地,所述闪存操作仲裁器用于接收所述闪存配置寄存器通过所述第四控制通路发出的闪存读写指令,和所述程序数据总线接口通过所述第一控制通路发出的闪存读写指令;并从接收到的读写指令中选择一个指令作为当前操作,并将选择出的所述当前指令发送至闪存操作翻译器;所述闪存操作翻译器用于将接收到的所述当前指令的格式翻译成闪存器件所支持的指令格式。
优选地,所述静态随机存储器包括:主静态随机存储区域和辅助静态随机存储区域。
与现有技术相比,本发明具有以下优点:
本发明实施例提供的芯片系统,CPU控制系统运行的同时,DMA(Direct MemoryAccess,直接存储访问单元)可以通过系统总线、闪存控制器从闪存芯片中读写数据,将读取的数据存储至SRAM中,以便CPU可以直接从SRAM中读取数据,而无需再占用CPU资源从闪存芯片中读数据。此读写方式与CPU通过程序数据总线操作闪存中几乎为两个独立的系统,基本互不影响,可并行同时进行。由于读写闪存数据不影响CPU的运行效率,因此,本发明实施例提供的芯片系统能够提升整个系统的运行效率。
此外,本发明实施例提供的芯片系统通过DMA和系统总线从闪存芯片中读取数据后,不仅可以将数据存储至SRAM中,还可以将数据读取至外接设备(例如:内存中),以便CPU或者外接设备直接从内存中读取相应的数据。
附图说明
图1是根据本发明实施例一的一种芯片系统的结构框图;
图2是根据本发明实施例二的一种芯片系统的结构框图;
图3是实施例二中的闪存控制器的结构框图;
图4是实施例二中的闪存配置寄存器的结构框图;
图5是实施例二中的主控单元的结构框图;
图6是采用实施例二中的芯片系统进行读写操作的流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明实施例一的一种芯片系统的结构框图。
如图1所示,本发明实施例的芯片系统包括:中央处理器即CPU101、程序数据总线102、系统总线103、闪存控制器104、静态随机存储器即SRAM105、内存控制器106、DMA(Direct Memory Access,直接存储访问单元)107以及闪存芯片108。
CPU101通过程序数据总线102与闪存控制器104相连接;DMA107与CPU101均通过系统总线103,与闪存控制器104和内存控制器106相连接;闪存控制器104分别与SRAM105和闪存芯片108相连接。
CPU101用于通过程序数据总线102和闪存控制器104,从SRAM中读取数据;以及通过系统总线103和内存控制器106从外接设备中读取数据。
DMA107用于在CPU101运行过程中,通过系统总线103和闪存控制器104从闪存芯片108中读取数据至SRAM105中;和/或,通过系统总线103、闪存控制器104从闪存芯片108中读取数据,并通过闪存控制器104将读取的数据存储至外接设备中以供CPU101读取。
本发明实施例中,CPU与DMA可并行执行。也就是说,CPU控制系统运行的同时,DMA可以通过系统总线、闪存控制器从闪存芯片中读写数据,将读取的数据存储至SRAM中,以便CPU可以直接从SRAM中读取数据,而无需再占用CPU资源从闪存芯片中读数据。不仅如此,本发明实施例中的芯片系统,通过DMA和系统总线从闪存芯片中读取数据后,不仅可以将数据存储至SRAM中,还可以将数据读取至外接设备(例如:内存中),以便CPU或者外接设备直接从内存中读取相应的数据。
实施例二
参照图2,示出了本发明实施例二的一种芯片系统的结构框图。
如图2所示,本发明实施例提供的芯片系统包括闪存芯片208以及主芯片,其中,主芯片包括:中央处理器201、程序数据总线202、系统总线203、闪存控制器204、SRAM205、内存控制器206、DMA207以及外接设备209。
CPU201通过程序数据总线202与闪存控制器204相连接;DMA207与CPU201均通过系统总线203,与闪存控制器204和内存控制器206相连接;闪存控制器204分别与SRAM205和闪存芯片208相连接,外接设备209与系统总线203相连接,闪存控制器204与闪存芯片208相连接,以对闪存芯片208进行读写操作。
需要说明的是,本发明实施例中闪存芯片与主芯片分开设置,在具体实现过程中,为了让产品即芯片的体积更小巧,可采用MCP(Multiple Chip Package,多晶片封装)技术将主芯片与闪存芯片制造在同一个封装内。以下分别介绍芯片系统中各部分的作用:
内存控制器:内存主要作用为CPU执行程序中暂存程序或数据的空间。内存控制器主要作用为,将系统总线向内存发出的读写操作,转化成内存的读写操作。内存控制器还可以供DMA将闪存芯片中数据装载到内存中,方便CPU读取数据。内存控制器除可以控制向内存读写数据外,还可以向其他外接设备中写入数据。
SRAM:为标准IP,在本发明实施例中由于存放从闪存芯片中读取的数据。断电后SRAM中存储的数据丢失,读写速度快,可实时读写。
闪存芯片:闪存为常用芯片,可读,可擦写,断电数据不丢失,但读写速度慢,并且大部分时间是读,在MCU系统中主要用于存储程序以及一些固定不变的数据。
CPU:为中央处理器,为执行程序,控制MCU芯片各装置运行的作用。CPU还可以通过程序数据总线和闪存控制器,从SRAM中读取数据;以及通过系统总线和内存控制器从外接设备中读取数据。
DMA:为存储器直接访问,达到外接设备与存储之间高速的数据互相传输作用。具体用于在CPU运行过程中,通过系统总线和闪存控制器从闪存芯片中读取数据至SRAM中;和/或,通过系统总线、内存控制器从闪存芯片中读取数据,并通过内存控制器将读取的数据存储至外接设备中以供CPU读取。
在MCU芯片系统中,闪存芯片(或者其他非易失性存储器)是不可或缺的,它具有掉电数据不丢失的特点,主要用于存储用户的程序数据等。程序主要为通过系统总线读取到CPU中执行,一般数据量不大,但对速度要求很高。读取速度直接影响到程序的执行效率。闪存控制器负责闪存芯片与MCU芯片中其他模块的交互。MCU芯片对闪存芯片的操作主要为读操作,CPU通过程序数据总线可直接读取闪存芯片中数据,本发明实施例中提出CPU通过系统总线配置好闪存配置寄存器,然后DMA或CPU通过系统总线读写闪存芯片中的数据。当闪存芯片中的数据需要修改时,也可执行写操作。写操作需要先擦除闪存芯片中相应的位置,然后通过编程的方式改写数据。写操作整个过程非常耗时,主要由闪存芯片的特性决定,在MCU芯片中也非常少用。所以读取的速度对MCU芯片系统运行效率至关重要。
下面参照图3对本发明实施的闪存控制器的具体结构进行说明。
如图3所示,闪存控制器包括:闪存程序数据总线接口301、闪存系统总线接口302、SRAM控制单元303、主控单元304、闪存配置寄存器305以及与闪存芯片相连接的闪存控制单元306。
闪存程序数据总线接口301分别与程序数据总线202相连接、与SRAM控制单元通过第一数据通路(即数据通路1)相连接、与主控单元304通第一控制通路(即控制通路1)相连接、与存储控制单元通过第五数据通路(即数据通路5)相连接。闪存系统总线接口302分别与系统总线203相连接、与闪存配置寄存器305通过第二数据通路(即数据通路2)相连接;闪存配置寄存器305还分别通过第四数据通路(即数据通路4)与闪存控制单元306相连接、通过第四控制通路(即控制通路4)与主控单元304相连接。
主控单元304还分别与闪存控制单元306通过第二控制通路(即控制通路2)相连接、与SRAM控制单元通过第三控制通路(即控制通路3)相连接;SRAM控制单元还分别与闪存控制单元306通过第三数据通路(即数据通路3)相连接、与SRAM205相连接。闪存控制单元306与闪存芯片208相连接。
闪存程序数据总线接口:闪存程序数据总线接口的功能是将CPU程序数据总线的读写访问转化为闪存控制器内部的读写操作。闪存程序数据总线接口是访问闪存程序数据空间。读操作通过数据通路1访问。如果为写操作,则通过数据通路5完成。
闪存系统总线接口:闪存系统总线接口的功能是将系统总线的读写访问转化为闪存配置寄存器的读写访问。系统总线和程序数据总线是通过地址空间来划分的,闪存中程序数据均划分为程序数据总线的地址空间上,这样CPU可通过程序数据总线直接访问闪存,这样速度最快,效率最高。而闪存中程序数据不在系统总线的地址空间上,所以系统总线不能直接访问闪存,所以将配置寄存器划分到系统总线的地址空间上,这样系统总线可通过访问配置寄存器而间接的访问闪存芯片。
闪存配置寄存器:主要包括一系列寄存器,由系统总线通过数据通路2配置,控制闪存控制器的运行。本发明实施例中闪存配置寄存器通过数据通路4与闪存进行读写交互。具体闪存配置寄存器用于接收所述DMA通过系统总线和第二数据通路(即数据通路2)发送的对闪存芯片进行操作的信息,并通过第四数据通路(即数据通路4)对闪存控制单元进行配置,以对闪存芯片中的程序数据进行读写操作。
SRAM控制单元:为SRAM与闪存控制器的接口,将闪存控制器给出读写信号,翻译成SRAM的读写信号。SRAM分为主SRAM和辅助SRAM,主SRAM为1:1复制闪存芯片中的主存储部分。主存储部分主要存储程序以及要求速度快的小部分数据。此部分程序数据总线可直接从主SRAM中读取,为实时读取,没有等待周期,读取速度最快。但由于SRAM面积较大,主SRAM空间一般不能太大(比如几十K字节),因此,超过主SRAM地址空间的部分有辅助SRAM支持。通过类似cache的操作方式,如果辅助SRAM中有相应的数据(类似于cache hit),则直接从辅助SRAM中读取,如果辅助SRAM中没有相应的数据(类似于cache miss),先将需要读取的数据从闪存芯片读取到辅助SRAM中,程序数据总线再从辅助SRAM中读取。SRAM控制单元具体用于通过第三数据通路(即数据通路3)对闪存控制单元配置,以获取闪存芯片中的程序数据;并通过第一数据通路(即数据通路1)、闪存程序数据总线接口以及程序数据总线将程序数据发送至CPU。
主控单元:主要为控制闪存控制器各个装置的运行。通过控制通路1,从闪存程序数据总线接口单元得到程序数据总线要执行的操作,比如读操作,写操作。通过控制通路4,从闪存配置寄存器中得到配置寄存器要执行的操作,比如读操作,写操作。在主控单元中完成仲裁,得到当前要执行的操作。通过控制通路2,给闪存控制单元发出命令,擦除,编程,读命令等。通过控制通路3,给SRAM控制单元发出读写命令。主控单元用于控制SRAM控制单元以及闪存配置寄存器并行运行。
闪存控制单元:控制片外闪存芯片,包括执行读、写、擦除等数据操作,读ID,读状态等。本发明实施中,程序数据总线读闪存芯片程序数据,通过数据通路3,存储到SRAM中。写闪存芯片程序数据部分是系统总线通过数据通路5完成。系统总线通过数据通路2,数据通路4访问内存芯片。
下面分别对图3中所示的各数据通路以及控制通路的作用进行说明:
数据通路1:从SRAM控制单元到闪存程序数据总线接口的读数据通路,用于将SRAM中数据读取到程序数据总线中。
数据通路2:闪存系统总线接口到闪存配置寄存器之间的数据通路,用于系统总线配置闪存寄存器信息。本发明实施例中,系统总线通过数据通路2,发出闪存操作信息,闪存地址,以及读写长度等信息,并通过数据通路2,系统总线可读写闪存配置寄存器中的闪存数据寄存器。
数据通路3:从闪存控制单元到SRAM控制单元之间的读数据通路,用于将闪存芯片中的程序数据部分读取到SRAM中。在以下情况下可以用到数据通路3:
上电后自动读取闪存芯片中主存储部分到主SRAM装置中。
读闪存芯片中除了主存储部分的其他部分,并且在辅助SRAM装置中没有命中,则需要读取的数据从闪存芯片中读取到辅助SRAM装置中。
擦写闪存芯片中主存储部分,将修改的数据更新到主SRAM装置中,保证主SRAM装置中的数据与闪存芯片中主存储部分的数据一致。
擦写闪存芯片中除了主存储部分的其他部分,如果此部分数据原先在辅助SRAM装置中,则更新辅助SRAM装置中的数据。
数据通路4:闪存控制单元与闪存配置寄存器单元之间的读写数据通路,用于配置寄存器单元读写闪存芯片中的程序数据。
控制通过1:为闪存程序数据总线接口到主控单元之间的控制通路,主要为闪存程序数据总线接口传输至主控单元的读写信息,以及地址信息。
控制通路2:为主控单元与闪存控制单元之间的控制通路,主要为主控单元传输至闪存控制单元的读操作,擦除操作,写操作命令以及地址。
控制通路3:为主控单元与SRAM控制单元之间的控制通路,为主控单元传输至SRAM控制单元的读取命令以及地址信息。
控制通路4:为主控单元与闪存配置寄存器单元之间的控制通路,为闪存配置寄存器单元传输至主控单元的读写闪存信息。
在介绍完闪存控制器的具体结构以及各部分的作用后,下面参照图4对闪存控制器中包含的闪存配置寄存器进行说明。
如图4所示,闪存配置寄存器包括:闪存地址寄存器401、闪存操作寄存器402、闪存数据寄存器403以及操作长度寄存器404。
闪存配置寄存器分别通过数据通路2与闪存系统总线接口相连接、通过控制通路4与主控单元相连接、通过数据通路4与闪存控制单元相连接。
闪存地址寄存器:由CPU通过系统总线配置,配置读写操作的起始地址。当读写操作进行时,每次读或写一个数据后,在自动加1,这样闪存地址寄存器中始终保持当前要操作的地址。也即,闪存地址寄存器用于接收CPU通过系统总线对读写操作的起始地址进行配置的信息。
闪存操作寄存器:由CPU通过系统总线配置,配置当前要操作闪存为读还是写。由于此寄存器,一旦配置好,将立刻执行读写操作,所有必须先配置好其他寄存器,最后才配置闪存操作寄存器。闪存操作寄存器和闪存地址寄存器通过控制通路4传到主控单元中。也即,闪存操作寄存器用于接收CPU通过系统总线对当前对闪存操作为读操作或写操作进行配置的信息。
闪存数据寄存器:当为写操作时,由CPU或DMA通过系统总线通过数据通路2将要写入的数据写到闪存数据寄存器中,并通过数据通路4写入到闪存中。写完当前数据后,继续写下一个数据,直到操作长度寄存器的值为0。当为读操作时,通过数据通路4从闪存中读出数据存入闪存数据寄存器,然后由CPU或DMA通过系统总线通过数据通路2将闪存数据寄存器中的数据读出。读完当前数据后继续读下一个数据,直到操作长度寄存器的值为0。闪存数据寄存器用于接收CPU或DMA写入的待写入内存芯片中的数据;其中CPU或DMA通过系统总线和第二数据通路即数据通路2向闪存数据寄存器中写入数据。
操作长度寄存器:由CPU通过系统总线配置,配置起始要读写闪存的长度大小。也即操作长度寄存器用于接收CPU通过系统总线配置的待读写闪存的长度大小。每当一个读写操作完成后,自动减1,直到操作长度寄存器为0,则表示所有的操作已完成。操作长度寄存器始终保存剩余需要读写操作的个数。
在介绍完闪存配置寄存器的具体结构以及各部分的作用后,下面参照图5对闪存控制器中包含的主控单元进行说明。
如图5所示,本发明实施例的主控单元包括:闪存操作仲裁器501以及闪存操作翻译器502。主控单元分别通过控制通路1与程序数据总线接口相连接、通过控制通路4与闪存配置寄存器相连接、通过控制通路2与闪存控制单元相连接。
需要说明的是,主控单元包括整个闪存控制器的逻辑控制,各种操作的控制,图5中仅画出与本发明实施例相关的装置,对于主控单元包含的其他的装置可以参见相关技术即可,本发明实施例中对此不作具体限制。
闪存操作仲裁器:闪存操作仲裁器有两部分输入,一个为闪存配置寄存器通过控制通路4发出的闪存读写指令,一个为程序数据总线接口发出的读写指令,注意当程序数据总线接口为读时,并且读的地址在主SRAM的地址空间上,或者读的数据在辅助SRAM中,则直接从SRAM中读取,不需要从闪存芯片中读取,所以此部分不再仲裁范围之内。仲裁器作用为选出其中的一个输入作为当前的操作,发送到闪存操作翻译器中。也即,闪存操作仲裁器用于接收闪存配置寄存器通过第四控制通路(即控制通路4)发出的闪存读写指令,和程序数据总线接口通过第一控制通路(即控制通路1)发出的闪存读写指令;并从接收到的读写指令中选择一个指令作为当前操作,并将选择出的当前指令发送至闪存操作翻译器。
闪存操作翻译器:为将闪存操作仲裁器的读写命令翻译成闪存器件能够接收的擦除,编程,读等操作。也即闪存操作翻译器用于将接收到的当前指令的格式翻译成闪存器件所支持的指令格式,以便闪存器件执行相应的指令。
上述为本发明实施例中的芯片系统的各组成部分,以及各组成部分的详细说明。下面,参照图6对采用本发明实施例的芯片系统进行操作的流程进行说明。
芯片系统上电复位后,依次执行如下流程:
步骤S601:读闪存主存储部分到主SRAM中。
SRAM包括:主SRAM和辅助SRAM。系统上电后,自动将闪存芯片中主存储部分的数据读取,存入主SRAM中。在此过程为上电后一次性完成,完成之后系统才开始正常运行。
步骤S602:系统运行。
芯片系统正常从闪存芯片中读取程序数据,通过程序数据总线到CPU中,开始正常运行。
步骤S603:程序数据总线读闪存芯片。
系统运行时,需要从闪存芯片中读取程序数据到CPU中执行,在系统运行过程中,绝大多数情况需要一直不断的从闪存芯片读取数据。当程序数据总线需要读的数据在主SRAM地址空间之内,则直接从主SRAM中读取,从SRAM中读取为实时读取,没有等待周期。当程序数据总线需要读的数据不在主SRAM地址空间之内,如果数据在辅助SRAM中,则直接从辅助SRAM中读取,如果数据不再辅助SRAM中,则需要从闪存芯片中读取到辅助SRAM中,然后再从辅助SRAM中读取,由于从闪存芯片中直接读取数据比较慢,需要一定的等待周期,因此会影响系统的运行效率,故本发明实施例中通过DMA通过系统总线将闪存芯片中的数据读取到辅助SRAM中以供CPU读取。本发明实施例提供的读写方法,通过与CPU并行的DMA来读取闪存中的数据,能够避免采用CPU读取闪存芯片中的数据至辅助SRAM中时,占用CPU资源等待闪存芯片的读取。
步骤S604:系统总线读写闪存芯片。
系统运行中,读闪存芯片存在两种可能,一种是如步骤S603中所记载的通过程序数据总线读闪存,另一种则是通过系统总线读写闪存。如果系统运行中,需要通过程序数据总线读闪存,则可由CPU直接从SRAM中读取数据;若需要通过系统总线读写闪存,则执行以下步骤。
需要说明的是,步骤S603以及步骤S604在具体执行过程中并无先后顺序,二者也可以并行执行。
步骤S605:判断是否使用DMA通过系统总线读写闪存,若是,则执行步骤S606,若否,则直接执行步骤S607。
用户确定是否使用DMA,主要用于数据搬移的步骤,如果不使用DMA,则需要用CPU通过系统总线完成数据搬移,通常情况下,由于CPU通过系统总线完成数据搬移需要占用CPU,会降低CPU程序执行效率,所以多使用DMA完成数据搬移。
步骤S606:配置DMA状态,然后执行步骤S607。
本步骤中,若用户选择使用DMA,则需要对DMA的状态以及配置闪存寄存器进行配置。
步骤S607:配置闪存寄存器。
配置闪存寄存器即对闪存地址寄存器、闪存操作寄存器、以及操作长度寄存器进行配置,以做好从闪存芯片中读写数据的准备。
配置闪存寄存器配置完成后,可以判断用户发送的对闪存芯片的操作指令为写操指令还是读操作指令。当为读操作指令时,则执行步骤S608,当为写操作指令时,则执行步骤S611。
步骤S608:当当前对闪存芯片的操作指令为读操作指令时,执行读闪存芯片的操作。
读闪存即,当前为读操作时将闪存芯片中相应地址的数据读取到闪存数据寄存器中。
步骤S609:将从闪存芯片中读取的数据进行数据搬移。
数据搬移:如果是读操作过程,则将闪存数据寄存器中的数据通过系统总线读取到系统中其他单元中,典型的比如内存装置中。如果为写操作过程,则系统总线从系统中其他单元(比如内存)中数据写入到闪存数据寄存器中。
步骤S610:判断当前读操作是否完成,若已完成,则返回执行步骤S602,若未完成,则返回执行步骤S608,直至读操作完成。
步骤S611:当当前对闪存芯片的操作指令为写操作指令时,从闪存芯片中将待修改的数据进行数据搬移。
写闪存即对闪存芯片进行写操作:如为写操作将闪存数据寄存器中的数据写入到闪存芯片中相应地址上。
需要说明的是,读操作过程为先读闪存,再进行数据搬移,而写操作过程为先进行数据搬移,在写闪存。
步骤S612:对闪存芯片执行写操作。
步骤S613:判断写闪存操作是否完成,若完成则返回执行步骤S602,若未完成,则返回执行步骤S611,直至写闪存操作完成。
当完成一次的读写闪存和数据搬移过程后,闪存地址寄存器自动加1(下一次读写操作的地址),操作长度寄存器会自动减1,如果操作长度寄存器不为0,则继续进行下一次的读写闪存和数据搬移过程。直到操作长度寄存器为0,则表示操作完成,则返回至系统运行流程。上述芯片系统读写闪存的流程中,整个系统总线读写闪存过程中,程序数据总线读闪存,并继续系统运行,两部分可以并行同时进行,互不影响。假设程序都存储在主SRAM中,则程序数据总线读闪存,并继续系统运行整个过程,用到系统中CPU,程序数据总线,闪存控制器中主SRAM。而通过DMA进行系统总线读写闪存,用到DMA,系统总线,闪存控制器中闪存配置寄存器,以及闪存芯片,仅在配置DMA状态和配置闪存寄存器一次性的,非常短的时间用到CPU。两部分基本上互相独立。
下面以具体实例对本发明的芯片系统优势,以及读写闪存的流程进行说明:
考虑一种典型应用,闪存大小1M字节,主SRAM大小为256K字节。闪存前256K字节数据1:1复制在主SRAM中,系统运行所需要的程序数据均存储在前256K字节里。256K字节到1M字节存储大量不常用的数据(如字库,数据库等)。
第一、假设系统运行需要经常用到256K字节到1M字节中某1K字节数据。如果每次通过辅助SRAM读取,由于辅助SRAM读取需要等待周期(假设平均5个周期)这样大大降低系统的运行效率。采用本专利方法,预先通过DMA将这1K字节数据通过系统总线搬移到内存中,DMA搬移数据过程数据流为闪存芯片通过数字通路4到闪存数据寄存器中,在通过数据通路2,到系统总线,在通过DMA到内存中。而系统运行的数据流为主SRAM数据通过数据通路1,到程序数据总线,再到CPU中执行。两者互不影响,因此不会降低系统运行效率,当系统运行需要用到这1K字节数据,在从内存中读取即可(从内存中读取没有等待周期)。所以虽然通过系统总线读取闪存数据,要比程序数据总线通过辅助SRAM读取闪存数据要慢,但系统总线读取闪存数据为并行操作,不影响系统运行效率。所以系统运行效率更快。
第二、假设系统运行中需要将内存中1K字节数据,写入到闪存256K字节到1M字节中的某个空间中。如果通过程序数据总线编程闪存,由于编程时间非常慢(典型比如50微妙/字节)。这样编程1K字节数据会占用程序数据总线很长时间(50毫秒以上),在这段时间系统是无法运行。这样系统运行会停滞50毫秒。而本专利采用DMA将内存数据搬移到闪存数据寄存器,再写入到闪存中。虽然此过程也要50毫秒以上,但系统运行则不受影响(假设系统运行所需要的程序数据均在闪存的前256K字节里)。因此,大大的提高了系统运行效率(没有停滞50毫秒)。
本发明实施例提供的芯片系统具有以下有益效果:第一:芯片系统根据MCU芯片运行的特点,MCU架构特点,巧妙的将系统运行所需要的硬件开销,与读写闪存的硬件开销分割开来,使得两部分可以并且完成。使得系统运行不受某些应用的影响。从而在这些应用中大大提高了MCU的运行效率。而基本不增加多少面积。仅增加闪存配置寄存器中几个寄存器,以及主控单元中的仲裁器。
第二、MCU芯片在实际应用中的特点为,对于程序运行的效率要求比较高,这直接影响MCU芯片的性能,但是程序本身所占的容量并不大(比如在128Kbytes以下),由于这部分在本发明实施例中放置在闪存芯片的主存储部分,通过主SRAM装置,可达到效率最优(读取时没有等待时间,每个周期可读取一个数据)。
第三、对于闪存芯片容量要求很大的,一般主要存储固定不变或很少改变的数据,比如一些字库或数据库之类的。这部分的特点为需求的容量很大(可达到1Mbytes~4Mbytes),此部分并不常用,并且不需要及时需要。本发明实施例中,处理这部分数据时,通过系统总线预先读取到内存中,读取过程中与程序执行互不干扰,不影响系统运行效率,读取到内存之后,在系统运行需要时,在从内存读取。
第四、在写操作时,提高系统运行效率更为显著,通过系统总线,写数据到闪存数据寄存器中,再写入到闪存芯片中。整个过程,系统正常运行,不需要等待闪存编程时间。大大的提高了系统运行效率。
需要说明的是,本专利仅以内存举例,通过系统总线读闪存数据到其他外接设备,以及从其他外接设备将数据通过系统总线写入到闪存中。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种芯片系统行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种芯片系统,其特征在于,包括:中央处理器、程序数据总线、系统总线、闪存控制器、静态随机存储器、内存控制器、直接存储访问单元以及闪存芯片;
其中,所述中央处理器通过所述程序数据总线与所述闪存控制器相连接;所述直接存储访问单元与所述中央处理器均通过所述系统总线,与所述闪存控制器和所述内存控制器相连接;所述闪存控制器分别与所述静态随机存储器和所述闪存芯片相连接;
所述中央处理器用于通过所述程序数据总线和所述闪存控制器,从所述静态随机存储器中读取数据;以及通过所述系统总线和所述内存控制器从外接设备中读取数据;
所述直接存储访问单元用于在所述中央处理器运行过程中,通过所述系统总线和所述闪存控制器从所述闪存芯片中读取数据至所述静态随机存储器中;和/或,通过所述系统总线、所述闪存控制器从所述闪存芯片中读取数据,并通过所述内存控制器将读取的所述数据存储至外接设备中以供所述中央处理器读取。
2.根据权利要求1所述的芯片系统,其特征在于,所述闪存控制器包括:闪存程序数据总线接口、闪存系统总线接口、静态随机存储器控制单元、主控单元、闪存配置寄存器以及与所述闪存芯片相连接的闪存控制单元;
其中,所述闪存程序数据总线接口分别与所述程序数据总线相连接、与所述静态随机存储器控制单元通过第一数据通道相连接、与所述主控单元通第一控制通路相连接、与存储控制单元通过第五数据通路相连接;
所述闪存系统总线接口分别与所述系统总线相连接、与所述闪存配置寄存器通过第二数据通路相连接;所述闪存配置寄存器还分别通过第四数据通路与所述闪存控制单元相连接、通过第四控制通路与所述主控单元相连接;
所述主控单元还分别与所述闪存控制单元通过第二控制通路相连接、与所述静态随机存储器控制单元通过第三控制通路相连接;所述静态随机存储器控制单元还分别与所述闪存控制单元通过第三数据通路相连接、与所述静态随机存储器相连接。
3.根据权利要求2所述的芯片系统,其特征在于,所述主控单元用于控制所述静态随机存储器控制单元以及所述闪存配置寄存器并行运行。
4.根据权利要求3所述的芯片系统,其特征在于:
所述静态随机存储器控制单元用于通过所述第三数据通路对所述闪存控制单元配置,以获取所述闪存芯片中的程序数据;并通过所述第一数据通路、所述闪存程序数据总线接口以及所述程序数据总线将所述程序数据发送至所述中央处理器;
所述闪存配置寄存器用于接收所述直接存储访问单元通过所述系统总线和所述第二数据通路发送的对所述闪存芯片进行操作的信息,并通过所述第四数据通路对所述闪存控制单元进行配置,以对所述闪存芯片中的程序数据进行读写操作。
5.根据权利要求3所述的芯片系统,其特征在于,所述闪存配置寄存器包括:闪存地址寄存器、闪存操作寄存器、闪存数据寄存器以及操作长度寄存器。
6.根据权利要求5所述的芯片系统,其特征在于:
所述闪存地址寄存器用于接收所述中央处理器通过所述系统总线对读写操作的起始地址进行配置的信息;
所述闪存操作寄存器用于接收所述中央处理器通过所述系统总线对当前对闪存操作为读操作或写操作进行配置的信息;
所述闪存数据寄存器用于接收所述中央处理器或所述直接存储访问单元写入的待写入内存芯片中的数据;其中,所述中央处理器或所述直接存储访问单元通过所述系统总线和所述第二数据通路向所述闪存数据寄存器中写入数据;
所述操作长度寄存器用于接收所述中央处理器通过所述系统总线配置的待读写闪存的长度大小。
7.根据权利要求6所述芯片系统,其特征在于,所述主控单元包括:闪存操作仲裁器以及闪存操作翻译器。
8.根据权利要求7所述芯片系统,其特征在于:
所述闪存操作仲裁器用于接收所述闪存配置寄存器通过所述第四控制通路发出的闪存读写指令,和所述程序数据总线接口通过所述第一控制通路发出的闪存读写指令;并从接收到的读写指令中选择一个指令作为当前指令,并将选择出的所述当前指令发送至闪存操作翻译器;
所述闪存操作翻译器用于将接收到的所述当前指令的格式翻译成闪存器件所支持的指令格式。
9.根据权利要求7所述的芯片系统,其特征在于,所述静态随机存储器包括:主静态随机存储区域和辅助静态随机存储区域。
CN201510629545.3A 2015-09-28 2015-09-28 一种芯片系统 Active CN106557442B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510629545.3A CN106557442B (zh) 2015-09-28 2015-09-28 一种芯片系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510629545.3A CN106557442B (zh) 2015-09-28 2015-09-28 一种芯片系统

Publications (2)

Publication Number Publication Date
CN106557442A CN106557442A (zh) 2017-04-05
CN106557442B true CN106557442B (zh) 2019-05-21

Family

ID=58415724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510629545.3A Active CN106557442B (zh) 2015-09-28 2015-09-28 一种芯片系统

Country Status (1)

Country Link
CN (1) CN106557442B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844435A (zh) * 2017-11-08 2018-03-27 北京锐安科技有限公司 一种缓存系统、方法及装置
CN110109858A (zh) * 2019-05-07 2019-08-09 苏州浪潮智能科技有限公司 总线架构、服务器、内存数据读写方法及可读存储介质
CN111158756B (zh) * 2019-12-31 2021-06-29 百度在线网络技术(北京)有限公司 用于处理信息的方法和装置
CN111596200A (zh) * 2020-05-25 2020-08-28 上海岱矽集成电路有限公司 一种集成电路测试仪
CN111857594A (zh) * 2020-07-22 2020-10-30 苏州元璟半导体技术有限公司 一种基于软件服务的外部存储器接口及其使用方法
CN113867830A (zh) * 2021-08-31 2021-12-31 山东云海国创云计算装备产业创新中心有限公司 一种基于通用闪存存储的系统及其启动方法
CN114036096B (zh) * 2021-11-04 2024-05-03 珠海一微半导体股份有限公司 一种基于总线接口的读控制器
CN115114200B (zh) * 2022-06-29 2023-11-17 海光信息技术股份有限公司 一种多芯片系统及基于其的启动方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101303682A (zh) * 2008-06-25 2008-11-12 杭州华三通信技术有限公司 通过pci总线传输数据的装置、代理访问装置及方法
CN103136136A (zh) * 2012-11-23 2013-06-05 香港应用科技研究院有限公司 用于闪存存储介质执行数据传输的方法和系统
CN103389963A (zh) * 2012-05-09 2013-11-13 北京兆易创新科技股份有限公司 一种嵌入式系统控制器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996651B2 (en) * 2002-07-29 2006-02-07 Freescale Semiconductor, Inc. On chip network with memory device address decoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101303682A (zh) * 2008-06-25 2008-11-12 杭州华三通信技术有限公司 通过pci总线传输数据的装置、代理访问装置及方法
CN103389963A (zh) * 2012-05-09 2013-11-13 北京兆易创新科技股份有限公司 一种嵌入式系统控制器
CN103136136A (zh) * 2012-11-23 2013-06-05 香港应用科技研究院有限公司 用于闪存存储介质执行数据传输的方法和系统

Also Published As

Publication number Publication date
CN106557442A (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
CN106557442B (zh) 一种芯片系统
CN103778013B (zh) 一种多通道Nand Flash控制器及其控制方法
CN102193885B (zh) 支持虚拟信道的非挥发性存储器控制器
US20040054864A1 (en) Memory controller
US9965222B1 (en) Software mode register access for platform margining and debug
KR20210021302A (ko) 메모리 제어기에서의 리프레시 방식
CN102999453B (zh) 用于系统芯片集成的通用非易失性存储器控制装置
JP6554184B2 (ja) ソフトプロセッサベースの画像信号ソースシステムおよび画像信号処理方法
CN103985404A (zh) 多个独立的串行链接存储器
US8996788B2 (en) Configurable flash interface
CN109313620A (zh) 存储器协议
CN103597460A (zh) 用于利用存储命令的系统和方法
CN108694076A (zh) 多节点存储操作
US10936234B2 (en) Data transfer between memory devices on shared bus
CN109669729A (zh) 一种处理器的启动引导方法
CN104750660A (zh) 一种具有多工作模式的嵌入式可重构处理器
CN105389134A (zh) 一种闪存接口控制方法及装置
US10372337B2 (en) Write request processing method and memory controller
CN108701085A (zh) 用于固态装置的多个地址寄存器的设备及方法
JP2017157199A (ja) メモリシステム及びそれを制御する方法
CN106126472A (zh) 一种实现静态与动态存储控制器访问无缝切换的控制结构
CN106980513A (zh) 一种双引导文件的切换方法及装置
US20120218814A1 (en) Write bandwidth in a memory characterized by a variable write time
CN210573757U (zh) 一种用于实现基于fpga的sdram控制系统的硬件装置
US8677033B2 (en) Method for initializing registers of peripherals in a microcontroller

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
CP03 Change of name, title or address

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing

Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.

CP03 Change of name, title or address