G06F9/327

SECURE TIMER SYNCHRONIZATION BETWEEN FUNCTION BLOCK AND EXTERNAL SOC
20210406207 · 2021-12-30 ·

Various embodiments include methods and systems performed by a processor of a first function block for providing secure timer synchronization with a second function block. Various embodiments may include storing, in a shared register space, a first time counter value in which the first time counter value is based on a global counter of the second function block, transmitting, from the shared register space, the stored first time counter value to a preload register of the first function block, receiving, by the first function block, a strobe signal from the second function block configured to enable the first time counter value in the preload register to be loaded into a global counter of the first function block, and configuring the global counter with the first time counter value from the preload register.

Partial-results post-silicon hardware exerciser

A method for testing an integrated circuit, comprising: accessing a database associated with a test template, wherein said test template is configured to test a selected function of the integrated circuit; storing, in said database, data corresponding to at least partial predicted results of one or more random instruction sequences generated based on said test template; generating, by an automated test generation tool, a random instruction sequence based on said test template; executing said instruction sequence by a hardware exerciser, in the integrated circuit; and comparing results of said instruction sequence with said at least partial predicted results, to verify a function of said integrated circuit.

Managing out-of-order retirement of instructions
11194584 · 2021-12-07 · ·

Retiring instructions out-of-order includes: receiving processor instructions comprising two or more and fewer than all processor instructions generated based on a program, where the processor instructions include a first instruction and a second instruction such that the first instruction precedes the second instruction in a program order of the program; receiving a start instruction that immediately precedes the processor instructions and indicates that the processor instructions are to be retired out-of-order; receiving a stop instruction immediately that succeeds the processor instructions and indicates a stop to out-of-order instruction retirement; and, in response to completing execution of the second instruction before completing execution of the first instruction, retiring the second instruction before retiring the first instruction.

Circuit for Fast Interrupt Handling
20220164220 · 2022-05-26 ·

A circuit for fast interrupt handling is disclosed. An apparatus includes a processor circuit having an execution pipeline and a table configured to store a plurality of pointers that correspond to interrupt routines stored in a memory circuit. The apparatus further includes an interrupt redirect circuit configured to receive a plurality of interrupt requests. The interrupt redirect circuit may select a first interrupt request among a plurality of interrupt requests of a first type. The interrupt redirect circuit retrieves a pointer from the table using information associated with the request. Using the pointer, the execution pipeline retrieves first program instruction from the memory circuit to execute a particular interrupt routine.

Multi-processor system with distributed mailbox architecture and communication method thereof
11314571 · 2022-04-26 · ·

A multi-processor system with a distributed mailbox architecture and a communication method thereof are provided. The multi-processor system comprises a plurality of processors, each of the processors is correspondingly configured with an exclusive mailbox and an exclusive channel, and the communication method comprises the following steps. When a first processor of the processors needs to communicate with a second processor, the first processor writes data into the exclusive mailbox of the second processor through a public bus; and when the writing of the data has completed, the exclusive mailbox of the second processor sends an interrupt signal to the second processor, after receiving the interrupt signal, the second processor reads the data in the exclusive mailbox through the corresponding exclusive channel.

COMMUNICATION CONTROL APPARATUS AND COMMUNICATION METHOD

The communication control apparatus includes a communication apparatus and a controller. The communication apparatus saves received data in a reception buffer, executes transfer of the received data to a transfer destination buffer from the reception buffer, erases the transferred data from the reception buffer, and interrupts the transfer upon detecting abnormality. The controller transmits data or a command to the communication apparatus. The controller checks whether the data are saved in the reception buffer after transmitting the data to the control apparatus, and transmits a command for causing the communication apparatus to execute a software reset when at least some proportion of the data are saved.

Packet processing with reduced latency

Generally, this disclosure provides devices, methods, and computer readable media for packet processing with reduced latency. The device may include a data queue to store data descriptors associated with data packets, the data packets to be transferred between a network and a driver circuit. The device may also include an interrupt generation circuit to generate an interrupt to the driver circuit. The interrupt may be generated in response to a combination of an expiration of a delay timer and a non-empty condition of the data queue. The device may further include an interrupt delay register to enable the driver circuit to reset the delay timer, the reset postponing the interrupt generation.

Interrupt system for RISC-V architecture
11221978 · 2022-01-11 · ·

An interrupt system for RISC-V architecture includes an original register in a CLIC, a pushmcause register, a pushmepc register, an interrupt response register, and an mtvt2 register; the pushmcause register is used to store a value in an mcause on a stack by means of an instruction; the pushmepc register is used to store a value in an mepc on a stack by means of an instruction; the interrupt response register is used to respond to a non-vectored interrupt request issued by a CLIC by means of an instruction, obtain an interrupt subroutine entry address, and modify a global interrupt enable; and the mtvt2 register is used to store a base address of an non-vectored interrupt in a CLIC mode.

INTERRUPT CONTROL SYSTEM AND METHOD BASED ON RISC-V
20230350711 · 2023-11-02 ·

A interrupt control system and method based on RISC-V comprises a processor, a fast interrupt controller, a Caller-save type general-purpose register, and a hardware memory area; the hardware memory area is used for storing a value of the Caller-save type general-purpose register during an interrupt response; and the fast interrupt controller is used for storing the value of the Caller-save type general-purpose register into the hardware memory area, or loading back a content from the hardware memory area into the Caller-save type general-purpose register, and further storing a value of a control and status register set into the hardware memory area when a nested interrupt occurs; which improve an interrupt handling speed of a RISC-V architecture processor, simplify the program development difficulty, expand an application field of the RISC-V as a core single chip microcomputer, and particularly have a wide prospect in the embedded application field.

Data storage device and method for sharing memory of controller thereof
11334415 · 2022-05-17 · ·

A data storage device and a method for sharing memory of controller thereof are provided. The data storage device comprises a non-volatile memory and a controller, which is electrically coupled to the non-volatile memory and comprises an access interface, a redundant array of independent disks (RAID) error correcting code (ECC) engine and a central processing unit (CPU). The CPU has a first memory for storing temporary data, the RAID ECC engine has a second memory, and the controller maps the unused memory space of the second memory to the first memory to be virtualized as part of the first memory when the second memory is not fully used so that the CPU can also use the unused memory space of the second memory to store the temporary data.