WO2020177577A1 - Method and apparatus for controller to load multi-core firmware, and computer device - Google Patents

Method and apparatus for controller to load multi-core firmware, and computer device Download PDF

Info

Publication number
WO2020177577A1
WO2020177577A1 PCT/CN2020/076595 CN2020076595W WO2020177577A1 WO 2020177577 A1 WO2020177577 A1 WO 2020177577A1 CN 2020076595 W CN2020076595 W CN 2020076595W WO 2020177577 A1 WO2020177577 A1 WO 2020177577A1
Authority
WO
WIPO (PCT)
Prior art keywords
cpu
core firmware
nandflash
controller
page
Prior art date
Application number
PCT/CN2020/076595
Other languages
French (fr)
Chinese (zh)
Inventor
杨志佳
冯元元
周强
Original Assignee
深圳忆联信息系统有限公司
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 深圳忆联信息系统有限公司 filed Critical 深圳忆联信息系统有限公司
Publication of WO2020177577A1 publication Critical patent/WO2020177577A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • This application relates to the technical field of solid-state hard disks, and in particular to a method, device and computer equipment for a controller to load multi-core firmware.
  • the Bootloader (multi-core firmware loading project) of the solid-state hard disk controller runs in a single CPU, and its function is to load the multi-core firmware from Nandflash to the storage area of the controller to run.
  • the controller usually reads and caches the multi-core firmware from Nandflash to DRAM (Dynamic Random Access Memory), and then moves the firmware.
  • the process of loading multi-core firmware is shown in Figure 1.
  • the Bootrom startup code
  • the bootrom will load the Bootloader from the designated area of NandFlash to run.
  • Bootloader will initialize the modules related to the controller, including CRM (clock module), NFC (NandFlash controller), DMAC (direct memory access module controller), and DRAM.
  • CRM clock module
  • NFC NandFlash controller
  • DMAC direct memory access module controller
  • DRAM direct memory access module controller
  • Bootloader applies for a cache space in SRAM (Static Random Access Memory), the controller reads the data of each Page to this cache space, and the first CPU (CPU0) copies the data in the cache to DRAM in order Until the multi-core firmware has been read.
  • the complete multi-core firmware is stored in the DRAM of the solid state drive.
  • CPU0 cannot move the data in DRAM to the ITCM (kernel instruction operating area) or DTCM (kernel data operating area) of other CPUs through CPU copy, the data can only be transferred through external modules, usually the controller uses DMA to transfer Move the multi-core firmware to the designated storage area of the designated CPU. CPU0 then releases other CPUs, allowing other CPUs to run normally, and CPU0 then jumps to zero address to run. At this time, all CPUs are running the system-wide multi-core firmware normally.
  • the solid-state hard disk controller Bootloader has high requirements for loading multi-core firmware. Once the startup time is too long, the solid-state hard disk and the host cannot send and receive commands normally.
  • the above method has the following problems: usually the multi-core firmware file is large, and the existing bootloader needs to move the data from the particle to the specified storage area of the specified CPU three times. First, move it from NandFlash to a cache through NFC, and then copy it through the CPU. The method is moved from the cache to the DRAM. Finally, the DMAC is used to move the data in the DRAM to the designated location of each CPU. It takes too long to load the firmware. Once the time is too long, the SSD and the host will not be able to send and receive commands normally. In addition, there are too many modules that need to be initialized, resulting in too long time for initialization.
  • One of the objectives of the embodiments of the present application is to provide a method, device, and computer equipment for a controller to load multi-core firmware, so as to solve the problem of a long time for the controller to load multi-core firmware.
  • a method for a controller to load multi-core firmware includes:
  • the first CPU runs the startup code
  • the startup code loads the multi-core firmware loading project from Nandflash
  • the first CPU runs the multi-core firmware loading project
  • the Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
  • the multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
  • a device for a controller to load multi-core firmware including a first running unit, a loading unit, a second running unit, a moving unit, and a releasing unit;
  • the first running unit is configured to run the startup code by the first CPU
  • the loading unit is used for starting code to load a multi-core firmware loading project from Nandflash;
  • the second running unit is used for the first CPU to run the multi-core firmware loading project
  • the moving unit is used for the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
  • the release unit is used for the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to zero address to run.
  • a computer device including a memory, a processor, and a computer program stored in the memory and capable of running on the processor.
  • the processor implements the controller described in the first aspect when the processor executes the computer program Steps of the method of loading multi-core firmware.
  • a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method for loading multi-core firmware by the controller in the first aspect are realized.
  • the beneficial effects of the method and device for loading multi-core firmware by the controller provided by the embodiments of the application and the computer equipment are: the method for loading multi-core firmware by the controller provided by the present application avoids using DMA to move the multi-core firmware in the DRAM to a specified The designated storage area of the CPU, instead of directly moving the multi-core firmware of each page in Nandflash to the designated storage area of the CPU through the Nandflash controller, greatly reducing the time for the controller to load the multi-core firmware.
  • the use of clock modules, direct memory access module controllers, and dynamic random access memory is eliminated, further shortening the time for multi-core firmware loading.
  • Figure 1 is a flow chart of loading multi-core firmware for a prior art controller
  • FIG. 2 is a flowchart of a specific embodiment of a method for a controller to load multi-core firmware according to this application;
  • FIG. 3 is a schematic structural diagram of a specific embodiment of an apparatus for loading multi-core firmware by a controller according to this application;
  • FIG. 4 is a schematic block diagram of a specific embodiment of a computer device according to this application.
  • the present application provides a method for a controller to load multi-core firmware.
  • the method includes the following steps:
  • the first CPU runs the startup code
  • the startup code loads the multi-core firmware loading project from Nandflash;
  • the first CPU runs the multi-core firmware loading project
  • the multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information about the movement of the multi-core firmware;
  • Nandflash controller moves the multi-core firmware of each page (page) in Nandflash to the designated storage area of the CPU;
  • step S70 Judge whether all pages have been read, if yes, go to step S80, if no, go back to step S60;
  • the relevant information includes the designated CPU number, the storage area address, and the moved data length.
  • the designated storage area is the kernel data operation area and the kernel instruction operation area.
  • the first CPU (referred to as CPU0) runs the startup code.
  • the startup code will load the multi-core firmware loading project from Nandflash, and then CPU0 will run the multi-core firmware loading project.
  • NFC Nandflash controller
  • the SSD controller uses NFC to directly move the firmware in each page to the kernel data operation area and kernel instruction operation area of the designated CPU through the SSD system bus. Since the related information of the multi-core firmware movement is stored in the first page of Nandflash, the controller first reads the first page in Nandflash before moving the data to obtain the relevant information of the multi-core firmware. After the data is moved, the multi-core firmware loading project run by CPU0 releases all CPUs except CPU0, and CPU0 jumps to the zero address to run, thereby making the multi-core firmware run successfully.
  • the present application provides an apparatus for a controller to load multi-core firmware.
  • the device includes a first operating unit 1, a loading unit 2, a second operating unit 3, a moving unit 4 and a releasing unit 5, an initialization unit 6, a reading unit 7, and a judgment unit 8;
  • the first running unit 1 is used for the first CPU to run the startup code
  • Loading unit 2 used to load the multi-core firmware loading project from Nandflash with the startup code
  • the second running unit 3 is used for the first CPU to run the multi-core firmware loading project
  • the moving unit 4 is used for the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
  • the release unit 5 is used for the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to zero address to run;
  • the initialization unit 6 is used to initialize the Nandflash controller
  • the reading unit 7 is used for the multi-core firmware loading project to read the first page of the channel where the multi-core firmware is located, so as to obtain information about the movement of the multi-core firmware;
  • the judging unit 8 is used to judge whether all pages have been read.
  • the related information includes the designated CPU number, storage area address, and moved data length.
  • the designated storage area is the kernel data operation area and the kernel instruction operation area.
  • the first CPU (referred to as CPU0) runs the startup code.
  • the startup code will load the multi-core firmware loading project from Nandflash, and then CPU0 will run the multi-core firmware loading project.
  • NFC Nandflash controller
  • the SSD controller uses NFC to directly move the firmware in each page to the kernel data operation area and kernel instruction operation area of the designated CPU through the SSD system bus. Since the related information of the multi-core firmware movement is stored in the first page of Nandflash, the controller first reads the first page in Nandflash before moving the data to obtain the relevant information of the multi-core firmware. After the data is moved, the multi-core firmware loading project run by CPU0 releases all CPUs except CPU0, and CPU0 jumps to the zero address to run, thus making the multi-core firmware run successfully.
  • the present application also provides a computer device, including a memory, a processor, and a computer program stored in the memory and running on the processor.
  • the processor executes the computer program, the controller can be loaded as described above. Method steps for multi-core firmware.
  • the computer device 700 may be a terminal or a server.
  • the computer device 700 includes a processor 720, a memory, and a network interface 750 connected through a system bus 710, where the memory may include a non-volatile storage medium 730 and an internal memory 740.
  • the non-volatile storage medium 730 can store an operating system 731 and a computer program 732.
  • the processor 720 can execute any method for the controller to load multi-core firmware.
  • the processor 720 is used to provide computing and control capabilities, and support the operation of the entire computer device 700.
  • the internal memory 740 provides an environment for the operation of the computer program 732 in the non-volatile storage medium 730.
  • the processor 720 can execute any method for loading multi-core firmware by the controller.
  • the network interface 750 is used for network communication, such as sending assigned tasks.
  • the structure shown in FIG. 4 is only a block diagram of part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device 700 to which the solution of the present application is applied.
  • the specific computer device 700 may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.
  • the processor 720 is configured to run the program code stored in the memory to implement the following steps:
  • the first CPU runs the startup code
  • the startup code loads the multi-core firmware loading project from Nandflash
  • the first CPU runs the multi-core firmware loading project
  • the Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
  • the multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
  • the multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information about the movement of the multi-core firmware.
  • the Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU, it further includes the following steps:
  • the processor 720 may be a central processing unit (Central Processing Unit, CPU), and the processor 720 may also be other general-purpose processors, digital signal processors (Digital Signal Processors, DSPs), Application Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor.
  • the structure of the computer device 700 shown in FIG. 4 does not constitute a limitation on the computer device 700, and may include more or less components than shown, or a combination of certain components, or different components Layout.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • a computer readable storage medium includes several instructions to enable a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code .
  • the disclosed device and method may be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the modules or units is only a logical function division.
  • there may be other division methods for example, multiple units or components may be It can be combined or integrated into another device, or some features can be omitted or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A method and apparatus for a controller to load multi-core firmware, and a computer device. The method comprises: a first CPU operates a boot code (S10); the boot code loads a multi-core firmware loading project from Nandflash (S20); the first CPU operates the multi-core firmware loading project (S30); a Nandflash controller moves multi-core firmware of each page in the Nandflash to a specified storage area of a CPU (S60); the multi-core firmware loading project operated by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to operate (S80). According to the method, the use of DMA to move multi-core firmware in DRAM to a specified storage area of a specified CPU is avoided; instead, multi-core firmware of each page in Nandflash is directly moved to the specified storage area of the CPU by means of a Nandflash controller, thereby greatly reducing the time for the controller to load the multi-core firmware.

