TW202230119A - Method for performing multi-system log access management, associated system on chip integrated circuit and non-transitory computer-readable medium - Google Patents
Method for performing multi-system log access management, associated system on chip integrated circuit and non-transitory computer-readable medium Download PDFInfo
- Publication number
- TW202230119A TW202230119A TW110124935A TW110124935A TW202230119A TW 202230119 A TW202230119 A TW 202230119A TW 110124935 A TW110124935 A TW 110124935A TW 110124935 A TW110124935 A TW 110124935A TW 202230119 A TW202230119 A TW 202230119A
- Authority
- TW
- Taiwan
- Prior art keywords
- log
- logs
- partial
- systems
- circuits
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6236—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Abstract
Description
本發明係有關於一積體電路(Integrated circuit, IC)上的跨系統(cross-system)管理,尤指一種用來進行多系統(multi-system)日誌(log)存取管理之方法、相關的系統單晶片(System on Chip,可簡稱SoC)積體電路(Integrated Circuit,可簡稱IC)以及非暫態計算機可讀取媒體(non-transitory computer-readable medium)。The present invention relates to cross-system management on an integrated circuit (IC), and more particularly to a method for multi-system log (log) access management, and related System on Chip (SoC for short) integrated circuit (IC for short) and non-transitory computer-readable medium (non-transitory computer-readable medium).
一SoC IC可包含多個處理器以供實現不同的功能(例如系統控制、聲音相關功能等)。在該SoC IC的各種階段(phase)中,記錄該多個處理器的各自的日誌可能是需要的。例如,在該SoC IC的設計階段、實驗室試運行(pilot run)階段及量產(production)試運行階段中,可能需要大量的日誌,以供進行系統效能分析以及偵錯(debug)。在該SoC IC的量產階段中,可能也需要日誌,以供找出系統當機(crash)的原因。由於該SoC IC可具備各種不同的功能,該SoC IC中的這些處理器可分別運行不同的系統。然而,可能發生某些問題。例如,該SoC IC可能僅僅保留這些處理器中的單一處理器的日誌或僅僅保留這些系統中的單一系統的日誌,且因此缺乏通用的架構,以供獲取跨系統及多處理器的日誌。又例如,這些處理器可能分別輸出日誌至同一個控制台(console),其中同時操作同一個控制台可能需要加上鎖定機制,這可造成這些處理器互相等待,且因此拖慢了這些處理器的速度。再例如,在該SoC IC沒有接到控制台、或者該SoC IC接到控制台但一控制台端主機故障的情況下,無法對該SoC IC進行相關分析。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現具有可靠的日誌處理機制之SoC IC。A SoC IC may contain multiple processors for implementing different functions (eg, system control, sound-related functions, etc.). During various phases of the SoC IC, it may be desirable to record individual logs of the plurality of processors. For example, in the design stage, the pilot run stage and the production trial run stage of the SoC IC, a large number of logs may be required for system performance analysis and debugging. During the mass production phase of the SoC IC, logs may also be required to find out the cause of the system crash. Since the SoC IC can have various functions, the processors in the SoC IC can each run different systems. However, certain problems may occur. For example, the SoC IC may only keep a log of a single processor of the processors or only a single system of the systems, and thus lack a common architecture for obtaining logs across systems and multiple processors. For another example, these processors may output logs separately to the same console, where simultaneous operation of the same console may require a locking mechanism, which can cause these processors to wait for each other and thus slow down these processors speed. For another example, when the SoC IC is not connected to the console, or the SoC IC is connected to the console but a console-side host fails, the SoC IC cannot be analyzed. Therefore, there is a need for a novel approach and related architecture to implement SoC ICs with reliable log handling mechanisms with no or less likely side effects.
本發明之一目的在於提供一種用來進行多系統(multi-system)日誌(log)存取管理之方法、相關的系統單晶片(System on Chip, SoC)積體電路以及非暫態計算機可讀取媒體,以解決上述問題。An object of the present invention is to provide a method for multi-system log (log) access management, a related System on Chip (SoC) integrated circuit, and a non-transitory computer readable Remove the media to resolve the above issues.
本發明之另一目的在於提供一種用來進行多系統日誌存取管理之方法、相關的系統單晶片積體電路以及非暫態計算機可讀取媒體,以確保多個系統的日誌資訊的記錄的完整性(completeness)、正確性及可用性(availability)。Another object of the present invention is to provide a method for multi-system log access management, a related system-on-chip integrated circuit, and a non-transitory computer-readable medium, so as to ensure the record of log information of multiple systems. Completeness, correctness and availability.
本發明之至少一實施例提供一種用來進行多系統日誌存取管理之方法,其中該方法是可應用於(applicable to)一系統單晶片積體電路。該方法可包含:利用該系統單晶片積體電路中之至少一處理器運行多個系統以控制該系統單晶片積體電路的操作,其中該至少一處理器包含多個局部電路,且該多個局部電路分別運行該多個系統;利用該多個局部電路中之一第一局部電路執行至少一第一日誌管理程序,以將該系統單晶片積體電路中之至少一記憶體配置成分別對應於該多個局部電路之多個環緩衝器、於該多個環緩衝器中之一第一環緩衝器中記錄運行於該第一局部電路的一第一系統之一組第一日誌,且將該多個環緩衝器所分別儲存之多組日誌寫入一檔案系統以成為至少一日誌檔案以供存取,其中該多個系統包含該第一系統,而該多組日誌包含該組第一日誌;以及利用該多個局部電路中之至少一第二局部電路執行至少一第二日誌管理程序,以於該多個環緩衝器中之至少一第二環緩衝器中記錄運行於該至少一第二局部電路的至少一第二系統之至少一組第二日誌,其中該多個系統包含該至少一第二系統,而該多組日誌包含該至少一組第二日誌。At least one embodiment of the present invention provides a method for multi-system log access management, wherein the method is applicable to a system-on-chip integrated circuit. The method may include operating a plurality of systems to control the operation of the SoC integrated circuit with at least one processor in the SoC, wherein the at least one processor includes a plurality of local circuits, and the plurality of each local circuit runs the plurality of systems; and utilizes a first local circuit of the plurality of local circuits to execute at least a first log management program, so as to configure at least one memory in the system-on-chip integrated circuit to be respectively a plurality of ring buffers corresponding to the plurality of partial circuits, recording a set of first logs of a first system operating on the first partial circuit in a first ring buffer of the plurality of ring buffers, and write multiple sets of logs stored in the multiple ring buffers into a file system to become at least one log file for access, wherein the multiple systems include the first system, and the multiple sets of logs include the set a first log; and executing at least a second log management procedure by utilizing at least one second partial circuit of the plurality of partial circuits to record in at least one second ring buffer of the plurality of ring buffers running on the At least one set of second logs of at least one second system of at least one second partial circuit, wherein the plurality of systems includes the at least one second system, and the multiple sets of logs include the at least one set of second logs.
本發明之至少一實施例提供一種系統單晶片積體電路,其中該系統單晶片積體電路是可應用於多系統日誌存取管理。該系統單晶片積體電路可包含:至少一處理器,該至少一處理器包含多個局部電路;以及至少一記憶體,耦接至該至少一處理器。該多個局部電路可用來分別運行多個系統以控制該系統單晶片積體電路的操作,而該至少一記憶體可用來為該系統單晶片積體電路儲存資訊。例如:該多個局部電路中之一第一局部電路執行至少一第一日誌管理程序,以將該至少一記憶體配置成分別對應於該多個局部電路之多個環緩衝器、於該多個環緩衝器中之一第一環緩衝器中記錄運行於該第一局部電路的一第一系統之一組第一日誌、且將該多個環緩衝器所分別儲存之多組日誌寫入一檔案系統以成為至少一日誌檔案,以供進一步使用,其中該多個系統包含該第一系統,而該多組日誌包含該組第一日誌;以及該多個局部電路中之至少一第二局部電路執行至少一第二日誌管理程序,以於該多個環緩衝器中之至少一第二環緩衝器中記錄運行於該至少一第二局部電路的至少一第二系統之至少一組第二日誌,其中該多個系統包含該至少一第二系統,而該多組日誌包含該至少一組第二日誌。At least one embodiment of the present invention provides a system-on-chip integrated circuit, wherein the system-on-chip integrated circuit is applicable to multi-system log access management. The system-on-chip integrated circuit may include: at least one processor including a plurality of partial circuits; and at least one memory coupled to the at least one processor. The plurality of local circuits can be used to respectively operate a plurality of systems to control the operation of the SoC IC, and the at least one memory can be used to store information for the SoC IC. For example, a first partial circuit of the plurality of partial circuits executes at least a first log management procedure, so as to configure the at least one memory as a plurality of ring buffers corresponding to the plurality of partial circuits, respectively, in the plurality of A first ring buffer of the ring buffers records a set of first logs of a first system running on the first partial circuit, and writes the sets of logs stored in the ring buffers respectively a file system to become at least one log file for further use, wherein the plurality of systems include the first system, the plurality of sets of logs include the first set of logs; and at least a second one of the plurality of partial circuits The local circuit executes at least one second log management procedure to record in at least one second ring buffer of the plurality of ring buffers at least one set of first records of at least one second system running on the at least one second local circuit Two logs, wherein the plurality of systems include the at least one second system, and the plurality of sets of logs include the at least one group of second logs.
本發明之至少一實施例提供一種非暫態計算機可讀取媒體,其儲存有程式碼使得一系統單晶片積體電路於執行所述程式碼時進行一多系統日誌存取管理程序,該系統單晶片積體電路中之至少一處理器運行多個系統以控制該系統單晶片積體電路的操作,該至少一處理器包含多個局部電路,該多個局部電路分別運行該多個系統,該多系統日誌存取管理程序包含:利用該多個局部電路中之一第一局部電路執行至少一第一日誌管理程序,以將該系統單晶片積體電路中之至少一記憶體配置成分別對應於該多個局部電路之多個環緩衝器、於該多個環緩衝器中之一第一環緩衝器中記錄運行於該第一局部電路的一第一系統之一組第一日誌,且將該多個環緩衝器所分別儲存之多組日誌寫入一檔案系統以成為至少一日誌檔案以供存取,其中該多個系統包含該第一系統,而該多組日誌包含該組第一日誌;以及利用該多個局部電路中之至少一第二局部電路執行至少一第二日誌管理程序,以於該多個環緩衝器中之至少一第二環緩衝器中記錄運行於該至少一第二局部電路的至少一第二系統之至少一組第二日誌,其中該多個系統包含該至少一第二系統,而該多組日誌包含該至少一組第二日誌。At least one embodiment of the present invention provides a non-transitory computer-readable medium storing code to enable a system-on-chip integrated circuit to perform a multi-syslog access management program when executing the code. The system at least one processor in the single chip integrated circuit operates a plurality of systems to control the operation of the system single chip integrated circuit, the at least one processor includes a plurality of partial circuits, the plurality of partial circuits respectively operate the plurality of systems, The multi-system log access management program includes: executing at least one first log management program with a first partial circuit of the plurality of partial circuits, so as to configure at least one memory in the SoC integrated circuit to be respectively a plurality of ring buffers corresponding to the plurality of partial circuits, recording a set of first logs of a first system operating on the first partial circuit in a first ring buffer of the plurality of ring buffers, and write multiple sets of logs stored in the multiple ring buffers into a file system to become at least one log file for access, wherein the multiple systems include the first system, and the multiple sets of logs include the set a first log; and executing at least a second log management procedure by utilizing at least one second partial circuit of the plurality of partial circuits to record in at least one second ring buffer of the plurality of ring buffers running on the At least one set of second logs of at least one second system of at least one second partial circuit, wherein the plurality of systems includes the at least one second system, and the multiple sets of logs include the at least one set of second logs.
依據某些實施例,在該至少一處理器代表複數個處理器/處理器核心的情況下,該多個局部電路可代表該複數個處理器/處理器核心。例如,該複數個處理器/處理器核心可藉由複數個中央處理單元(Central Processing Unit,可簡稱CPU)或複數個CPU核心等方式來實施。According to some embodiments, where the at least one processor represents a plurality of processors/processor cores, the plurality of partial circuits may represent the plurality of processors/processor cores. For example, the plurality of processors/processor cores may be implemented by a plurality of central processing units (Central Processing Unit, CPU for short) or a plurality of CPU cores.
本發明的好處之一是,透過仔細設計之日誌處理機制,本發明能使多系統架構(architecture)諸如多核異構(multi-core heterogeneous)CPU架構具備跨系統日誌處理能力,尤其能提升整體日誌處理效能,且能避免相關技術的問題諸如頻繁操作控制台、加上鎖定機制所致的等待而造成系統效能降低等。One of the advantages of the present invention is that, through a carefully designed log processing mechanism, the present invention enables multi-system architectures such as multi-core heterogeneous CPU architectures to have cross-system log processing capabilities, especially to improve the overall log The processing performance is improved, and the problems of the related art, such as frequent operation of the console and the waiting caused by the locking mechanism, can be avoided, resulting in lowering of the system performance.
第1圖為依據本發明一實施例之一種系統單晶片(System on Chip,簡稱SoC)積體電路(Integrated Circuit,簡稱IC)100的示意圖,其中SoC IC 100可位於一電子裝置10中,尤其,可被安裝(mount)於電子裝置10的一主電路板(例如印刷電路板)上,但本發明不限於此。如第1圖所示,除了SoC IC 100,電子裝置10可包含一資料儲存裝置12及一介面電路14,而資料儲存裝置12可包含一檔案系統12FS。另外,SoC IC 100可包含至少一處理器(例如一或多個處理器),統稱為處理器110,且可另包含耦接至處理器110的至少一記憶體(例如一或多個記憶體),統稱為記憶體120,其中處理器110可包含多個局部電路{PC}諸如(N+1)個局部電路PC(0)、PC(1)、…及PC(N),以供分別運行多個系統諸如系統#0、#1、…及#N,其中符號{ }可代表集合。這些局部電路{PC}諸如該(N+1)個局部電路PC(0)、PC(1)、…及PC(N)可獨立地操作且可分別視為多個局部處理電路諸如(N+1)個局部處理電路,尤其,可為SoC IC 100分別執行系統#0、#1、…及#N。為了便於理解,系統#0、#1、…及#N可分別代表多個作業系統(Operating System, OS)。FIG. 1 is a schematic diagram of a system on chip (SoC) integrated circuit (IC) 100 according to an embodiment of the present invention, wherein the SoC IC 100 can be located in an
在運行於處理器110上的至少一程式模組(例如一或多個程式模組)的控制下,處理器110可將記憶體120(例如其多個儲存區)配置成多個環緩衝器(Ring Buffer){RB}諸如(N+1)個環緩衝器RB(0)、RB(1)、…及RB(N)以及一環緩衝器頭區RBH以及進行多個日誌存取操作。例如,這些日誌存取操作可包含:
(1) 局部電路PC(0)、PC(1)、…及PC(N)分別對環緩衝器RB(0)、RB(1)、…及RB(N)所進行的寫入操作WRITE(0)、WRITE(1)、…及WRITE(N),其中這些寫入操作可為日誌寫入操作;
(2) 局部電路PC(0)分別對環緩衝器RB(0)、RB(1)、…及RB(N)所進行的讀取操作READ(0)、READ(1)、…及READ(N),其中這些讀取操作可為日誌讀取操作;以及
(3) 局部電路PC(0)對資料儲存裝置12中的檔案系統12FS的寫入操作WRITE
TOTAL,其中這個寫入操作也可為日誌寫入操作,且因為被寫入檔案系統12FS而可為檔案寫入操作,諸如日誌檔案寫入操作;但本發明不限於此。
Under the control of at least one program module (eg, one or more program modules) running on the
基於第1圖所示架構,SoC IC 100可進行多系統日誌存取管理。該多個局部電路{PC}諸如該(N+1)個局部電路PC(0)、PC(1)、…及PC(N)可分別運行系統#0、#1、…及#N以控制SoC IC 100的操作,而上述至少一記憶體諸如記憶體120可用來為SoC IC 100儲存資訊,其中系統#0、#1、…及#N中的至少兩個系統典型地(typically)彼此不同,尤其,分別屬於不同類型的系統。例如,系統#0、#1、…及#N可分別對應於電子裝置10的多個功能諸如功能#0、#1、…及#N,其中功能#0可包含系統控制,而功能#1、…及#N可包含聲音處理、視訊處理、通訊處理、定位處理等,但不以此為限。Based on the architecture shown in Figure 1, the SoC IC 100 can perform multi-system log access management. The plurality of partial circuits {PC} such as the (N+1) partial circuits PC(0), PC(1), ... and PC(N) may operate
該多個局部電路{PC}中之一第一局部電路,諸如局部電路PC(0),可被配置成主要(main)局部電路,以進行該多系統日誌存取管理之整體控制。尤其,局部電路PC(0)可執行至少一第一日誌管理程序諸如日誌管理程序LMP(0),以進行下列操作:
(1) 將記憶體120配置成分別對應於該(N+1)個局部電路PC(0)、PC(1)、…及PC(N)之該(N+1)個環緩衝器RB(0)、RB(1)、…及RB(N);
(2) 於該(N+1)個環緩衝器RB(0)、RB(1)、…及RB(N)中之一第一環緩衝器諸如環緩衝器RB(0)中,記錄運行於該第一局部電路上的一第一系統(其中系統#0、#1、…及#N包含該第一系統,例如系統#0)之一組第一日誌,諸如運行於局部電路PC(0)的系統#0上之一組日誌LOG(0);以及
(3) 將該(N+1)個環緩衝器所分別儲存之(N+1)組日誌LOG(0)、LOG(1)、…及LOG(N)寫入檔案系統12FS以成為至少一日誌檔案12LF,以供進一步使用(例如由使用者/其它處理器根據至少一指令存取並顯示於顯示器上,令使用者/其它處理器可根據各日誌的內容對該多個局部電路{PC}進行控制/優化/重設/除錯…等程序),其中該(N+1)組日誌LOG(0)、LOG(1)、…及LOG(N)包含該組第一日誌諸如該組日誌LOG(0)。
A first partial circuit of the plurality of partial circuits {PC}, such as partial circuit PC(0), may be configured as a main partial circuit for overall control of the multi-syslog access management. In particular, the partial circuit PC(0) can execute at least a first log management program such as the log management program LMP(0) to perform the following operations:
(1) Configure the
另外,該多個局部電路{PC}中之至少一第二局部電路,諸如局部電路PC(n)(例如:符號「n」可代表區間[1, N]中的任一正整數),可執行至少一第二日誌管理程序諸如日誌管理程序LMP(n),以於該(N+1)個環緩衝器RB(0)、RB(1)、…及RB(N)中之至少一第二環緩衝器諸如環緩衝器RB(n)中,記錄運行於該至少一第二局部電路(例如局部電路PC(n))的至少一第二系統(其中該至少一第二系統包含於系統#0、#1、…及#N中,例如系統#n)之至少一組第二日誌(例如一組日誌LOG(n)),而該(N+1)組日誌LOG(0)、LOG(1)、…及LOG(N)包含該至少一組第二日誌諸如該組日誌LOG(n)。舉例來說,N個局部電路PC(1)、…及PC(N)可分別執行N個日誌管理程序LMP(1)、…及LMP(N),以分別於N個環緩衝器RB(1)、…及RB(N)中記錄運行於N個局部電路PC(1)、…及PC(N)的N個系統#1、…及#N之N組日誌LOG(1)、…及LOG(N)。In addition, at least one second partial circuit in the plurality of partial circuits {PC}, such as partial circuit PC(n) (for example, the symbol "n" may represent any positive integer in the interval [1, N]), may Execute at least one second log management program such as log management program LMP(n) for at least one first among the (N+1) ring buffers RB(0), RB(1), . . . and RB(N) In a second ring buffer such as ring buffer RB(n), at least one second system (wherein the at least one second system is included in the system) operating on the at least one second partial circuit (eg partial circuit PC(n)) is recorded In #0, #1, . (1), ... and LOG(N) include the at least one set of second logs such as the set of logs LOG(n). For example, N partial circuits PC(1), . . . and PC(N) may execute N log management procedures LMP(1), . ), ... and RB(N) record N groups of logs LOG(1), ... and LOG of
為了便於理解,該多個局部電路{PC}諸如該(N+1)個局部電路PC(0)、PC(1)、…及PC(N)可藉由處理器/處理器核心諸如中央處理單元(Central Processing Unit,下簡稱CPU)/CPU核心等方式來實施。此情況下,上述至少一處理器諸如處理器110可包含複數個處理器/處理器核心諸如複數個CPU/CPU核心。For ease of understanding, the plurality of partial circuits {PC} such as the (N+1) partial circuits PC(0), PC(1), ... and PC(N) may be processed by a processor/processor core such as a central processing unit Unit (Central Processing Unit, hereinafter referred to as CPU)/CPU core and other means to implement. In this case, the above-mentioned at least one processor such as the
第2圖依據本發明一實施例繪示第1圖所示的SoC IC 100的實施細節。於本實施例中,第1圖所示的該(N+1)個局部電路PC(0)、PC(1)、…及PC(N)可分別被實施成(N+1)個CPU諸如CPU(0)、CPU(1)、…及CPU(N),其中上列CPU中的某一個CPU諸如CPU(0)可為這些CPU中的主要CPU。為了簡明起見,於本實施例中類似的內容在此不重複贅述。FIG. 2 illustrates implementation details of the SoC IC 100 shown in FIG. 1 according to an embodiment of the present invention. In this embodiment, the (N+1) partial circuits PC(0), PC(1), . . . and PC(N) shown in FIG. 1 can be implemented as (N+1) CPUs such as CPU(0), CPU(1), . . . and CPU(N), where a certain one of the above-listed CPUs, such as CPU(0), may be the main CPU among these CPUs. For the sake of brevity, similar content in this embodiment is not repeated here.
第3圖依據本發明另一實施例繪示第1圖所示的SoC IC 100的實施細節。於本實施例中,第1圖所示的該(N+1)個局部電路PC(0)、PC(1)、…及PC(N)可分別被實施成(N+1)個CPU核心諸如CORE(0)、CORE(1)、…及CORE(N),其中上列CPU核心中的某一個CPU核心諸如CORE(0)可為這些CPU核心中的主要CPU核心。為了簡明起見,於本實施例中類似的內容在此不重複贅述。FIG. 3 illustrates implementation details of the SoC IC 100 shown in FIG. 1 according to another embodiment of the present invention. In this embodiment, the (N+1) partial circuits PC(0), PC(1), . . . and PC(N) shown in FIG. 1 can be implemented as (N+1) CPU cores, respectively Such as CORE(0), CORE(1), . . . and CORE(N), where a certain one of the above-listed CPU cores, such as CORE(0), may be the main CPU core among these CPU cores. For the sake of brevity, similar content in this embodiment is not repeated here.
基於第1圖所示架構,電子裝置10(例如其內的SoC IC 100、資料儲存裝置12等)可依據一種用來進行該多系統日誌存取管理之方法來操作,其中該方法是可應用於(applicable to)電子裝置10,尤其,其內的SoC IC 100、資料儲存裝置12等。該方法可包含:利用處理器110運行系統#0、…及#N(例如:「N」代表正整數)以控制SoC IC 100的操作;利用該第一局部電路諸如局部電路PC(0)(可實施為第2圖的CPU CPU(0)或第3圖的CPU核心CORE(0))執行該至少一第一日誌管理程序諸如日誌管理程序LMP(0),以將記憶體120配置成分別對應於該(N+1)個局部電路PC(0)、…及PC(N) (可實施為第2圖的CPU CPU(0)、…及CPU(N)或第3圖的CPU核心CORE(0)、…及CORE(N))之該(N+1)個環緩衝器RB(0)、…及RB(N),且於環緩衝器RB(0)中記錄運行於局部電路PC(0)的系統#0之該組日誌LOG(0),並且將該(N+1)個環緩衝器所分別儲存之該(N+1)組日誌LOG(0)、…及LOG(N)寫入檔案系統12FS以成為日誌檔案12LF,以供進一步使用;以及利用該至少一第二局部電路諸如一或多個局部電路{PC(n)}(可實施為第2圖的CPU {CPU(n)}或第3圖的CPU核心{CORE(n)},後面實施例依此類推)(例如:「n」可代表區間[1, N]中的任一正整數)執行該至少一第二日誌管理程序諸如一或多個日誌管理程序{LMP(n)},以於該至少一第二環緩衝器諸如一或多個環緩衝器{RB(n)}中記錄運行於該至少一第二局部電路(例如該一或多個局部電路{PC(n)})的該至少一第二系統(例如:系統#1,如果N = 1;又例如:系統#1至系統#N,如果N > 1)之該至少一組第二日誌(例如:一組日誌LOG(1),如果N = 1;又例如:該N組日誌LOG(1)、…及LOG(N),如果N > 1)。Based on the architecture shown in FIG. 1, the electronic device 10 (eg, the SoC IC 100, the
另外,電子裝置10(例如其內的SoC IC 100、資料儲存裝置12等)可依據該方法而被配置成具備多個日誌處理管線(pipeline)。在運行於處理器110上的該至少一程式模組(例如:該至少一第一日誌管理程序以及該至少一第二日誌管理程序,諸如日誌管理程序LMP(0)、…及LMP(N))的控制下,處理器110可將SoC IC 100的架構(例如:該(N+1)個局部電路PC(0)、…及PC(N),該(N+1)個環緩衝器RB(0)、…及RB(N),以及內部連接結構(structure)諸如資料處理路徑)配置成多管線(multi-pipeline)架構。例如,該方法中的相關配置操作可包含:
(1) 利用該至少一第一日誌管理程序諸如日誌管理程序LMP(0),將從該第一局部電路連接至該第一環緩衝器的一第一資料處理路徑,諸如從局部電路PC(0)連接至環緩衝器RB(0)的一資料處理路徑(例如:對應於寫入操作WRITE(0)的資料處理路徑),配置成一第一日誌寫入管線,諸如對應於該組日誌LOG(0)的一日誌寫入管線;
(2) 利用該至少一第二日誌管理程序諸如該一或多個日誌管理程序{LMP(n)},將從該至少一第二局部電路連接至該至少一第二環緩衝器的至少一第二資料處理路徑,諸如從該一或多個局部電路{PC(n)}分別連接至該一或多個環緩衝器{RB(n)}的一或多個資料處理路徑(例如:對應於一或多個寫入操作{WRITE(n)}的一或多個資料處理路徑),配置成至少一第二日誌寫入管線,諸如對應於一或多組日誌(例如:一組日誌LOG(1),如果N = 1;又例如:該N組日誌LOG(1)、…及LOG(N),如果N > 1)的一或多個日誌寫入管線;
(3) 利用該至少一第一日誌管理程序諸如日誌管理程序LMP(0),將從該多個環緩衝器{RB}連接至該第一局部電路的多個其它資料處理路徑,諸如從該(N+1)個環緩衝器RB(0)、…及RB(N)分別連接至局部電路PC(0)的(N+1)個資料處理路徑(例如:對應於(N+1)個讀取操作READ(0)、…及READ(N)的(N+1)個資料處理路徑),配置成多個日誌讀取管線,諸如分別對應於該(N+1)組日誌LOG(0)、…及LOG(N)的(N+1)個日誌讀取管線;以及
(4) 利用該至少一第一日誌管理程序諸如日誌管理程序LMP(0),將從該第一局部電路諸如局部電路PC(0)朝向(toward)檔案系統12FS的一後續的資料處理路徑,連同從該後續的資料處理路徑延伸至檔案系統12FS的一延伸的資料處理路徑,配置成一日誌匯出管線,其中從局部電路PC(0)至檔案系統12FS的總(total)輸出處理路徑可包含該後續的資料處理路徑以及該延伸的資料處理路徑,且可於其上標示寫入操作WRITE
TOTAL以便於理解;
其中,基於該多個局部電路{PC}與該多個環緩衝器{RB}之間的管線處理,該(N+1)組日誌LOG(0)、…及LOG(N)緩衝於該多個環緩衝器{RB}的資料量可隨著時間動態地改變。
In addition, the electronic device 10 (eg, the SoC IC 100 therein, the
依據某些實施例,電子裝置10(例如其內的SoC IC 100、資料儲存裝置12等)可依據該方法來記錄針對該(N+1)組日誌LOG(0)、…及LOG(N)的整體管理資訊,以於日誌檔案12LF中儲存該(N+1)組日誌LOG(0)、…及LOG(N)連同其整體管理資訊,其中針對該(N+1)組日誌LOG(0)、…及LOG(N)中的任一組日誌(例如每一組日誌)中的任一日誌(例如每一日誌)的整體管理資訊可包含一序號(serial number)或一時間戳記(timestamp)等。舉例來說,該組第一日誌諸如該組日誌LOG(0)可包含這組日誌當中各日誌的序號、這組日誌當中各日誌的時間戳記以及這組日誌當中各日誌的日誌內容,且該至少一組第二日誌(例如:一組日誌LOG(1),如果N = 1;又例如:該N組日誌LOG(1)、…及LOG(N),如果N > 1)中之任一組第二日誌可包含該任一組第二日誌當中各日誌的序號、該任一組第二日誌當中各日誌的時間戳記以及該任一組第二日誌當中各日誌的日誌內容。另外,該(N+1)組日誌LOG(0)、…及LOG(N)中的所有的日誌之各自的時間戳記是依據一相同的時鐘(或稱時脈)來產生,以指出該(N+1)組日誌LOG(0)、…及LOG(N)之間的相對時序,其中這個時鐘可代表位於電子裝置10中、由該(N+1)個局部電路PC(0)、…及PC(N)(例如分別運行於其上的系統#1、…及#N)所共享的時鐘。例如,該時鐘可設置於SoC IC 100以內。又例如,該時鐘可設置於SoC IC 100以外。According to some embodiments, the electronic device 10 (eg, the SoC IC 100 therein, the
第4圖依據本發明一實施例繪示該方法的一局部(partial)日誌處理控制方案。為了便於理解,符號「n0」可代表區間[0, N]中的非負整數。第1圖的實施例所述的該(N+1)個局部電路PC(0)、…及PC(N)中的任一局部電路PC(n0),諸如第2圖的實施例所述的CPU CPU(n0)或第3圖的實施例所述的CPU核心CORE(n0),可在日誌管理程序LMP(n0)的控制下依據該局部日誌處理控制方案來操作,以於環緩衝器RB(n0)中寫入一組日誌LOG(n0)的一日誌,其中該日誌可視為一日誌條目(entry)。FIG. 4 illustrates a partial log processing control scheme of the method according to an embodiment of the present invention. For ease of understanding, the symbol "n0" may represent a non-negative integer in the interval [0, N]. Any one of the (N+1) partial circuits PC(0), . . . and PC(N) described in the embodiment of FIG. 1, such as the embodiment of FIG. 2 The CPU CPU(n0) or the CPU core CORE(n0) described in the embodiment of FIG. 3 may operate according to the local log processing control scheme under the control of the log management program LMP(n0), so that the ring buffer RB (n0) writes a log of a set of logs LOG(n0), where the log can be regarded as a log entry.
於步驟S10中,局部電路PC(n0)可開始寫入對應的緩衝器諸如環緩衝器RB(n0),尤其,於環緩衝器RB(n0)(例如其所緩衝的該組日誌LOG(n0))中寫入這個日誌的日誌內容(例如這個日誌所代表的事件對應的事件資訊)。In step S10, the partial circuit PC(n0) may start writing to the corresponding buffer such as the ring buffer RB(n0), in particular, to the ring buffer RB(n0) (eg the set of logs LOG(n0) buffered by it. )) to write the log content of this log (for example, the event information corresponding to the event represented by this log).
於步驟S11中,局部電路PC(n0)可檢查環緩衝器RB(n0)是否為滿的(圖中標示「環緩衝器是否已滿」以求簡明)。如果檢查結果為是,結束局部日誌處理控制方案的工作流程,例如可進入一錯誤處置程序來處理此情況;如果否,進入步驟S12。In step S11, the partial circuit PC(n0) can check whether the ring buffer RB(n0) is full (in the figure, "whether the ring buffer is full" is marked for simplicity). If the check result is yes, end the workflow of the local log processing control scheme, for example, enter an error handling program to handle this situation; if not, enter step S12.
於步驟S12中,依據上述時鐘的目前時間,局部電路PC(n0)可於環緩衝器RB(n0)(例如其所緩衝的該組日誌LOG(n0))中加入這個日誌的一時間戳記,其中該時間戳記可指出該目前時間。In step S12, according to the current time of the above-mentioned clock, the local circuit PC(n0) can add a time stamp of the log to the ring buffer RB(n0) (for example, the group of logs LOG(n0) buffered by it), Wherein the time stamp may indicate the current time.
於步驟S13中,局部電路PC(n0)可於環緩衝器RB(n0)(例如其所緩衝的該組日誌LOG(n0))中加入這個日誌的一序號。例如,該組日誌LOG(n0)的一系列序號可代表該組日誌LOG(n0)的所有日誌的順序,而該系列序號中的這個序號可指出這個日誌相對於其餘日誌的相對順序。In step S13, the local circuit PC(n0) may add a sequence number of this log to the ring buffer RB(n0) (eg, the group of logs LOG(n0) buffered by it). For example, a series of sequence numbers of the group of logs LOG(n0) may represent the order of all logs of the group of logs LOG(n0), and this sequence number in the series of sequence numbers may indicate the relative order of this log with respect to the rest of the logs.
於步驟S14中,局部電路PC(n0)可計算這個日誌的日誌內容的校驗和(checksum),尤其,於環緩衝器RB(n0)(例如其所緩衝的該組日誌LOG(n0))中寫入該校驗和以作為這個日誌的完整性檢查(integrity check)資訊。In step S14, the local circuit PC(n0) may calculate a checksum of the log content of this log, in particular, in the ring buffer RB(n0) (eg the set of logs LOG(n0) it buffers) The checksum is written in as the integrity check information for this log.
於步驟S15中,局部電路PC(n0)可進行針對記憶體障礙(memory barrier)的控制,例如發出一資料同步障礙(Data Synchronization Barrier,簡稱DSB)指令。In step S15 , the local circuit PC ( n0 ) can control the memory barrier, such as issuing a data synchronization barrier (DSB for short) command.
於步驟S16中,局部電路PC(n0)可更新環緩衝器RB(n0)的一輸入指標器,其中該輸入指標器可指出環緩衝器RB(n0)的一最新輸入位置(例如目前寫入的位置)。In step S16, the partial circuit PC(n0) may update an input pointer of the ring buffer RB(n0), wherein the input pointer may indicate a newest input position of the ring buffer RB(n0) (eg, currently written s position).
為了更好地理解,該方法可用第4圖所示之工作流程來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於第4圖所示之工作流程中增加、刪除或修改。For better understanding, the method can be illustrated by the workflow shown in FIG. 4, but the present invention is not limited thereto. According to some embodiments, one or more steps may be added, deleted or modified in the workflow shown in FIG. 4 .
第5圖依據本發明一實施例繪示該方法的一全域(global)日誌處理控制方案。局部電路PC(0)(例如第2圖的CPU CPU(0)或第3圖的CPU核心CORE(0))可在日誌管理程序LMP(0)的控制下依據該全域日誌處理控制方案來操作,以從環緩衝器{RB(n0)}讀取該組日誌LOG(n0)當中的一或多個日誌。FIG. 5 illustrates a global log processing control scheme of the method according to an embodiment of the present invention. A local circuit PC(0) (eg CPU CPU(0) in Figure 2 or CPU core CORE(0) in Figure 3) may operate according to the global log processing control scheme under the control of the log management program LMP(0) , to read one or more logs from the set of logs LOG(n0) from the ring buffer {RB(n0)}.
於步驟S20中,局部電路PC(0)可開始讀取緩衝器,例如開始執行對應於該全域日誌處理控制方案的一主要控制程序。隨後,進入步驟S21。In step S20, the local circuit PC(0) may start reading the buffer, eg, start executing a main control program corresponding to the global log processing control scheme. Then, it goes to step S21.
於步驟S21中,局部電路PC(0)可進行記憶體分配(memory allocation)以取得記憶空間以供一全域環緩衝器Global_Ring_Buffer使用(圖中標示「malloc(Global_Ring_Buffer)」以求簡明)。隨後,進入步驟S22。In step S21, the local circuit PC(0) may perform memory allocation to obtain memory space for use by a global ring buffer Global_Ring_Buffer (marked as “malloc (Global_Ring_Buffer)” in the figure for brevity). Then, it goes to step S22.
於步驟S22中,局部電路PC(0)可初始化(initialize)全域環緩衝器Global_Ring_Buffer(圖中標示「init Global_Ring_Buffer」以求簡明),其中全域環緩衝器Global_Ring_Buffer可包含環緩衝器頭區RBH以及該(N+1)個環緩衝器RB(0)、…及RB(N)。例如,局部電路PC(0)可於環緩衝器頭區RBH中記錄該(N+1)個環緩衝器RB(0)、…及RB(N)的各自的環緩衝器管理資訊,以分別指出該(N+1)個環緩衝器RB(0)、…及RB(N)的各自的使用者(例如局部電路PC(0)、…及PC(N))以及該(N+1)個環緩衝器RB(0)、…及RB(N)的各自的大小。隨後,進入步驟S23。In step S22, the local circuit PC(0) may initialize (initialize) the global ring buffer Global_Ring_Buffer (marked as "init Global_Ring_Buffer" in the figure for simplicity), wherein the global ring buffer Global_Ring_Buffer may include the ring buffer header area RBH and the (N+1) ring buffers RB(0), . . . and RB(N). For example, the local circuit PC(0) may record the respective ring buffer management information of the (N+1) ring buffers RB(0), . . . and RB(N) in the ring buffer header area RBH, so as to Indicate the respective users of the (N+1) ring buffers RB(0), ... and RB(N) (eg partial circuits PC(0), ... and PC(N)) and the (N+1) The respective sizes of the ring buffers RB(0), . . . and RB(N). Then, it goes to step S23.
於步驟S23中,局部電路PC(0)可創建(create)主要工作(main task)以控制後續步驟中的操作。例如,日誌管理程序LMP(0)可包含該主要控制程序以及該主要工作,但本發明不限於此。隨後,進入步驟S24。In step S23, the local circuit PC(0) may create a main task to control operations in subsequent steps. For example, the log management program LMP(0) may include the main control program and the main work, but the present invention is not limited thereto. Then, it goes to step S24.
於步驟S24中,局部電路PC(0)可嘗試從一個局部電路PC(n0)諸如一個CPU(例如第2圖的CPU CPU(n))/CPU核心(例如第3圖的CPU核心 CORE(n))的環緩衝器RB(n0)讀取一日誌(圖中標示「從一CPU的環緩衝器讀取日誌」以求簡明)。隨後,進入步驟S25。In step S24, the partial circuit PC(0) may attempt to obtain a data from a partial circuit PC(n0) such as a CPU (eg, CPU CPU(n) in FIG. 2)/CPU core (eg, CPU core CORE(n) in FIG. 3 ). )) of the ring buffer RB(n0) reads a log (in the figure, it is marked as "reading the log from the ring buffer of a CPU" for brevity). Then, it goes to step S25.
於步驟S25中,局部電路PC(0)可檢查環緩衝器RB(n0)是否為空的(圖中標示「環緩衝器是否為空」以求簡明)。如果是,進入步驟S26;如果否,進入步驟S28。In step S25, the local circuit PC(0) can check whether the ring buffer RB(n0) is empty (in the figure, "whether the ring buffer is empty" is marked for simplicity). If yes, go to step S26; if no, go to step S28.
於步驟S26中,局部電路PC(0)可等待一段時間,尤其,休眠一段時間。隨後,進入步驟S27。In step S26, the partial circuit PC(0) can wait for a period of time, especially, sleep for a period of time. Then, it goes to step S27.
於步驟S27中,局部電路PC(0)可選擇下一個局部電路諸如下一個CPU/CPU核心(圖中標示「選擇下一個CPU」以求簡明),以輪流選擇全部的局部電路諸如全部的CPU/CPU核心,進而對全部的局部電路進行檢查。隨後,回到步驟S24。In step S27, the partial circuit PC(0) can select the next partial circuit such as the next CPU/CPU core (marked as "select the next CPU" in the figure for simplicity) to select all the partial circuits such as all the CPUs in turn. /CPU core, and then check all local circuits. Then, it returns to step S24.
於步驟S28中,依據這個日誌的日誌內容,局部電路PC(0)可計算這個日誌的校驗和。隨後,進入步驟S29。In step S28, the local circuit PC(0) can calculate the checksum of the log according to the log content of the log. Then, it goes to step S29.
於步驟S29中,局部電路PC(0)可檢查是否步驟S28中計算的校驗和等於這個日誌中所記錄的校驗和(圖中標示「校驗和是否正確」以求簡明)。如果是,進入步驟S30;如果否,進入步驟S24。In step S29, the local circuit PC(0) can check whether the checksum calculated in step S28 is equal to the checksum recorded in this log (marked "checksum is correct" in the figure for brevity). If yes, go to step S30; if no, go to step S24.
於步驟S30中,局部電路PC(0)可儲存這個日誌到檔案系統12FS(例如日誌檔案12LF)。隨後,進入步驟S31。In step S30, the local circuit PC(0) can store the log in the file system 12FS (eg, log file 12LF). Then, it goes to step S31.
於步驟S31中,局部電路PC(n0)可進行針對記憶體障礙的控制,例如發出該DSB指令。隨後,進入步驟S32。In step S31, the local circuit PC(n0) can control the memory failure, such as issuing the DSB command. Then, it goes to step S32.
於步驟S32中,局部電路PC(0)可更新環緩衝器RB(n0)的一輸出指標器,其中該輸出指標器可指出環緩衝器RB(n0)的一最新輸出位置(例如目前讀取的位置)。隨後,回到步驟S24。In step S32, the local circuit PC(0) may update an output pointer of the ring buffer RB(n0), wherein the output pointer may indicate a newest output position of the ring buffer RB(n0) (eg, currently read s position). Then, it returns to step S24.
為了更好地理解,該方法可用第5圖所示之工作流程來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於第5圖所示之工作流程中增加、刪除或修改。For better understanding, the method can be illustrated by the workflow shown in FIG. 5, but the present invention is not limited thereto. According to some embodiments, one or more steps may be added, deleted or modified in the workflow shown in FIG. 5 .
第6圖依據本發明一實施例繪示該方法所涉及的一種非暫態計算機可讀取媒體(non-transitory computer-readable medium)10M,其中非暫態計算機可讀取媒體10M儲存有程式碼10P使得SoC IC 100於執行上述程式碼10P時進行一多系統日誌存取管理程序諸如該多系統日誌存取管理(例如,上列實施例中所述的各種操作)。為了便於理解,程式碼10P可被繪示為包含日誌管理程序LMP(0)、…及LMP(N),但本發明不限於此。另外,程式碼10P可被載入至處理器110以成為運行於處理器110上的該至少一程式模組。非暫態計算機可讀取媒體10M可代表電子裝置10的某一儲存裝置/元件(例如第1圖所示的資料儲存裝置12或其它儲存裝置/元件)。該儲存裝置/元件可藉由硬式磁碟機、固態硬碟、通用快閃記憶體儲存(Universal Flash Storage, UFS)裝置、非揮發性記憶體元件(例如電子可抹除可編程唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory, EEPROM)及快閃(Flash)記憶體)等方式來實施,但本發明不限於此。為了簡明起見,於本實施例中類似的內容在此不重複贅述。FIG. 6 illustrates a non-transitory computer-
透過仔細設計之日誌處理機制,本發明能使多系統架構諸如多核異構(multi-core heterogeneous)CPU架構具備跨系統日誌處理能力,尤其能提升整體日誌處理效能。例如,本發明的方法及系統單晶片積體電路能控制該多個局部電路中的所有局部電路(例如,該複數個處理器/處理器核心中的所有處理器/處理器核心,諸如該複數個CPU中的所有CPU、或該複數個CPU核心中的所有CPU核心)將其各自的日誌分別輸出到該多個環緩衝器,而非直接輸出到一控制台,且能利用該第一局部電路(例如,該複數個處理器/處理器核心中的一主要處理器/處理器核心,諸如該複數個CPU中的一主要CPU、或該複數個CPU核心中的一主要CPU核心)將完整日誌輸出到該控制台,且因此能避免相關技術的問題諸如頻繁操作控制台、加上鎖定機制所致的等待而造成系統效能降低。另外,本發明的方法及系統單晶片積體電路能隨時取得完整的日誌,尤其在檔案系統中保存完整的日誌,且因此能避免相關技術的問題諸如控制台尚未連接、或者控制台已連接但控制台端主機故障而導致無法查看日誌。此外,透過使用記憶體障礙的控制程序,本發明可確保單一緩衝器只有一個消費者和一個生産者的情況下,實現先進先出(FIFO)的無鎖併發存取(no-lock burst access),避免加鎖帶來的系統效能下降以及可能導致的死鎖。由於引入全域的時間戳記,本發明可透過相鄰日誌的時間戳記之間的間隙(gap),提供更好的系統分析參考資訊。本發明另可透過引入序號,提供判斷是否遺失任何日誌的參考資訊。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。 Through a carefully designed log processing mechanism, the present invention enables a multi-system architecture such as a multi-core heterogeneous CPU architecture to have a cross-system log processing capability, especially to improve the overall log processing performance. For example, the methods and system-on-chip integrated circuits of the present invention can control all of the plurality of local circuits (eg, all of the plurality of processors/processor cores, such as the plurality of all of the CPUs, or all the CPU cores of the plurality of CPU cores) output their respective logs to the plurality of ring buffers, respectively, instead of directly outputting to a console, and can utilize the first local Circuitry (eg, a primary processor/processor core of the plurality of processors/processor cores, such as a primary CPU of the plurality of CPUs, or a primary CPU core of the plurality of CPU cores) will be complete The log is output to the console, and therefore, problems in the related art such as frequent console operations and waiting due to a locking mechanism can be avoided, thereby reducing system performance. In addition, the method and system SoC of the present invention can obtain the complete log at any time, especially save the complete log in the file system, and thus can avoid the related art problems such as the console has not been connected, or the console has been connected but The console side host fails and the log cannot be viewed. In addition, through the use of memory barrier control procedures, the present invention can ensure that a single buffer has only one consumer and one producer to achieve first-in, first-out (FIFO) no-lock burst access (no-lock burst access). , to avoid system performance degradation and possible deadlock caused by locking. Due to the introduction of global timestamps, the present invention can provide better reference information for system analysis through the gap between timestamps of adjacent logs. The present invention can also provide reference information for judging whether any log is lost by introducing a serial number. The above descriptions are only preferred embodiments of the present invention, and all equivalent changes and modifications made according to the scope of the patent application of the present invention shall fall within the scope of the present invention.
10:電子裝置
12:資料儲存裝置
12FS:檔案系統
12LF:日誌檔案
14:介面電路
100:系統單晶片(SoC)積體電路(IC)
110:處理器
120:記憶體
LMP(0)~LMP(N):日誌管理程序
LOG(0)~LOG(N):日誌
PC(0)~PC(N):局部電路
RB(0)~RB(N):環緩衝器
RBH:環緩衝器頭區
WRITE(0)~WRITE(N),WRITE
TOTAL:寫入操作
READ(0)~READ(N):讀取操作
CPU(0)~CPU(N):中央處理單元(CPU)
CORE(0)~ CORE(N):中央處理單元(CPU)核心
S10~S16,S20~S32:步驟
10M:非暫態計算機可讀取媒體
10P:程式碼
10: Electronic device 12: Data storage device 12FS: File system 12LF: Log file 14: Interface circuit 100: System on chip (SoC) integrated circuit (IC) 110: Processor 120: Memory LMP(0)~LMP( N): log management program LOG(0)~LOG(N): log PC(0)~PC(N): local circuit RB(0)~RB(N): ring buffer RBH: ring buffer header WRITE (0)~WRITE(N), WRITE TOTAL : write operation READ(0)~READ(N): read operation CPU(0)~CPU(N): central processing unit (CPU) CORE(0)~ CORE (N): Central Processing Unit (CPU) cores S10~S16, S20~S32:
第1圖為依據本發明一實施例之一種系統單晶片(System on Chip,可簡稱SoC)積體電路(Integrated Circuit,可簡稱IC)的示意圖。 第2圖依據本發明一實施例繪示第1圖所示的系統單晶片積體電路的實施細節。 第3圖依據本發明另一實施例繪示第1圖所示的系統單晶片積體電路的實施細節。 第4圖依據本發明一實施例繪示一種用來進行多系統(multi-system)日誌(log)存取管理之方法的一局部(partial)日誌處理控制方案。 第5圖依據本發明一實施例繪示該方法的一全域(global)日誌處理控制方案。 第6圖依據本發明一實施例繪示該方法所涉及的一種非暫態計算機可讀取媒體。 FIG. 1 is a schematic diagram of a System on Chip (SoC) integrated circuit (IC) according to an embodiment of the present invention. FIG. 2 illustrates implementation details of the SoC shown in FIG. 1 according to an embodiment of the present invention. FIG. 3 illustrates implementation details of the system-on-chip integrated circuit shown in FIG. 1 according to another embodiment of the present invention. FIG. 4 illustrates a partial log processing control scheme of a method for multi-system log (log) access management according to an embodiment of the present invention. FIG. 5 illustrates a global log processing control scheme of the method according to an embodiment of the present invention. FIG. 6 illustrates a non-transitory computer-readable medium involved in the method according to an embodiment of the present invention.
10:電子裝置 10: Electronics
12:資料儲存裝置 12: Data storage device
12FS:檔案系統 12FS: File System
12LF:日誌檔案 12LF: log file
14:介面電路 14: Interface circuit
100:系統單晶片(SoC)積體電路(IC) 100: System-on-Chip (SoC) Integrated Circuit (IC)
110:處理器 110: Processor
120:記憶體 120: memory
LMP(0)~LMP(N):日誌管理程序 LMP(0)~LMP(N): log management program
LOG(0)~LOG(N):日誌 LOG(0)~LOG(N): log
PC(0)~PC(N):局部電路 PC(0)~PC(N): Local circuit
RB(0)~RB(N):環緩衝器 RB(0)~RB(N): Ring buffer
RBH:環緩衝器頭區 RBH: Ring Buffer Header
WRITE(0)~WRITE(N),WRITETOTAL:寫入操作 WRITE(0)~WRITE(N), WRITE TOTAL : write operation
READ(0)~READ(N):讀取操作 READ(0)~READ(N): read operation
Claims (10)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110084079.0 | 2021-01-21 | ||
CN202110084079.0A CN114817188A (en) | 2021-01-21 | 2021-01-21 | Method, integrated circuit and readable medium for multi-system log access management |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202230119A true TW202230119A (en) | 2022-08-01 |
TWI798743B TWI798743B (en) | 2023-04-11 |
Family
ID=82405184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110124935A TWI798743B (en) | 2021-01-21 | 2021-07-07 | Method for performing multi-system log access management, associated system on chip integrated circuit and non-transitory computer-readable medium |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220229932A1 (en) |
CN (1) | CN114817188A (en) |
TW (1) | TWI798743B (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624118B2 (en) * | 2006-07-26 | 2009-11-24 | Microsoft Corporation | Data processing over very large databases |
WO2010028279A1 (en) * | 2008-09-05 | 2010-03-11 | Arcsight, Inc. | Storing log data efficiently while supporting querying |
DE102017221889B4 (en) * | 2017-12-05 | 2022-03-17 | Audi Ag | Data processing device, overall device and method for operating a data processing device or overall device |
US11373088B2 (en) * | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
-
2021
- 2021-01-21 CN CN202110084079.0A patent/CN114817188A/en active Pending
- 2021-07-07 TW TW110124935A patent/TWI798743B/en active
- 2021-07-20 US US17/381,187 patent/US20220229932A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220229932A1 (en) | 2022-07-21 |
TWI798743B (en) | 2023-04-11 |
CN114817188A (en) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6539500B1 (en) | System and method for tracing | |
CN103729442B (en) | Record the method and database engine of transaction journal | |
US9164853B2 (en) | Multi-core re-initialization failure control system | |
CN101377750B (en) | System and method for cluster fault toleration | |
US20060282471A1 (en) | Error checking file system metadata while the file system remains available | |
CN104541244A (en) | Methods and systems for performing a replay execution | |
TWI521438B (en) | Detecting potential access errors in a multi-threaded application | |
WO2016106935A1 (en) | Flash memory controller and control method for flash memory controller | |
US20060161818A1 (en) | On-chip hardware debug support units utilizing multiple asynchronous clocks | |
US8301936B2 (en) | Apparatus and method for performing a screening test of semiconductor integrated circuits | |
CN114490023B (en) | ARM and FPGA-based high-energy physical computable storage device | |
US11023335B2 (en) | Computer and control method thereof for diagnosing abnormality | |
CN110764962B (en) | Log processing method and device | |
US10198784B2 (en) | Capturing commands in a multi-engine graphics processing unit | |
US20090138633A1 (en) | Computer, external storage and method for processing data information in external storage | |
TWI798743B (en) | Method for performing multi-system log access management, associated system on chip integrated circuit and non-transitory computer-readable medium | |
US20060200656A1 (en) | Apparatus and method to capture data from an embedded device | |
JP2004310749A (en) | Method and apparatus for performing bus tracing in data processing system having distributed memory | |
US8819494B2 (en) | Automatically changing parts in response to tests | |
JP5001703B2 (en) | System design verification device | |
JP2006079485A (en) | Method for information collection for fault analysis in electronic computer | |
JP2005234617A (en) | Multiprocessor debugger and debugging method | |
US7934067B2 (en) | Data update history storage apparatus and data update history storage method | |
CN116701544B (en) | Distributed database log processing method and device, electronic equipment and storage medium | |
CN117369905B (en) | Starting method and system of flash memory platform, electronic equipment and storage medium |