Description

一种控制器加载多核固件的方法、装置及计算机设备Method, device and computer equipment for controller to load multi-core firmware
本申请要求于2019年3月7日在中国专利局提交的、申请号为201910170875.9、发明名称为“一种控制器加载多核固件的方法、装置、计算机设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application requires the priority of the Chinese patent application filed at the Chinese Patent Office on March 7, 2019 with the application number 201910170875.9 and the invention title "A method, device, computer equipment and storage medium for loading multi-core firmware for a controller" Right, the entire contents of which are incorporated in this application by reference.
技术领域Technical field
本申请涉及固态硬盘技术领域,具体涉及一种控制器加载多核固件的方法、装置及计算机设备。This application relates to the technical field of solid-state hard disks, and in particular to a method, device and computer equipment for a controller to load multi-core firmware.
背景技术Background technique
固态硬盘控制器的Bootloader(多核固件加载工程)运行在单个CPU中,其作用是从Nandflash中加载多核固件至控制器的存储区域运行。考虑到多核固件文件通常较大,通常控制器会将多核固件从Nandflash中读取缓存到DRAM(动态随机存取存储器)中,再对固件做搬移。The Bootloader (multi-core firmware loading project) of the solid-state hard disk controller runs in a single CPU, and its function is to load the multi-core firmware from Nandflash to the storage area of the controller to run. Considering that the multi-core firmware file is usually large, the controller usually reads and caches the multi-core firmware from Nandflash to DRAM (Dynamic Random Access Memory), and then moves the firmware.
加载多核固件的流程如图1所示,控制器芯片上电之后,固化在控制器内部的Bootrom(启动代码)首先运行,bootrom会从NandFlash指定区域加载Bootloader运行。Bootloader会对控制器相关的模块做初始化操作,包括CRM(时钟模块)、NFC(NandFlash控制器)、DMAC(直接内存存取模块控制器)、DRAM。Bootloader在SRAM(静态随机存取存储器)中申请一段缓存空间,控制器将每个Page的数据读取到该段缓存空间,第一CPU(CPU0)再将缓存中的数据按顺序拷贝到DRAM中,直到读取完多核固件。此时,完整的多核固件便存储在了固态硬盘的DRAM中。由于CPU0无法通过CPU拷贝的方式将DRAM中的数据搬移到其他CPU的ITCM(内核指令运行区域)或者DTCM(内核数据运行区域)中,因此只能通过外部模块搬运数据,通常控制器采用DMA搬运的方式,将多核固件搬移到指定CPU的指定存储区域。CPU0再释放其他CPU,让其他CPU正常运行,CPU0再跳转至零地址运行。此时所有CPU正常运行全系统多核固件。The process of loading multi-core firmware is shown in Figure 1. After the controller chip is powered on, the Bootrom (startup code) solidified in the controller runs first, and the bootrom will load the Bootloader from the designated area of NandFlash to run. Bootloader will initialize the modules related to the controller, including CRM (clock module), NFC (NandFlash controller), DMAC (direct memory access module controller), and DRAM. Bootloader applies for a cache space in SRAM (Static Random Access Memory), the controller reads the data of each Page to this cache space, and the first CPU (CPU0) copies the data in the cache to DRAM in order Until the multi-core firmware has been read. At this time, the complete multi-core firmware is stored in the DRAM of the solid state drive. Because CPU0 cannot move the data in DRAM to the ITCM (kernel instruction operating area) or DTCM (kernel data operating area) of other CPUs through CPU copy, the data can only be transferred through external modules, usually the controller uses DMA to transfer Move the multi-core firmware to the designated storage area of the designated CPU. CPU0 then releases other CPUs, allowing other CPUs to run normally, and CPU0 then jumps to zero address to run. At this time, all CPUs are running the system-wide multi-core firmware normally.
通常固态硬盘控制器Bootloader对加载多核固件的时间要求较高,一旦启动时间过长,将导致固态硬盘和主机无法正常收发命令。Usually the solid-state hard disk controller Bootloader has high requirements for loading multi-core firmware. Once the startup time is too long, the solid-state hard disk and the host cannot send and receive commands normally.
上述方法存在以下问题:通常多核固件文件较大,现有bootloader将数据从颗粒搬移到指定CPU的指定存储区域需要搬移3次,首先从NandFlash中通过NFC搬移到一段缓存中,再通过CPU拷贝的方式从缓存搬移到DRAM中,最后使用DMAC将DRAM中的数据搬移到各个CPU的指定位置,加载固件的时间过长,一旦时间过长,将导致固态硬盘和主机无法正常收发命令。另外,需要初始化的模块过多,从而导致初始化消耗的时间也太长。The above method has the following problems: usually the multi-core firmware file is large, and the existing bootloader needs to move the data from the particle to the specified storage area of the specified CPU three times. First, move it from NandFlash to a cache through NFC, and then copy it through the CPU. The method is moved from the cache to the DRAM. Finally, the DMAC is used to move the data in the DRAM to the designated location of each CPU. It takes too long to load the firmware. Once the time is too long, the SSD and the host will not be able to send and receive commands normally. In addition, there are too many modules that need to be initialized, resulting in too long time for initialization.
发明概述Summary of the invention
技术问题technical problem
本申请实施例的目的之一在于:提供一种控制器加载多核固件的方法、装置及计算机设备,旨在解决控制器加载多核固件的时间较长的问题。One of the objectives of the embodiments of the present application is to provide a method, device, and computer equipment for a controller to load multi-core firmware, so as to solve the problem of a long time for the controller to load multi-core firmware.
问题的解决方案The solution to the problem
技术解决方案Technical solutions
为解决上述技术问题,本申请实施例采用的技术方案是:In order to solve the above technical problems, the technical solutions adopted in the embodiments of this application are:
第一方面,提供了一种控制器加载多核固件的方法,所述方法包括:In a first aspect, a method for a controller to load multi-core firmware is provided, and the method includes:
第一CPU运行启动代码;The first CPU runs the startup code;
启动代码从Nandflash中加载多核固件加载工程;The startup code loads the multi-core firmware loading project from Nandflash;
第一CPU运行多核固件加载工程;The first CPU runs the multi-core firmware loading project;
Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。The multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
第二方面,提供了一种控制器加载多核固件的装置,所述装置包括第一运行单元、加载单元、第二运行单元、搬移单元以及释放单元;In a second aspect, there is provided a device for a controller to load multi-core firmware, the device including a first running unit, a loading unit, a second running unit, a moving unit, and a releasing unit;
所述第一运行单元,用于第一CPU运行启动代码;The first running unit is configured to run the startup code by the first CPU;
所述加载单元,用于启动代码从Nandflash中加载多核固件加载工程;The loading unit is used for starting code to load a multi-core firmware loading project from Nandflash;
所述第二运行单元,用于第一CPU运行多核固件加载工程;The second running unit is used for the first CPU to run the multi-core firmware loading project;
所述搬移单元,用于Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The moving unit is used for the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
所述释放单元,用于第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。The release unit is used for the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to zero address to run.
第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的控制器加载多核固件的方法的步骤。In a third aspect, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor. The processor implements the controller described in the first aspect when the processor executes the computer program Steps of the method of loading multi-core firmware.
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的控制器加载多核固件的方法的步骤。In a fourth aspect, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method for loading multi-core firmware by the controller in the first aspect are realized.
本申请实施例提供的控制器加载多核固件的方法、装置及计算机设备的有益效果在于:本申请提供的一种控制器加载多核固件的方法,避免了使用DMA将DRAM中的多核固件搬移到指定CPU的指定存储区域,而是通过Nandflash控制器直接将Nandflash中每个page的多核固件搬移到CPU的指定存储区域,大大减少了控制器加载多核固件的时间。另外,去除了时钟模块、直接内存存取模块控制器以及动态随机存取存储器的使用,进一步的缩短了多核固件加载的时间。The beneficial effects of the method and device for loading multi-core firmware by the controller provided by the embodiments of the application and the computer equipment are: the method for loading multi-core firmware by the controller provided by the present application avoids using DMA to move the multi-core firmware in the DRAM to a specified The designated storage area of the CPU, instead of directly moving the multi-core firmware of each page in Nandflash to the designated storage area of the CPU through the Nandflash controller, greatly reducing the time for the controller to load the multi-core firmware. In addition, the use of clock modules, direct memory access module controllers, and dynamic random access memory is eliminated, further shortening the time for multi-core firmware loading.
发明的有益效果The beneficial effects of the invention
对附图的简要说明Brief description of the drawings
附图说明Description of the drawings
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或示范性技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly describe the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings that need to be used in the embodiments or exemplary technical descriptions. Obviously, the drawings in the following description are only for the present application. For some embodiments, those of ordinary skill in the art can obtain other drawings based on these drawings without creative work.
图1为现有技术控制器加载多核固件的流程图;Figure 1 is a flow chart of loading multi-core firmware for a prior art controller;
图2为本申请一种控制器加载多核固件的方法具体实施例的流程图;2 is a flowchart of a specific embodiment of a method for a controller to load multi-core firmware according to this application;
图3为本申请一种控制器加载多核固件的装置具体实施例的结构示意图;3 is a schematic structural diagram of a specific embodiment of an apparatus for loading multi-core firmware by a controller according to this application;
图4为本申请为本申请一种计算机设备具体实施例的示意性框图。FIG. 4 is a schematic block diagram of a specific embodiment of a computer device according to this application.
发明实施例Invention embodiment
本发明的实施方式Embodiments of the invention
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。In order to make the purpose, technical solutions, and advantages of this application clearer, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the application, and not used to limit the application.
如图2所示,本申请提供了一种控制器加载多核固件的方法,该方法包括以下步骤:As shown in Figure 2, the present application provides a method for a controller to load multi-core firmware. The method includes the following steps:
S10、第一CPU运行启动代码;S10. The first CPU runs the startup code;
S20、启动代码从Nandflash中加载多核固件加载工程;S20. The startup code loads the multi-core firmware loading project from Nandflash;
S30、第一CPU运行多核固件加载工程;S30. The first CPU runs the multi-core firmware loading project;
S40、初始化Nandflash控制器;S40. Initialize the Nandflash controller;
S50、多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息;S50. The multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information about the movement of the multi-core firmware;
S60、Nandflash控制器将Nandflash中每个page(页)的多核固件搬移到CPU的指定存储区域;S60, Nandflash controller moves the multi-core firmware of each page (page) in Nandflash to the designated storage area of the CPU;
S70、判断是否读取完所有page,若是,则进入步骤S80,若否,则返回步骤S60;S70. Judge whether all pages have been read, if yes, go to step S80, if no, go back to step S60;
S80、第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。S80. The multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
具体的,步骤S50中,相关信息包括指定的CPU编号、存储区域地址、搬移的数据长度。步骤S60中,指定存储区域为内核数据运行区域和内核指令运行区域。Specifically, in step S50, the relevant information includes the designated CPU number, the storage area address, and the moved data length. In step S60, the designated storage area is the kernel data operation area and the kernel instruction operation area.
当固态硬盘的芯片上电之后,第一CPU(简称为CPU0)运行启动代码,启动代码会从Nandflash中加载多核固件加载工程,然后CPU0会运行多核固件加载工程,多核固件加载工程运行后只需将多核固件加载工程所需的Nandflash控制器(NFC)做相关初始化操作。固态硬盘控制器使用NFC通过固态硬盘系统总线将每个page中的固件直接搬移到指定CPU的内核数据运行区域和内核指令运行区域。由于多核固件搬移的相关信息存放在Nandflash第一个page中,控制器在搬移数据之前,首先读取Nandflash中的第一个page,获取多核固件的相关信息。搬移完数据之后,CPU0运行的多核固件加载工程便释放除CPU0之外的所有CPU ,CPU0跳转至零地址运行,进而使得多核固件成功运行。When the chip of the solid state drive is powered on, the first CPU (referred to as CPU0) runs the startup code. The startup code will load the multi-core firmware loading project from Nandflash, and then CPU0 will run the multi-core firmware loading project. After the multi-core firmware loading project runs, only Load the Nandflash controller (NFC) required by the multi-core firmware to the project for related initialization operations. The SSD controller uses NFC to directly move the firmware in each page to the kernel data operation area and kernel instruction operation area of the designated CPU through the SSD system bus. Since the related information of the multi-core firmware movement is stored in the first page of Nandflash, the controller first reads the first page in Nandflash before moving the data to obtain the relevant information of the multi-core firmware. After the data is moved, the multi-core firmware loading project run by CPU0 releases all CPUs except CPU0, and CPU0 jumps to the zero address to run, thereby making the multi-core firmware run successfully.
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should be understood that the size of the sequence number of each step in the foregoing embodiment does not mean the order of execution. The execution sequence of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiment of the present application.
对应于上述实施例所述的一种控制器加载多核固件的方法,本申请提供了一种控制器加载多核固件的装置。如图3所示,该装置包括第一运行单元1、加载单元2、第二运行单元3、搬移单元4以及释放单元5、初始化单元6、读取单元7以及判断单元8;Corresponding to the method for a controller to load multi-core firmware described in the foregoing embodiment, the present application provides an apparatus for a controller to load multi-core firmware. As shown in Figure 3, the device includes a first operating unit 1, a loading unit 2, a second operating unit 3, a moving unit 4 and a releasing unit 5, an initialization unit 6, a reading unit 7, and a judgment unit 8;
第一运行单元1,用于第一CPU运行启动代码;The first running unit 1 is used for the first CPU to run the startup code;
加载单元2,用于启动代码从Nandflash中加载多核固件加载工程; Loading unit 2, used to load the multi-core firmware loading project from Nandflash with the startup code;
第二运行单元3,用于第一CPU运行多核固件加载工程;The second running unit 3 is used for the first CPU to run the multi-core firmware loading project;
搬移单元4,用于Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The moving unit 4 is used for the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
释放单元5,用于第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行;The release unit 5 is used for the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to zero address to run;
初始化单元6,用于初始化Nandflash控制器;The initialization unit 6 is used to initialize the Nandflash controller;
读取单元7,用于多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息;The reading unit 7 is used for the multi-core firmware loading project to read the first page of the channel where the multi-core firmware is located, so as to obtain information about the movement of the multi-core firmware;
判断单元8,用于判断是否读取完所有page。The judging unit 8 is used to judge whether all pages have been read.
具体的,相关信息包括指定的CPU编号、存储区域地址、搬移的数据长度。指定存储区域为内核数据运行区域和内核指令运行区域。Specifically, the related information includes the designated CPU number, storage area address, and moved data length. The designated storage area is the kernel data operation area and the kernel instruction operation area.
当固态硬盘的芯片上电之后,第一CPU(简称为CPU0)运行启动代码,启动代码会从Nandflash中加载多核固件加载工程,然后CPU0会运行多核固件加载工程,多核固件加载工程运行后只需将多核固件加载工程所需的Nandflash控制器(NFC)做相关初始化操作。固态硬盘控制器使用NFC通过固态硬盘系统总线将每个page中的固件直接搬移到指定CPU的内核数据运行区域和内核指令运行区域。由于多核固件搬移的相关信息存放在Nandflash第一个page中,控制器在搬移数据之前,首先读取Nandflash中的第一个page,获取多核固件的相关信息。搬 移完数据之后,CPU0运行的多核固件加载工程便释放除CPU0之外的所有CPU,CPU0跳转至零地址运行,进而使得多核固件成功运行。When the chip of the solid state drive is powered on, the first CPU (referred to as CPU0) runs the startup code. The startup code will load the multi-core firmware loading project from Nandflash, and then CPU0 will run the multi-core firmware loading project. After the multi-core firmware loading project runs, only Load the Nandflash controller (NFC) required by the multi-core firmware to the project for related initialization operations. The SSD controller uses NFC to directly move the firmware in each page to the kernel data operation area and kernel instruction operation area of the designated CPU through the SSD system bus. Since the related information of the multi-core firmware movement is stored in the first page of Nandflash, the controller first reads the first page in Nandflash before moving the data to obtain the relevant information of the multi-core firmware. After the data is moved, the multi-core firmware loading project run by CPU0 releases all CPUs except CPU0, and CPU0 jumps to the zero address to run, thus making the multi-core firmware run successfully.
如图4所示,本申请还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的控制器加载多核固件的方法步骤。As shown in FIG. 4, the present application also provides a computer device, including a memory, a processor, and a computer program stored in the memory and running on the processor. When the processor executes the computer program, the controller can be loaded as described above. Method steps for multi-core firmware.
该计算机设备700可以是终端或服务器。该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。The computer device 700 may be a terminal or a server. The computer device 700 includes a processor 720, a memory, and a network interface 750 connected through a system bus 710, where the memory may include a non-volatile storage medium 730 and an internal memory 740.
该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种控制器加载多核固件的方法。The non-volatile storage medium 730 can store an operating system 731 and a computer program 732. When the computer program 732 is executed, the processor 720 can execute any method for the controller to load multi-core firmware.
该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。The processor 720 is used to provide computing and control capabilities, and support the operation of the entire computer device 700.
该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种控制器加载多核固件的方法。The internal memory 740 provides an environment for the operation of the computer program 732 in the non-volatile storage medium 730. When the computer program 732 is executed by the processor 720, the processor 720 can execute any method for loading multi-core firmware by the controller.
该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:The network interface 750 is used for network communication, such as sending assigned tasks. Those skilled in the art can understand that the structure shown in FIG. 4 is only a block diagram of part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device 700 to which the solution of the present application is applied. The specific computer device 700 may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement. Wherein, the processor 720 is configured to run the program code stored in the memory to implement the following steps:
第一CPU运行启动代码;The first CPU runs the startup code;
启动代码从Nandflash中加载多核固件加载工程;The startup code loads the multi-core firmware loading project from Nandflash;
第一CPU运行多核固件加载工程;The first CPU runs the multi-core firmware loading project;
Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。The multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
在本申请中,所述的第一CPU运行多核固件加载工程的步骤之后,还包括以下 步骤:In this application, after the first CPU runs the multi-core firmware loading project, it further includes the following steps:
初始化Nandflash控制器;Initialize the Nandflash controller;
多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息。The multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information about the movement of the multi-core firmware.
在本申请中,所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域的步骤之后,还包括以下步骤:In this application, after the Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU, it further includes the following steps:
判断是否读取完所有page;Determine whether all pages have been read;
若是,则进入所述的第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行步骤;If yes, enter the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to the zero address operation step;
若否,则返回所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域的步骤。If not, return to the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU.
应当理解,在本申请实施例中,处理器720可以是中央处理单元(Central Processing Unit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。It should be understood that in the embodiment of the present application, the processor 720 may be a central processing unit (Central Processing Unit, CPU), and the processor 720 may also be other general-purpose processors, digital signal processors (Digital Signal Processors, DSPs), Application Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Among them, the general-purpose processor may be a microprocessor or the processor may also be any conventional processor.
本领域技术人员可以理解,图4中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。Those skilled in the art can understand that the structure of the computer device 700 shown in FIG. 4 does not constitute a limitation on the computer device 700, and may include more or less components than shown, or a combination of certain components, or different components Layout.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等 各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the embodiments of the present application essentially or the part that contributes to the prior art or all or part of the technical solutions can be embodied in the form of software products, and the computer software products are stored in a storage The medium includes several instructions to enable a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code .
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that for the convenience and conciseness of description, only the division of the above-mentioned functional units and modules is used as an example. In practical applications, the above-mentioned functions can be allocated to different functional units and modules as required. Module completion means dividing the internal structure of the device into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist alone physically, or two or more units can be integrated into one unit. The above-mentioned integrated units can be hardware-based Formal realization can also be realized in the form of software functional units. In addition, the specific names of the functional units and modules are only used to facilitate distinguishing each other, and are not used to limit the protection scope of the present application. For the specific working process of the units and modules in the above-mentioned device, reference may be made to the corresponding process in the foregoing method embodiment, which is not repeated here.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。A person of ordinary skill in the art may be aware that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be implemented by electronic hardware or a combination of computer software and electronic hardware. Whether these functions are executed by hardware or software depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered beyond the scope of this application.
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。In the embodiments provided in this application, it should be understood that the disclosed device and method may be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the modules or units is only a logical function division. In actual implementation, there may be other division methods, for example, multiple units or components may be It can be combined or integrated into another device, or some features can be omitted or not implemented. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可 以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
上述仅以实施例来说明本申请的技术内容,以便于读者更容易理解,但不代表本申请的实施方式仅限于此,任何依本申请所做的技术延伸或再创造,均受本申请的保护。本申请的保护范围以权利要求书为准。The above only uses examples to illustrate the technical content of this application for easier understanding of readers, but it does not mean that the implementation of this application is limited to this. Any technical extension or re-creation made according to this application is subject to this application. protection. The scope of protection of this application is subject to the claims.

Claims (20)

  1. 一种控制器加载多核固件的方法,其特征在于,所述方法包括:A method for a controller to load multi-core firmware, characterized in that the method includes:
    第一CPU运行启动代码;The first CPU runs the startup code;
    启动代码从Nandflash中加载多核固件加载工程;The startup code loads the multi-core firmware loading project from Nandflash;
    第一CPU运行多核固件加载工程;The first CPU runs the multi-core firmware loading project;
    Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
    第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。The multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
  2. 根据权利要求1所述的控制器加载多核固件的方法,其特征在于,所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域中,所述指定存储区域为内核数据运行区域和内核指令运行区域。The method for loading multi-core firmware by a controller according to claim 1, wherein the Nandflash controller moves the multi-core firmware of each page in Nandflash to a designated storage area of the CPU, and the designated storage area is the kernel. Data operation area and kernel instruction operation area.
  3. 根据权利要求1所述的控制器加载多核固件的方法,其特征在于,所述的第一CPU运行多核固件加载工程的步骤之后,还包括以下步骤:The method for loading multi-core firmware by a controller according to claim 1, wherein after the step of running the multi-core firmware loading project by the first CPU, the method further comprises the following steps:
    初始化Nandflash控制器;Initialize the Nandflash controller;
    多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息。The multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information about the movement of the multi-core firmware.
  4. 根据权利要求1所述的控制器加载多核固件的方法,其特征在于,所述的多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息的步骤中,所述相关信息包括指定的CPU编号、存储区域地址、搬移的数据长度。The method for loading multi-core firmware by a controller according to claim 1, wherein the multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information related to the movement of the multi-core firmware. The related information includes the designated CPU number, storage area address, and moved data length.
  5. 根据权利要求1所述的控制器加载多核固件的方法,其特征在于,所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域的步骤之后,还包括以下步骤:The method for loading multi-core firmware by a controller according to claim 1, wherein after the step of moving the multi-core firmware of each page in Nandflash by the Nandflash controller to the designated storage area of the CPU, the method further comprises the following steps:
    判断是否读取完所有page;Determine whether all pages have been read;
    若是,则进入所述的第一CPU运行的多核固件加载工程释放除第 一CPU之外的所有CPU,第一CPU再跳转至零地址运行步骤;If yes, enter the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to the zero address operation step;
    若否,则返回所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域的步骤。If not, return to the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU.
  6. 一种控制器加载多核固件的装置,其特征在于,所述装置包括第一运行单元、加载单元、第二运行单元、搬移单元以及释放单元;A device for a controller to load multi-core firmware, characterized in that the device includes a first running unit, a loading unit, a second running unit, a moving unit, and a releasing unit;
    所述第一运行单元,用于第一CPU运行启动代码;The first running unit is configured to run the startup code by the first CPU;
    所述加载单元,用于启动代码从Nandflash中加载多核固件加载工程;The loading unit is used for starting code to load a multi-core firmware loading project from Nandflash;
    所述第二运行单元,用于第一CPU运行多核固件加载工程;The second running unit is used for the first CPU to run the multi-core firmware loading project;
    所述搬移单元,用于Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The moving unit is used for the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
    所述释放单元,用于第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。The release unit is used for the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to zero address to run.
  7. 根据权利要求6所述的控制器加载多核固件的装置,其特征在于,所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域中,所述指定存储区域为内核数据运行区域和内核指令运行区域。The device for loading multi-core firmware by a controller according to claim 6, wherein the Nandflash controller moves the multi-core firmware of each page in Nandflash to a designated storage area of the CPU, and the designated storage area is the kernel. Data operation area and kernel instruction operation area.
  8. 根据权利要求6所述的控制器加载多核固件的装置,其特征在于,所述装置还包括初始化单元以及读取单元;The device for loading multi-core firmware by a controller according to claim 6, wherein the device further comprises an initialization unit and a reading unit;
    所述初始化单元,用于初始化Nandflash控制器;The initialization unit is used to initialize the Nandflash controller;
    所述读取单元,用于多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息。The reading unit is used for the multi-core firmware loading project to read the first page of the channel where the multi-core firmware is located, so as to obtain information about the movement of the multi-core firmware.
  9. 根据权利要求6所述的控制器加载多核固件的装置,其特征在于,所述的多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息中,所述相关信息包括指定的CPU编号、存储区域地址、搬移的数据长度。The device for loading multi-core firmware by a controller according to claim 6, wherein the multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information related to the movement of the multi-core firmware. Related information includes the designated CPU number, storage area address, and the length of the moved data.
  10. 根据权利要求6所述的控制器加载多核固件的装置,其特征在于, 所述装置还包括判断单元;The device for loading multi-core firmware by a controller according to claim 6, wherein the device further comprises a judgment unit;
    所述判断单元,用于判断是否读取完所有page;The judging unit is used to judge whether all pages have been read;
    若是,则进入所述的第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行步骤;If yes, enter the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to the zero address operation step;
    若否,则返回所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域的步骤。If not, return to the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU.
  11. 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:A computer device comprising a memory, a processor, and a computer program stored on the memory and capable of running on the processor, wherein the processor implements the following steps when the processor executes the computer program:
    第一CPU运行启动代码;The first CPU runs the startup code;
    启动代码从Nandflash中加载多核固件加载工程;The startup code loads the multi-core firmware loading project from Nandflash;
    第一CPU运行多核固件加载工程;The first CPU runs the multi-core firmware loading project;
    Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
    第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。The multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
  12. 根据权利要求11所述的计算机设备,其特征在于,所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域中,所述指定存储区域为内核数据运行区域和内核指令运行区域。The computer device according to claim 11, wherein the Nandflash controller moves the multi-core firmware of each page in Nandflash to a designated storage area of the CPU, and the designated storage area is the kernel data operating area and the kernel Command operation area.
  13. 根据权利要求11所述的计算机设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:The computer device according to claim 11, wherein the processor further implements the following steps when executing the computer program:
    初始化Nandflash控制器;Initialize the Nandflash controller;
    多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息。The multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information about the movement of the multi-core firmware.
  14. 根据权利要求11所述的计算机设备,其特征在于,所述的多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息的步骤中,所述相关信息包括指定的CPU编号 、存储区域地址、搬移的数据长度。The computer device according to claim 11, wherein the multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information related to the movement of the multi-core firmware. In the step, the related information includes The specified CPU number, storage area address, and data length to be moved.
  15. 根据权利要求11所述的计算机设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:The computer device according to claim 11, wherein the processor further implements the following steps when executing the computer program:
    判断是否读取完所有page;Determine whether all pages have been read;
    若是,则进入所述的第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行步骤;If yes, enter the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to the zero address operation step;
    若否,则返回所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域的步骤。If not, return to the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU.
  16. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序包括程序指令,其特征在于,所述程序指令被处理器执行时,使得所述处理器执行如下步骤:A computer-readable storage medium having a computer program stored thereon, the computer program including program instructions, wherein the program instructions are executed by a processor to cause the processor to perform the following steps:
    第一CPU运行启动代码;The first CPU runs the startup code;
    启动代码从Nandflash中加载多核固件加载工程;The startup code loads the multi-core firmware loading project from Nandflash;
    第一CPU运行多核固件加载工程;The first CPU runs the multi-core firmware loading project;
    Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域;The Nandflash controller moves the multi-core firmware of each page in Nandflash to the designated storage area of the CPU;
    第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行。The multi-core firmware loading project run by the first CPU releases all CPUs except the first CPU, and the first CPU jumps to the zero address to run.
  17. 根据权利要求16所述的计算机可读存储介质,其特征在于,所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域中,所述指定存储区域为内核数据运行区域和内核指令运行区域。The computer-readable storage medium according to claim 16, wherein the Nandflash controller moves the multi-core firmware of each page in Nandflash to a designated storage area of the CPU, and the designated storage area is kernel data running The area and the kernel command execution area.
  18. 根据权利要求16所述的计算机可读存储介质,其特征在于,所述程序指令被处理器执行时,使得所述处理器还执行如下步骤:The computer-readable storage medium according to claim 16, wherein when the program instructions are executed by a processor, the processor further executes the following steps:
    初始化Nandflash控制器;Initialize the Nandflash controller;
    多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息。The multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information about the movement of the multi-core firmware.
  19. 根据权利要求16所述的计算机可读存储介质,其特征在于,所述 的多核固件加载工程读取多核固件所在通道的第一个page,以获取多核固件搬移的相关信息中,所述相关信息包括指定的CPU编号、存储区域地址、搬移的数据长度。The computer-readable storage medium according to claim 16, wherein the multi-core firmware loading project reads the first page of the channel where the multi-core firmware is located to obtain information related to the movement of the multi-core firmware. Including the specified CPU number, storage area address, and data length to be moved.
  20. 根据权利要求16所述的计算机可读存储介质,其特征在于,所述程序指令被处理器执行时,使得所述处理器还执行如下步骤:The computer-readable storage medium according to claim 16, wherein when the program instructions are executed by a processor, the processor further executes the following steps:
    判断是否读取完所有page;Determine whether all pages have been read;
    若是,则进入所述的第一CPU运行的多核固件加载工程释放除第一CPU之外的所有CPU,第一CPU再跳转至零地址运行步骤;If yes, enter the multi-core firmware loading project run by the first CPU to release all CPUs except the first CPU, and the first CPU then jumps to the zero address operation step;
    若否,则返回所述的Nandflash控制器将Nandflash中每个page的多核固件搬移到CPU的指定存储区域的步骤。If not, return to the Nandflash controller to move the multi-core firmware of each page in Nandflash to the designated storage area of the CPU.
PCT/CN2020/076595 2019-03-07 2020-02-25 Method and apparatus for controller to load multi-core firmware, and computer device WO2020177577A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910170875.9A CN109901890B (en) 2019-03-07 2019-03-07 Method and device for loading multi-core firmware by controller, computer equipment and storage medium
CN201910170875.9 2019-03-07

Publications (1)

Publication Number Publication Date
WO2020177577A1 true WO2020177577A1 (en) 2020-09-10

Family

ID=66946656

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/076595 WO2020177577A1 (en) 2019-03-07 2020-02-25 Method and apparatus for controller to load multi-core firmware, and computer device

Country Status (2)

Country Link
CN (1) CN109901890B (en)
WO (1) WO2020177577A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901890B (en) * 2019-03-07 2020-12-01 深圳忆联信息系统有限公司 Method and device for loading multi-core firmware by controller, computer equipment and storage medium
CN110286963B (en) * 2019-06-28 2022-08-12 Oppo广东移动通信有限公司 Control code loading method and device, starting controller and electronic equipment
CN110727466B (en) * 2019-10-15 2023-04-11 上海兆芯集成电路有限公司 Multi-grain multi-core computer platform and starting method thereof
CN113110891B (en) * 2021-04-21 2022-03-29 深圳忆联信息系统有限公司 Firmware loading method and device for solid state disk, computer equipment and storage medium
CN113687868A (en) * 2021-08-31 2021-11-23 联想(北京)有限公司 Equipment firmware starting method and device and electronic equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464807A (en) * 2009-01-08 2009-06-24 杭州华三通信技术有限公司 Application program loading method and device
US7908470B1 (en) * 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories
CN106407156A (en) * 2016-09-23 2017-02-15 深圳震有科技股份有限公司 A method and a system for BOOTROM guiding multi-core CPU boot
CN109901890A (en) * 2019-03-07 2019-06-18 深圳忆联信息系统有限公司 A kind of method, apparatus, computer equipment and the storage medium of controller loading multi-core firmware

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7855916B2 (en) * 2007-10-24 2010-12-21 Rao G R Mohan Nonvolatile memory systems with embedded fast read and write memories
CN103092652A (en) * 2013-01-16 2013-05-08 深圳市怡化电脑有限公司 Multiprocessor program loading device and loading method
JP6303670B2 (en) * 2014-03-19 2018-04-04 日本電気株式会社 Multiple CPU start circuit, multiple CPU start method, and multiple CPU start circuit program
CN108874458A (en) * 2017-05-10 2018-11-23 鸿秦(北京)科技有限公司 A kind of the firmware starting method and multicore SoC device of multicore SoC
CN107656773B (en) * 2017-09-28 2021-06-25 中国人民解放军国防科技大学 Multi-core DSP starting method
CN107957970A (en) * 2017-10-23 2018-04-24 记忆科技(深圳)有限公司 The means of communication and solid-state hard disk controller of a kind of heterogeneous polynuclear
CN109086086B (en) * 2018-08-06 2021-06-08 深圳忆联信息系统有限公司 Starting method and device of non-space-sharing multi-core CPU
CN109213531A (en) * 2018-09-01 2019-01-15 哈尔滨工程大学 A kind of multi-core DSP based on EMIF16 powers on the simplification implementation method of self-starting

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908470B1 (en) * 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories
CN101464807A (en) * 2009-01-08 2009-06-24 杭州华三通信技术有限公司 Application program loading method and device
CN106407156A (en) * 2016-09-23 2017-02-15 深圳震有科技股份有限公司 A method and a system for BOOTROM guiding multi-core CPU boot
CN109901890A (en) * 2019-03-07 2019-06-18 深圳忆联信息系统有限公司 A kind of method, apparatus, computer equipment and the storage medium of controller loading multi-core firmware

Also Published As

Publication number Publication date
CN109901890A (en) 2019-06-18
CN109901890B (en) 2020-12-01

Similar Documents

Publication Publication Date Title
WO2020177577A1 (en) Method and apparatus for controller to load multi-core firmware, and computer device
US10909012B2 (en) System having persistent memory
US11042297B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US10956323B2 (en) NVDIMM emulation using a host memory buffer
JP2014154155A (en) Method and system for reducing write latency in data storage system by using command-push model
JP2009043256A (en) Accessing method and arrangement of memory unit
US20220405015A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US11055220B2 (en) Hybrid memory systems with cache management
US10831684B1 (en) Kernal driver extension system and method
US20170371785A1 (en) Techniques for Write Commands to a Storage Device
US20230028071A1 (en) Memory module, system including the same, and operation method of memory module
US10705993B2 (en) Programming and controlling compute units in an integrated circuit
US11526441B2 (en) Hybrid memory systems with cache management
CN111177027B (en) Dynamic random access memory, memory management method, system and storage medium
EP4105771A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US10853299B2 (en) Hot-plugged PCIe device configuration system
CN113220608B (en) NVMe command processor and processing method thereof
US11003474B2 (en) Semiconductor device for providing a virtualization technique
US20180060080A1 (en) Hardware for System Firmware Use
JP6763307B2 (en) Calculator, device control system and device control method
JP2016154001A (en) Image processor, data transfer control method for image processing, and data transfer control program for image processing
Bougioukou et al. A Hybrid Device Driver for Next-Generation Solid-State Drives
WO2017051449A1 (en) Computer system, test method, and transfer device
TW200823668A (en) Data access method
JP2014215832A (en) Memory exclusive control system and image forming apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20765486

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 030222)

122 Ep: pct application non-entry in european phase

Ref document number: 20765486

Country of ref document: EP

Kind code of ref document: A1